将 .ps 文件转换为 .txt(俄语)

Convert .ps file to .txt (russian language)

我正在虚拟打印机上处理项目,我想将 ps 文件转换为 txt 和 pdf。我正在使用 ps2pdf 并且它可以很好地转换为 pdf,但是当我想将 ps 文件转换为 txt 时,我使用 ps2ascii ,然后遇到了问题。 ps 文件包含俄语符号。如何将 ps 文件转换为 txt(俄语)?我在网上看到这是 unicode 问题。

ps2ascii 仅处理 ASCII(线索显然在名称中)。 ps2ascii shell 脚本和 PostScript 程序已从标准 Ghostscript 源代码树中移除,因为它太有限了,还有更好的选择。

使用 PostScript 的问题是无法保证将用于呈现文本的字符代码与 Unicode 或任何其他标准文本编码相关联。 PostScript 是一种用于打印而非编辑的语言。

可能 幸运,这完全取决于字体和 Encoding/CMap 您制作的 PostScript 程序所使用的。我注意到您在谈论 'virtual printer' 是在 Windows 上吗?如果是这样,您可能很幸运,Windows PostScript 打印机驱动程序在将某些字体嵌入 PostScript 程序时至少会为某些字体添加额外的(完全非标准的)信息。此附加信息可用于检索 Unicode 代码点。

我会首先尝试在 PostScript 上使用 Ghostscript 中的 txtwrite 设备(你应该直接使用 Ghostscript 而不是使用预烘焙脚本),看看它是否能够提取文本。

如果没有,则尝试从 PostScript 创建 PDF 文件,然后在 PDF 文件上使用 txtwrite 设备。我不确定 txtwrite 设备是否具有 pdfwrite 设备的所有功能,它可能无法直接使用 teh 字体中的 Unicode 信息,但它肯定可以从 PDF 文件中使用它。

我可能还应该指导您阅读 Ghostscript 的许可证,它是 AGPL 第 3 版,这样您就不会把时间浪费在某些东西上,然后发现您出于法律原因无法使用。

[编辑]

快速检查后,我们似乎删除了 ps2ascii PostScript 程序,但更改了 ps2ascii 脚本以改为使用 txtwrite 设备。因此,如果您使用较新版本的 Ghostscript,就会发生这种情况。如果这不能生成可接受的文本,请尝试创建一个 PDF 文件并在其上 运行 ps2ascii。如果这不起作用,那么很可能您根本无法做您想做的事情,信息已经在打印过程中消失了。

如果您制作了一个无法使用的示例 PostScript 文件,我可以说得更明确。