我正在尝试从 PDF 中提取文本。PDF 包含印地语 (Unicode) 文本。我正在使用的提取实用程序是 Apache PDFBox ( http://pdfbox.apache.org/ )。提取器提取文本,但文本无法识别。我尝试在许多编码和字体之间进行更改,但仍无法识别预期的文本。这是一个示例:假设 PDF 中的文本为:पवार
提取后的内容为:̄Ö3⁄4ÖÖ ̧ü
有什么建议吗?
我正在尝试从 PDF 中提取文本。PDF 包含印地语 (Unicode) 文本。我正在使用的提取实用程序是 Apache PDFBox ( http://pdfbox.apache.org/ )。提取器提取文本,但文本无法识别。我尝试在许多编码和字体之间进行更改,但仍无法识别预期的文本。这是一个示例:假设 PDF 中的文本为:पवार
提取后的内容为:̄Ö3⁄4ÖÖ ̧ü
有什么建议吗?
PDF 本质上是一种打印格式,因此将文本记录为一系列视觉字形,而不是实际文本。最初,它从未打算用作数字存档格式,并且仍然出现在许多文档中。对于复杂的脚本,例如需要字形替换、连接和重新排序的阿拉伯语或印度语脚本,基本上你经常会弄得一团糟。您通常会得到嵌入字体中使用的字形 ID,它们与 Unicode 或实际文本编码没有任何相似之处(字体代表字形,其中一些可能映射到 Unicode 代码点,但有些只是需要用于字体内部使用,例如基于上下文或连字的字形变体)。您可以在 LaTeX 生成的 PDF 中看到相同的情况,尤其是非 ASCII 字符和数学。
PDF 还具有将文本作为文本嵌入视觉表示的功能,但这完全由生成应用程序决定。我听说 Word 在生成 PDF 时非常努力地保留该信息,但许多 PDF 生成器却没有(它通常对拉丁语有点作用,这可能是几乎没有人打扰的原因)。
如果 PDF 没有可用的纯文本,我认为对您来说最好的选择是 PDF 上的 OCR 作为图像。