我只是介绍 PS->PDF 转换...(我假设您的反之亦然的短语并不意味着指向同一个文件的“往返”转换 [PDF->PS- >PDF],但任何PS 文件的一般转换方向。对吗?)
首先,很可能您ps2pdf
只是一个 shellscript,它在内部使用带有一些默认参数的 Ghostscript 命令来完成实际工作。ps2pdf
更容易使用。Ghostscript 有更多的选择,但它更难学习。 ps2pdf
如果您使用 Ghostscript,它会带走很多潜在的控制权。(您可以使用 -- 调整一些参数,ps2pdf
但是您已经非常接近运行真正的 Ghostscript 命令了......)
其次,如果不确切知道你的 PS 输入文件的条件如何,很难给你好的建议:你的 PS 是否嵌入了它使用的字体?它们是哪种字体?等等
第三,Ghostscript 获得了很多额外的功能和控制,并且在过去几年中消除了一些在输出 PDF 方面的错误或弱点。那么,您系统上安装的 Ghostscript 版本是什么?(请记住,调用 Ghostscript,如果没有本地安装的可执行文件ps2pdf
,它将无法工作。)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