我正在虚拟打印机上的项目上,我想将ps文件转换为txt和pdf。我正在使用ps2pdf并将其很好地转换为pdf,但是当我要将ps文件转换为txt时,我使用ps2ascii,然后出现问题。 ps文件包含俄语符号。如何将ps文件转换为txt(俄语)?我在网上读到这是unicode问题。
答案 0 :(得分:0)
ps2ascii仅处理ASCII(线索显然是名称)。 ps2ascii shell脚本和PostScript程序早在一段时间就已从标准Ghostscript源代码树中删除,因为它太受限制并且有更好的选择。
使用PostScript的问题在于,无法保证将用于渲染文本的字符代码与Unicode或任何其他标准文本编码相关联的方法。 PostScript是一种用于打印而非编辑的语言。
您可能很幸运,这完全取决于您生成的PostScript程序使用的字体和Encoding / 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文件不可用,我可以肯定地说。