GhostScript PS到PDF转换 - 无颜色

时间:2017-02-03 13:21:30

标签: pdf pdf-generation ghostscript postscript

参考这篇文章GhostScript Conversion Font Issues,可以安全地假设 GhostScript的PS-to-PDF 转换仍然不能保证转换后的文档中的剪切和语音文本?因为格式化文档也会出现乱码复制和乱码结果,尽管它适用于纯文本文件。

在颜色问题上,我使用 Microsoft PS类驱动程序将文档打印到PostScript格式文件,然后使用GhostScript v9.20 DLL 将它们转换为PDF格式(示例上面附带的来源和输出)。使用的选项如下:

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

然而,它没有颜色转换。我错过了一些选择吗?

1 个答案:

答案 0 :(得分:1)

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

关于颜色,您提供的PostScript文件不包含颜色,因此它不是Ghostscript,问题在于您生成PostScript的方式。猜测你使用的打印机定义(PPD文件)用于单色打印机。

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

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

虽然你提供了一个很好的例子,但我建议将来你的例子更小,更多更小......真的不需要13页的乘法在这种情况下重复内容。更多内容意味着需要更多时间来解密,尝试将示例文件保持在演示问题所需的最低限度。

简而言之,您的问题看起来都是由于您(或应用程序)生成PostScript的方式。