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

标签 pdf ghostscript postscript file-conversion

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

  • 转换可能有什么问题?也许如果我使用“pdftops”和“ps2pdf”,是否有一些选项需要更改?
  • 如果我创建 .xml 输出,有没有办法从 .xml 文件创建 .pdf 文件?

  • 编辑:
    “pdffonts original.pdf”的输出
    pdffonts_output_originalpdf

    “roundtripped.pdf”的输出
    pdffonts_output_roundtrippedpdf

    最佳答案

    我只是在介绍 PS->PDF 转换......(我假设你的反之亦然的短语并不意味着指向同一个文件的“往返”转换 [PDF->PS- >PDF],但任何 PS 文件的一般转换方向。这是正确的吗?)

    首先,很可能是您的 ps2pdf只是一个shellscript,它在内部使用带有一些默认参数的Ghostscript 命令来完成实际工作。 ps2pdf使用起来要容易得多。 Ghostscript 有更多的选择,但更难学。 ps2pdf如果您使用 Ghostscript,它会剥夺您可能拥有的许多潜在控制权。 (你可以用 ps2pdf 调整一些参数——但是你已经离运行真正的 Ghostscript 命令更近了......)

    其次,在不确切知道您的 PS 输入文件是如何被调节的情况下,很难给您很好的建议:您的 PS 是否嵌入了它使用的字体?它们是哪种字体?等等。

    第三,Ghostscript 获得了很多额外的功能和控制,并且在过去几年中在输出 PDF 时消除了一些错误或弱点。那么,您系统上安装的 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
    

    关于pdf - 将 pdf 正确转换为 ps,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10781588/

    相关文章:

    postscript - 如何处理 PPD 文件中的空纸盒选择代码?

    iphone - 在 iPhone 或 iPad 上打印 PDF 文件

    visual-studio - 如何设置 Visual Studio 自动发布 pdf 文件

    linux - 优化 Ghostscript 的方法?

    wolfram-mathematica - 如何在 Mathematica 中将 .eps 文件转换为 .pdf?

    PDF 优化 Acrobat 与 Ghostscript

    PHP为文件夹中的文件创建链接

    pdf - pdf 文件大小有限制吗?

    使用 Ghostscript 将 PDF 转换为 JPEG - 不正确

    line - 用Ghostscript绘制矩形(使用PostScript语言)