【问题标题】:Convert .ps file to .txt (russian language)将 .ps 文件转换为 .txt(俄语)
【发布时间】:2019-11-09 13:39:08
【问题描述】:

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

【问题讨论】:

    标签: utf-8 postscript converters cyrillic virtual-printer


    【解决方案1】:

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

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

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

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

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

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

    [编辑]

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

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

    【讨论】:

    • 谢谢KenS,我会试试txtwriter,打印机必须在windows上工作,在linux下也是。
    • 用命令ps2pdf完美地将ps转换成PDF,但是ps到txt我不能转换,转换后的文件中有不可读的字符,ps包含俄语文本,我认为是Unicode问题
    • 我可以使用哪些替代工具进行转换。我尝试在在线 PStoTXT 转换器中转换该 ps 文件,但它们都不起作用.. 我读了这篇文章,我认为它是 -> ** 通常带有俄语(西里尔文)文本的文本文件是在 Windows 中使用 Windows-1251 创建的(或 CP-1251)编码。他们很少使用 ISO 8859-5。虽然现代系统使用 UTF-8。**
    • 正如我所说,PostScript 不是一种可移植格式,它只用于打印。您想要的信息完全有可能不在 PostScript 程序中。 Windows 代码页在这里是无关紧要的,信息在打印的过程中已经丢失。虽然您的方法可能适用于 Windows,但它肯定不能可靠地适用于 Linux,Linux 应用程序生成的 PostScript 不包含 Windows 驱动程序发出的(非标准)信息。从本质上讲,我认为您的目标是不可能实现的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2017-02-09
    • 2017-09-23
    • 2014-06-11
    • 1970-01-01
    相关资源
    最近更新 更多