Hul*_*852 4 pdf printing ghostscript
如何在 PDF 文档中添加装订线边距(奇数页和偶数页不同),以便在打印后留出打孔空间?我熟悉 Ghostscript 和 Linux 终端,但一直无法找到满足此特定需求的命令。
目前有些内容太接近边缘了。我可以在打印对话框中使用缩放来为装订留出空间,但这会减少超出绝对必要的尺寸,并在页面的两侧留下间隙。
一个简单地在页面的任一侧增加一厘米的解决方案(左为奇数页,右为偶数)在这里就足够了,因为我可以在打印时选择“缩放以适合”功能。
我的问题最初被标记为this的重复,但两个答案都不能解决我的问题。我尝试使用 Briss 和 PDF Scissors,但它们是 PDF 裁剪工具,只能使页面更小,不能更大。我的问题也不同,因为我需要在奇数页和偶数页上调整不同的大小。原始问题的提问者没有这个要求。
我打算在有时间时将其扩展为正确的答案,但这是我找到的解决方案,以防万一有人同时需要它。这个想法是使用带有-c
使用自定义 PostScript 修改 PDF 文件的选项的Ghostscript 。
首先,您需要以点为单位知道原始PDF的高度和宽度(一英寸有72个点)。您可以使用工具“pdfinfo”来查找此信息:
pdfinfo "inputFile.pdf"
Run Code Online (Sandbox Code Playgroud)
假设您有一个 A4 文档 - A4 为 595pts × 842pts (210mm × 297mm)。
如果要在 A4 文档中添加 10mm(= 1cm = 28pts)装订线,则需要将以下信息提供给 Ghostscript:
-dDEVICEHEIGHTPOINTS=842
(A4的高度)
-dDEVICEWIDTHPOINTS=623
(=595+28,即A4的宽度+要添加的装订线)
{28 0 translate} {}
({奇数页右移28pts & 0pts上移} {偶数页什么都不做})
注意:指定增加的宽度会增加页面右侧的空间,因此只有奇数页面必须翻译 - 偶数页面已经正确布局。
以下是 Linux 的完整命令:
gs -q -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -sOutputFile=outputFile.pdf \
-dDEVICEWIDTHPOINTS=623 -dDEVICEHEIGHTPOINTS=842 -dFIXEDMEDIA \
-c "<< /CurrPageNum 1 def /Install { /CurrPageNum CurrPageNum 1 add def
CurrPageNum 2 mod 1 eq {28 0 translate} {} ifelse } bind >> setpagedevice" \
-f "inputFile.pdf"
Run Code Online (Sandbox Code Playgroud)
注意:此命令使 PDF 比 A4 宽 1 厘米。如果您然后在 A4 上打印,所有内容都会缩小以适合,并且装订线实际上会比 1 厘米(它将为 9.5 毫米)略薄。如果这还不够好,那么您将不得不做一些代数来获得正确的偏移量。在这种情况下,打印 10.0 毫米的装订线将是 29.8pts,而不是 28pts(您还需要设置-dDEVICEWIDTHPOINTS=624.8
)。但是,如果排水沟小于 ~2cm,那么可能不值得进行计算,尤其是考虑到印刷和纸张尺寸的公差。
归档时间: |
|
查看次数: |
13325 次 |
最近记录: |