![通过命令行将 PDF 转换为每张纸有多页的 PDF](https://linux22.com/image/1363502/%E9%80%9A%E8%BF%87%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B0%86%20PDF%20%E8%BD%AC%E6%8D%A2%E4%B8%BA%E6%AF%8F%E5%BC%A0%E7%BA%B8%E6%9C%89%E5%A4%9A%E9%A1%B5%E7%9A%84%20PDF.png)
假设我希望slides.pdf
每页包含 4 张幻灯片。
我可以slides.pdf
在 evince(默认的 Ubuntu 文档查看器)下打开一个文档
evince slides.pdf
-->打印-->页面设置-->每面页数-->4(或其他数字)
然后,我可以指示我想打印到文件,然后打印。结果是一个output.pdf
每张纸包含所需幻灯片数量的文件。
我想通过命令行实现相同的功能(因为我需要将其合并到脚本中)。到目前为止,我发现的所有解决方案都是依赖外部工具的。例如,我尝试安装pdfjam
(这需要我安装 88.1 MB 的软件包才能texlive-latex-base
实现我已经拥有的功能!),结果只是失败了pdfjam ERROR: LaTeX package pdfpages.sty is not installed
。
我宁愿避免使用外部包。
如何通过命令行实现这一点?
答案1
执行征收,没有什么比 多价罐(最新的免费版本,其中包含工具,最新的 Multivalent 版本目前托管在 sourceforge 上 - 2009 - 没有更多的 pdf 工具)
您可以从以下位置下载使用工具构建的 Multivalent.jar:
- http://www.ziddu.com/download/1794145/Multivalent.tar.gz.html
- http://ge.tt/#!/21OPDHX/v/4
- http://dingodog.minus.com/mjhNX8Eiu
在线人 -http://multivalent.sourceforge.net/Tools/pdf/Impose.html
使用:
java -cp path...to/Multivalent.jar tool.pdf.Impose -dim (rowsxcols) -paper (paper sizes where pages will be imposed) file.pdf
答案2
您也可以使用 pdfnup:
pdfnup --nup 2x2 --no-landscape file.pdf
其中 2x2 指的是 2 行 2 列(或者反过来——我不确定)。请参阅 man pdfnup 了解更多选项。
答案3
对我来说pdfnup
是不可用的,并且虽然pdfxup
没有工作, pdfjam
但是:
pdfjam --nup 2x2 <infile>
要指定输出文件名(代替自动生成的文件名),请使用选项--outfile
pdfjam --nup 2x2 <infile> --outfile <outfile>
答案4
我发现唯一可以做到这一点并得到维护的工具是 PyPDF2https://pythonhosted.org/PyPDF2/index.html
您可以在以下位置看到一些示例代码:https://superuser.com/a/1508283/590044