使用 Ghostscript 从 PDF 中提取文本

Kit*_*Kat 7 pdf text ghostscript

我正在使用 Ghostscript 9.20 从仅包含两行文本的 PDF 文档中提取文本:

\n\n
Hello world\xe2\x80\xa6\nA beautiful day!\n
Run Code Online (Sandbox Code Playgroud)\n\n

应用的代码是:

\n\n
gswin32c -sDEVICE=txtwrite -o output.txt input.pdf\n
Run Code Online (Sandbox Code Playgroud)\n\n

然而,输出是:

\n\n
  \xe4\xa0\x80\xe6\x94\x80\xe6\xb0\x80\xe6\xb0\x80\xe6\xbc\x80\xe2\x80\x80\xe7\x9c\x80\xe6\xbc\x80\xe7\x88\x80\xe6\xb0\x80\xe6\x90\x80\xe2\x98\xa0\xe2\x80\x80\n  \xe4\x84\x80\xe2\x80\x80\xe6\x88\x80\xe6\x94\x80\xe6\x84\x80\xe7\x94\x80\xe7\x90\x80\xe6\xa4\x80\xe6\x98\x80\xe7\x94\x80\xe6\xb0\x80\xe2\x80\x80\xe6\x90\x80\xe6\x84\x80\xe7\xa4\x80\xe2\x84\x80\xe2\x80\x80\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是怎么回事?我该如何解决?

\n

Ken*_*enS 4

9.20 版本中存在一个错误,影响了某些类型的文本提取。并非全部,这取决于输入,并且由于您没有提供,因此无法判断您的特定输入文件是否受到影响。

要修复它,您可以:

  1. 从我们的 Git 存储库克隆 Ghostscript,构建并测试最新的代码。
  2. 等到下一个版本(三月)并进行测试。
  3. 打开错误报告,有人会查看它。虽然这实际上不会帮助你。如果它已经被修复,那么你必须选择 1 或 2。如果它还没有被修复,那么你需要等到它被修复,然后按照 1 或 2 进行操作,但至少你会帮助改进了产品。