首先,Ghostscript 没有将此声明为“错误”,而是“警告”。这是有很大不同的。
其次,您要求 Ghostscript 输出 PDF 输入的第一页。有效吗?比较 output.pdf 和 input.pdf 第一页时,您是否发现任何明显的差异?
第三,如果确实存在问题,您应该指出您正在运行的 Ghostscript 版本。这最近的一个是 8.71 http://www.ghostscript.com/releases/.
Update:当然,StackOverflowNewbie 已经通过引用警告消息暗示了 Ghostscript 的版本......
“警告”的意思是:有may可能是输出文件的问题(其本身仍然是有效的 PDF),但您最好检查一下。
“错误”意味着:输出肯定有问题,Ghostscript 将中止所有进一步的处理;输出很可能甚至不是有效的 PDF。
有很多不同的方法可以进一步调试问题。但如果您没有看到有问题的文件,就不可能给出任何切中要害的建议。 StackOverflowNewbie 报告输出页面与输入页面看起来不同。
所以这是要使用的大锤:添加-dDEBUG
到命令行:
gs \
-sOutputFile=output.pdf \
-dDEBUG \
-dLastPage=1 \
-sDEVICE=pdfwrite \
input.pdf
注意事项!这可能会在控制台中产生大量的 stderr/stdout 输出。
如果您已经知道或掌握了确切问题的根源(您甚至可以通过查看输入和输出 PDF 之间的视觉差异直接假设),您可以使用(而不是 -dDEBUG)缩小范围以下之一(按顺序):
-dPDFDEBUG # (debug PDF Interpreter)
-dPDFWRDEBUG # (debug PDF Writer)
-dTTFDEBUG # (debug TTF Fonts)
-dCCFONTDEBUG # (debug compiled-in Fonts)
-dFAPIDEBUG # (debug Font API)
-dCFFDEBUG # (debug CFF Fonts)
-dCMAPDEBUG # (debug CMAP)
-dDOCIEDEBUG # (debug CIE color)
-dSETPDDEBUG # (debug setpagedevice)
-dSTRESDEBUG # (debug Static Resources)
-dVGIFDEBUG # (debug ViewGIF)
-dVJPGDEBUG # (debug ViewJPEG)
-dINITDEBUG # (debug Initialization)
-dEPSDEBUG # (debug EPS handling)
-dPDFOPTDEBUG # (debug PDF Optimizer/Linearizer)
另外,由于警告提到了字体Arial-BoldMT
,您应该首先检查字体嵌入状态both,输入和输出页面的帮助pdfinfo
and pdffonts
:
pdfinfo -f 1 -l 1 -box input.pdf
pdfinfo -box output.pdf
pdffonts -f 1 -l 1 input.pdf
pdffonts output.pdf
Update2:
您可以尝试从原始 PDF 中提取字体以进行进一步调查。 (如果你不知道如何做到这一点,请提出新的、单独的问题,例如“如何从 PDF 中提取字体以进行进一步分析?” and “如何调查字体的内部错误?”)