将pdf正确转换为ps,反之亦然
我使用“pdftops”将.pdf文件转换为.ps文件,然后使用“ps2pdf”进行反向处理(poppler-utils)。问题是,当从.ps文件创建.pdf文件时,文本看起来没问题,但当我尝试复制它时,字符非常奇怪(就像它们被破坏了一样)。我在其他文件上使用了这些工具很长时间,效果很好。 我还尝试了“pdftohtml-xml”来创建一个.xml文件,文本没有问题(字符被正确提取)将pdf正确转换为ps,反之亦然,pdf,ghostscript,postscript,file-conversion,Pdf,Ghostscript,Postscript,File Conversion,我使用“pdftops”将.pdf文件转换为.ps文件,然后使用“ps2pdf”进行反向处理(poppler-utils)。问题是,当从.ps文件创建.pdf文件时,文本看起来没问题,但当我尝试复制它时,字符非常奇怪(就像它们被破坏了一样)。我在其他文件上使用了这些工具很长时间,效果很好。 我还尝试了“pdftohtml-xml”来创建一个.xml文件,文本没有问题(字符被正确提取) 在转换方面会有什么问题?如果我使用“pdftops”和“ps2pdf”,是否有一些选项需要更改 如果我创建.xm
我只是介绍PS->PDF转换。。。(我假设你的短语“反之亦然”不是指同一个文件[PDF->PS->PDF]的“往返”转换,而是任何PS文件的一般转换方向。正确吗?) 首先,您的
ps2pdf
很可能只是一个shell脚本,它在内部使用带有一些默认参数的Ghostscript命令来完成实际工作ps2pdf
更易于使用。Ghostscript有更多的选项,但学习起来更困难ps2pdf
如果使用Ghostscript,它会失去很多潜在的控制。(您可以使用ps2pdf
调整一些参数,但是您已经离运行真正的Ghostscript命令非常近了……)
第二,如果不确切知道PS输入文件的条件如何,就很难给你好的建议:PS是否嵌入了它使用的字体?它们是哪种字体?等等
第三,Ghostscript获得了很多额外的能力和控制,并且在过去几年中在输出PDF时删除了一些bug或弱点。那么,您的系统上安装的Ghostscript的版本是什么?(请记住,ps2pdf
调用Ghostscript,如果没有本地安装的gs
可执行文件,它将无法工作。)
无法从PDF中复制文本的一个可能原因可能是最终被使用并嵌入到PDF文件中的字体类型(和编码)。您可以告诉我们有关生成PDF的哪些字体详细信息?(请尝试pdffonts your.pdf
来了解——pdffonts也是您提到的Poppler实用程序的一部分。)
您可以尝试使用此(完整)Ghostscript命令进行PS->PDF转换,并检查它将带您到哪里:
gs \
-o output.pdf \
-sDEVICE=pdfwrite \
-dPDFSETTINGS=/prepress \
-dHaveTrueTypes=true \
-dEmbedAllFonts=true \
-dSubsetFonts=false \
-c ".setpdfwrite <</NeverEmbed [ ]>> setdistillerparams" \
-f input.ps
gs\
-o output.pdf\
-sDEVICE=pdfwrite\
-dPDFSETTINGS=/预印\
-dHaveTrueTypes=true\
-dEmbedAllFonts=true\
-dSubsetFonts=false\
-c“.setpdfwrite SetDiversiterParams”\
-f input.ps
对于第一个问题:我尝试了同一个文件的往返转换:PDF->PS->PDF,结果是否定的:文本显示正确,但当我尝试复制它时,我得到了损坏的字符。我也试过你的“gs”命令,结果也一样。@ice13ill:其他问题呢?请尝试pdffonts original.pdf
+pdffonts roundtripped.pdf
并报告结果。@ice13ill:您的系统上安装了哪个版本的Ghostscript?@ice13ill:v8.71相当旧。。。你能提供你的原始PDF的样本吗(这样我就可以尝试找到更好的方法)?我的一位同事对gs的9版进行了同样的测试。相同的结果:(。我将尝试向您发送文档的一部分,其行为与我执行测试的文档相似。您的系统上安装了哪个版本的Ghostscript?