露露是一种按需打印服务。创作过程的一部分是上传封面。 “封面”为 1 页,尺寸为 17.25 英寸宽 x 11.25 英寸高。所有边缘都有 0.125 的“出血区域”,打印后将被切除。除去出血线,左边8.5英寸是后盖,右边8.5英寸是前盖。请参阅下图以获得视觉辅助。
我有一个 1 页的 pdfcover-page.pdf
信纸,我想用它作为封面。
$ pdfinfo cover-page.pdf | grep Size
Page size: 612 x 792 pts (letter)
仅使用开源命令行工具,我想根据上面的规范创建一个新文件 ,cover.pdf
将cover-page.pdf
其“放置”在封面模板的右侧。
我研究过使用 pdftk、ImageMagick 和 Ghostscript。在阅读了 pdftk 可用的命令后,这似乎是错误的工具。我尝试使用 ImageMagick 并制作了以下内容:
convert cover-page.pdf \
-background white -gravity SouthEast -extent 1233x801 \
-background white -gravity None -extent 1242x810 \
cover.pdf
这可行,但它使用光栅转换。
我最后研究的是 Ghostscript。我对自己的ghostscript能力最没有信心,但我确实取得了一些进步。我设法使用 .txt 文件创建了一个具有正确尺寸的空白 pdf gs -sDEVICE=pdfwrite -o cover.pdf -dDEVICEWIDTHPOINTS=1242 -dDEVICEHEIGHTPOINTS=810
。但是,一旦我添加-dPDFFitPage -f cover-page.pdf
处理文件,页面大小就会改变810 x 1048.24
并且页面会旋转。我认为这是为了“适合”的纵横比cover-page.pdf
。所以,我最后的(不成功的)命令是:
gs \
-sDEVICE=pdfwrite -o cover.pdf \
-dDEVICEWIDTHPOINTS=1242 -dDEVICEHEIGHTPOINTS=810 \
-dPDFFitPage -f cover-page.pdf
答案1
pdfjam
,像 Texlive 这样的 TeX 发行版中的一个工具就可以解决这个问题。命令将是
pdfjam -o cover.pdf --papersize '{17.25in,11.25in}' --noautoscale true --nup 2x1 cover-page.pdf '{},1'
pdfjam
依赖于 LaTeXpdfpages
包。默认情况下,它在每个输出页面放置一个输入页面,缩放输入以适合纸张,并将其居中。此处,--nup 2x1
指示每个输出页面放置两个输入页面,并且--noautoscale true
,不按比例缩放(正如您可能已经猜到的!)。作为输入页面,我使用了空白页 ( {}
) 和输入文档的第一页 ( 1
);默认情况下,输入页面之间不添加间距。