我有一个PDF文件正好是A4页面大小的1/5,而script通过重复附加将其转换为单个A4页面。问题是ImageMagick只适用于位图图形,而我的PDF包含文本和详细的矢量图形。结果是文本数据丢失,文件大小更大,打印输出更差。
我希望能够像convert -density 1200 $pdf_file $pdf_file $pdf_file $pdf_file $pdf_file +append $a4_file
一样执行相同操作而不用光栅化矢量图。
答案 0 :(得分:2)
pdftk和pdfnup真的非常棒!
finished script的伪代码版本:
for each file:
inkscape --export-pdf
pdftk (pdf-file x 5) cat output 5.pdf
pdfnup 5.pdf --nup 5x1 --paper a4paper --orient landscape --outfile {recto,verso}.pdf
pdftk R=recto.pdf V=verso.pdf cat R1W V1E output bookmark.pdf
答案 1 :(得分:1)
好的,我知道这是如何工作的,但我目前无法测试它。
现在考虑这三个命令(如果你不在Windows上则需要Unix-ification):
gswin32c ^
-sDEVICE=pdfwrite ^
-o p1.pdf ^
-dFIXEDMEDIA ^
-sDEFAULTPAPERSIZE=a4 ^
-r600x600 ^
-dDEVICEWIDTHPOINTS=842 ^
-dDEVICEHEIGHTPOINTS=595 ^
-c "<</PageOffset [0 0]>> setpagedevice" ^
-f c:/path/to/first.pdf
gswin32c ^
-sDEVICE=pdfwrite ^
-o p2.pdf ^
-dFIXEDMEDIA ^
-sDEFAULTPAPERSIZE=a4 ^
-r600x600 ^
-dDEVICEWIDTHPOINTS=842 ^
-dDEVICEHEIGHTPOINTS=595 ^
-c "<</PageOffset [168.4 0]>> setpagedevice" ^
-f c:/path/to/second.pdf
gswin32c ^
-sDEVICE=pdfwrite ^
-o p3.pdf ^
-dFIXEDMEDIA ^
-sDEFAULTPAPERSIZE=a4 ^
-r600x600 ^
-dDEVICEWIDTHPOINTS=842 ^
-dDEVICEHEIGHTPOINTS=595 ^
-c "<</PageOffset [336.8 0]>> setpagedevice" ^
-f c:/path/to/third.pdf
除非我的任何错误计算,这些“打印”您的前3个PDF到A4横向媒体,但将每个页面的偏移量移动'n *(横向宽度的1/5)点,从n = 0开始。 (A4为842x595分)。你明白了......
现在,您将拥有3个(以及之后的5个)新PDF文件,而无需任何其他位图图形。
现在,您的工作仍然是使用pdftk
(您似乎熟悉的)将这3(5)个PDF页面叠加在一起。
如果这对您有用,请提供一些反馈。 (不要让黑洞逃脱:-))。