![为什么我必须直接调用 ghostscript 来将 PS 转换为 PDF?](https://linux22.com/image/237707/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E5%BF%85%E9%A1%BB%E7%9B%B4%E6%8E%A5%E8%B0%83%E7%94%A8%20ghostscript%20%E6%9D%A5%E5%B0%86%20PS%20%E8%BD%AC%E6%8D%A2%E4%B8%BA%20PDF%EF%BC%9F.png)
我的电脑运行的是 Windows 7,安装了 MikTeX 2.9 和 GhostScript 9.02。
我仍然不明白为什么我必须调用gswin64c.exe
而不是ps2pdf.exe
将 ps 转换为 pdf?
我想要使用的开关是
-sPAPERSIZE=a4 -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=filename.pdf -c save pop -f filename.ps
当我使用ps2pdf.exe
上述开关时,出现如下错误消息。
根据Philippe的评论的实验结果如下。
无效的语法:
ps2pdf -sPAPERSIZE=a4 in.ps out.pdf
ps2pdf -sPAPERSIZE#a4 in.ps
工作语法:
ps2pdf -sPAPERSIZE#a4 in.ps out.pdf
ps2pdf in.ps out.pdf
顶部边距被裁剪。ps2pdf in.ps
顶部边距被裁剪。
答案1
您不必gswin64c
直接使用。ps2pdf
应该可以。对我来说它确实有效。(TeX Live 2011)
另一方面,ps2pdf
命令实际上是一个脚本(ps2pdf.exe
在 TeX Live 中调用 Lua 脚本ps2pdf.tlu
),它调用 GhostScriptgswin32c.exe
等gswin64c.exe
。
Usage: ps2pdf [options] (input.[e]ps|-) [output.pdf]
但是,您使用的选项确实会失败。在脚本-dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite
中定义ps2pdf
,您不需要它们。-sOutputFile
也可以替换。但是,如果您使用它们是安全的。
我不太清楚这是什么-c save pop
意思。看来这个选项导致了问题。没有这个选项,一切都正常。