通过查看 Kurt Pfeifle 的一些答案,我创建了一个将两个 PDF 并排合并到一起的脚本。
但我的问题是代码不灵活。我的意思是,如果一个 PDF 更大或具有另一个 PDF 的另一个分辨率,则输出 PDF(并排 PDF)将是错误的。
说明它看起来像这样:
Input file: a.pdf
+--------+
| |
| a |
| |
+--------+
Input file: b.pdf
+--------+
| |
| b |
| |
+--------+
Desired output file: compare.pdf
+--------+--------+
| | |
| a | b |
| | |
+--------+--------+
所以我需要确保在合并它们之前,PDF 都具有相同的常规 A4 尺寸 PDF 和分辨率?我已经尝试了很多代码和脚本,但无法弄清楚这一点。我怎样才能做到这一点?该脚本需要是防弹的,以便可以使用和比较任何 PDF。即使他们没有相同的大小。
我的脚本现在看起来像这样,并且适用于一些具有相同大小和分辨率的 PDF:
gswin64c.exe ^
-o c.pdf ^
-sDEVICE=pdfwrite ^
-g11690x8270 ^
-dFIXEDMEDIA ^
-dPDFSETTINGS=/prepress ^
-r300 ^
-c "<</PageOffset [0 0]>>setpagedevice" ^
-f a.pdf
这将创建c.pdf,如下所示:
c.pdf
+--------+--------+
| | |
| a | (empty)|
| | |
+--------+--------+
下一个命令:
gswin64c.exe ^
-o left-side-outputs.pdf ^
-sDEVICE=pdfwrite ^
-g11690x8270 ^
-dPDFSETTINGS=/prepress ^
-c "<</PageOffset [0 0]>>setpagedevice" ^
-f b.pdf
这将创建left-side-outputs.pdf,如下所示:
left-side-outputs.pdf
+--------+--------+
| | |
| b | (empty)|
| | |
+--------+--------+
下一个命令:
gswin64c.exe ^
-o right-side-outputs.pdf ^
-sDEVICE=pdfwrite ^
-g11690x8270 ^
-dPDFSETTINGS=/prepress ^
-c "<</PageOffset [596 0]>>setpagedevice" ^
-f c.pdf
这将创建right-side-outputs.pdf,如下所示:
right-side-outputs.pdf
+--------+--------+
| | |
|(empty) | b |
| | |
+--------+--------+
最后一个命令:
pdftk left-side-outputs.pdf multistamp right-side-outputs.pdf output compare.pdf
这将创建最终结果compare.pdf:
Desired output file: compare.pdf
+--------+--------+
| | |
| a | b |
| | |
+--------+--------+
我希望那里的一些大师可以帮助我弄清楚如何处理具有不同页面大小的 PDF 输入文件。