我可以从Win7打印驱动程序生成的PostScript文件中提取文本,但不能从Win8中提取文本。
例如,在Windows的"记事本"中创建一些文本,告诉记事本使用HP PostScript打印驱动程序进行打印,并告诉打印驱动程序输出到文件,我获得一个文件,然后我想从中提取文本。
我已经在 Ubuntu 平台上尝试了 Ghostscript 的ps2ascii
和pstopdf | pdftotext
以及许多其他东西,虽然其中一些适用于 Win7 输出,但我找不到任何适用于 Win8 输出的组合。
有开源解决方案吗?
你不能保证从任何PostScript程序获取文本,它不是为此而设计的。
但是,Ghostscript的txtwrite设备将在Windows PostScript打印机驱动程序的输出上做得很好。它比ps2ascii好得多,因为(除其他外)它可以处理Unicode,所以它不限于ASCII。
请注意,应用程序可能会自己生成 PostScript,因此即使输出看起来来自 Windows PostScript 打印机驱动程序,实际内容也可能由应用程序生成。
此外,如果应用程序实际将文本写入设备上下文,则只会从 Windows PostScript 打印机驱动程序中获取文本。例如,如果您从 Edge 浏览器打印 PDF,那么您将在输出中获得文本。如果您在同一系统上从 Chrome 打印相同的 PDF,则文本将呈现为矢量(即线条、弧形、笔触填充等)而不是文本。
请注意,在一般情况下,您要做的事情不会100%成功。