我正在使用Dompdf从html模板和Pdfnup(部分Pdfjam)生成A5 pdf文档,将它们组合成一张漂亮的单张A4纸,这有助于在打印时节省一些纸张:)
# Generate an a5 pdf
php dompdf.php mytemplate.html -p 'A5' -f a5doc.pdf
# combine two copies of the generated A5 into a single A4 page
pdfnup a5doc.pdf a5doc.pdf --nup '2x1'
这很好用;虽然第二步迫使我安装了大量的依赖项(即Tex-Latex,pdftex,ecc。)并且会使我的生产服务器变得混乱。我想知道是否有任何方法来组合生成的文件而不实际使用Pdfnup。例如,有没有办法用pdftk做到这一点?
提前谢谢!
答案 0 :(得分:5)
在Debian / Ubuntu上,我设法将2xA5合并到1xA4进行打印,使用简单的命令,通过:
# apt-get install ghostscript pdftk psutils
pdftk A=A5-1.pdf B=A5-2.pdf cat A1 B1 output - \
| pdf2ps -dLanguageLevel=3 - - \
| psnup -2 -Pa5 -pa4 \
| ps2pdf -dCompatibility=1.4 - A4.pdf
答案 1 :(得分:3)
你可以结合使用Ghostscript和pdftk。
以上链接的示例显示了如何将页面拆分为一半。只需相应地修改步骤,使用不同的参数...
pdftk
合并。 提示:您想要使用pdftk的multistamp
或multibackground
操作( NOT: )它的shuffle
操作!)来获得想要的最终结果。
答案 2 :(得分:0)
基于Kurt-Pfeifle's answer,使用像shell这样的unix代码(我也保留了libreoffice的代码行):
[libprotobuf FATAL /home/filip/workbench/libs/pytorch/third_party/protobuf/src/google/protobuf/repeated_field.h:1522] CHECK failed: (index) < (current_size_):
Traceback (most recent call last):
File "main.py", line 62, in <module>
SqueezenetRetrain(labels)
File "/home/filip/workbench/git/MachineLearningScripts/caffe2/Methods.py", line 76, in SqueezenetRetrain
workspace.CreateNet(squeezenetModel.net, overwrite=True)
File "/usr/local/lib/python2.7/dist-packages/caffe2/python/workspace.py", line 171, in CreateNet
StringifyProto(net), overwrite,
File "/usr/local/lib/python2.7/dist-packages/caffe2/python/workspace.py", line 197, in CallWithExceptionIntercept
return func(*args, **kwargs)
RuntimeError: CHECK failed: (index) < (current_size_):
请注意,原始文档中嵌入的字体将在最终PDF中加倍。
此过程将生成镜像对齐,因此可以在中间切割打印的A4纸,并且两张A5页面的底部都将具有此切割边缘。