如何从 Android 中的印地语 PDF 文件中提取文本

问题描述

我正在尝试阅读印地语 PDF 的内容。我已使用 itext7 库阅读 PDF 文件。

它对英语 PDF 工作正常,并且还可以获取确切的字符,但是当我尝试使用任何印地语(本地)语言 PDF 时,值的格式不可读。

我正在获取文本的无法识别的格式

d d d daaaah h eeh h ee aaaa  

这里是阅读PDF页面的示例代码。

val pdfReader = PdfReader("pdfPath")
            PdfDocument(pdfReader).use { doc ->
                pdfContent = PdfTextExtractor.getTextFromPage(doc.getPage(1))
            }
            pdfReader.close()

是否需要将语言参数传递给 itext7 库才能获得准确的内容?

解决方法

示例 PDF 中印地语字形的字体对象明确声明这些字形对应于用于文本提取的拉丁语 Unicode 字符:

PDFDebugger screen shot

因此,文本提取器为那些印地语字形提取拉丁语 Unicode 字符是完全正确的。

即使查看嵌入字体程序(超出常规文本提取)也没有改善这种情况,嵌入字体程序也映射到拉丁语 Unicode 字符,只是不同的:

Font Forge screen shot

因此,对于这样的 PDF,您应该尝试 OCR 而不是 文本提取

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...