GhostScript PS 到 PDF 的转换 - 无颜色

GhostScript PS to PDF conversion - No Color

参考这个 post,,可以安全地假设 GhostScript 的 PS-to-PDF 转换仍然没有保证从转换后的文档中剪切和粘贴文本?因为我也遇到了格式化文档的乱码复制粘贴结果,尽管它适用于纯文本文件。

关于颜色问题,我正在使用Microsoft PS Class Driver将文档打印成PostScript格式文件,然后再转成PDF使用 GhostScript v9.20 DLL (上面附有示例源和输出) 格式化。使用的选项如下:

-dNOPAUSE
-dBATCH
-dSAFER
-sDEVICE=pdfwrite
-sColorConversionStrategy=/RGB
-dProcessColorModel=/DeviceRGB

但是,转换后没有颜色。我错过了一些选择吗?

您永远无法保证获得包含可以从 PostScript 程序剪切和粘贴的文本的 PDF 文件。无法保证 PostScript 程序中有任何 ToUnicode 信息,如果没有它,如果字体是此处的子集,则无法知道给定字形的 Unicode 代码点是什么。

关于颜色,你提供的PostScript文件没有颜色,所以不是Ghostscript,问题出在你制作PostScript的方式上。据推测,您使用了用于单色打印机的打印机定义(PPD 文件)。

可能可以通过使用下载字体的选项来改进文本,基本问题是您的 PostScript 程序不包含我们需要的信息能够构建 ToUnicode CMap。如果没有它,我们就不得不假设字符代码是 ASCII,而在您的情况下,因为字体是子集,所以它们不是 ASCII。

出于某种原因,您的 PostScript 内容似乎正在以位图形式下载字体。这很丑陋,不能很好地扩展,并且可能是您无法插入 ToUnicode 数据的原因。这也可能是由您使用的字体引起的,您可以尝试一些标准的系统字体(如果您还没有),例如 TimesNewRoman。

虽然你提供了一个例子来查看这很好,但我建议你将来把这个例子做得更小,更小......真的没有必要在这种情况下,有 13 页多次重复的内容。更多的内容意味着需要更多的时间来破译,尝试将示例文件保持在演示问题所需的最低限度。

简而言之,您的两个问题似乎都是由于您(或应用程序)生成 PostScript 的方式所致。