【发布时间】:2021-11-14 19:25:34
【问题描述】:
我是 Ghostscript 的新手。我正在尝试为 PDF 中的页面添加额外的边距。我的命令行适用于纵向模式的页面,但会弄乱横向模式的页面。我想为纵向页面添加 30 点宽度和 42 点边距(以保持相同的纵横比),因此将 A4 页面大小增加一倍。对于横向,我颠倒了数字。
当更改命令使其适用于横向页面时,它现在会弄乱纵向页面。
有没有一种方法可以有条件地更改页面,使其适用于纵向和横向页面?
我的命令是(对于 Windows)
- 适用于纵向模式:
gswin64 -o c:\temp\outport.pdf -sDEVICE=pdfwrite -g6550x9270 -c "<</Install {30 42 translate}>> setpagedevice" -f "mysource.pdf"
- 适用于横向页面
gswin64 -o c:\temp\outland.pdf -sDEVICE=pdfwrite -g9270x6550 -c "<</Install {42 30 translate}>> setpagedevice" -f "mysource.pdf"
我这样做是因为最初 PDF 需要在文本周围留出 2 厘米的边距。但现在我需要(大约)3 厘米的边距。这样,当我打印它时,它将以 A4 打印,边距为厘米,并且纵横比正确。
【问题讨论】:
-
创建一个 BeginPage 过程,而不是将偏移添加为安装。您可以在此时询问媒体尺寸,并根据是横向还是纵向或媒体的实际尺寸来决定要做什么。显然,您将无法使用 -g 参数,因为它是高级设备并且只有标称分辨率,所以您真的不应该将其与 pdfwrite 一起使用。您当然不能在命令行上指定媒体大小(这就是 -g 所做的)并期望在每页的基础上进行更改。
-
感谢@KenS 的建议。不过,这超出了我的范围 - 是否有可能提供可以做到这一点的代码?
-
谢谢@KJ。我现在在我的问题中添加了为什么我想要这个:最初 PDF 需要在文本周围留出 2 厘米的边距。但现在我需要(大约)3 厘米的边距。
标签: ghostscript