将pdf正确转换为ps,反之亦然

将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

我使用“pdftops”将.pdf文件转换为.ps文件,然后使用“ps2pdf”进行反向处理(poppler-utils)。问题是,当从.ps文件创建.pdf文件时,文本看起来没问题,但当我尝试复制它时,字符非常奇怪(就像它们被破坏了一样)。我在其他文件上使用了这些工具很长时间,效果很好。 我还尝试了“pdftohtml-xml”来创建一个.xml文件,文本没有问题(字符被正确提取)

  • 在转换方面会有什么问题?如果我使用“pdftops”和“ps2pdf”,是否有一些选项需要更改
  • 如果我创建.xml输出,是否有方法从.xml文件创建.pdf文件
  • 编辑: “pdffonts original.pdf”的输出

    “roundtripped.pdf”的输出

    我只是介绍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?