![在特定位置“放置”字母大小的 PDF 到较大的 pdf](https://linux22.com/image/146286/%E5%9C%A8%E7%89%B9%E5%AE%9A%E4%BD%8D%E7%BD%AE%E2%80%9C%E6%94%BE%E7%BD%AE%E2%80%9D%E5%AD%97%E6%AF%8D%E5%A4%A7%E5%B0%8F%E7%9A%84%20PDF%20%E5%88%B0%E8%BE%83%E5%A4%A7%E7%9A%84%20pdf.png)
露露是一种按需打印服务。创作过程的一部分是上传封面。 “封面”为 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
);默认情况下,输入页面之间不添加间距。