但我遇到的问题是代码不够灵活。我的意思是,如果一个PDF比另一个PDF大或具有不同的分辨率,输出的PDF(并排的PDF)会很差。
图示如下:
Input file: a.pdf
+--------+
| |
| a |
| |
+--------+
Input file: b.pdf
+--------+
| |
| b |
| |
+--------+
Desired output file: compare.pdf
+--------+--------+
| | |
| a | b |
| | |
+--------+--------+
所以在合并PDF之前,我需要确保两个PDF具有相同的正常A4大小和分辨率吗?我尝试了很多代码和脚本,但无法解决这个问题。我该怎么做?脚本需要足够强大,以便可以使用和比较任何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 |
| | |
+--------+--------+
我希望有些IT技术高手能够帮助我解决如何处理具有不同页面大小的PDF输入文件的问题。
pdfnup
可能更适合做2-up... 但在这种情况下,你的提示并没有太大帮助。首先,问题明确是关于 Ghostscript 和 pdftk 的。其次,任务是比较两个不同的文件,其中一个生成的“2-up”页面由来自两个原始文件中的页面组成。我不知道有什么简单的方法可以使用pdfnup
实现这一点... - Kurt Pfeifle