- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 itextpdf 从我的 android 应用程序中的 pdf 中提取文本。它适用于英语语言的 pdf,但是当我尝试从马拉地语或印地语 pdf 中提取文本时,它没有提取正确的文本。
结果为
मत्रबधअरुणकळकणीैंुजधमनीवनूवनूआधण。 तीं
请帮我提取正确的内容
最佳答案
如果您使用的不是 Android,答案很简单:使用 iText 7。使用 iText 7 解析文档时,输出会更加清晰。它仍然不是 100% 正确,但至少看起来大部分可读对我来说(尽管我需要母语人士来确认)。这是第 2 页:
मैत्रबधंअरुणकुळकणी
मैत्रबधं
अरुण कुळकणी
ईसाहित्यप्रहिष्ठान
ईसाहित्यप्रहिष्ठान
下一页的结果类似,有一些小问题,但没有像 iText 5 中那样扭曲。
但是,很遗憾,您使用的是 Android。目前还没有适用于 iText 7 的 Android 版本,因此您将不得不等待一个或尝试手动将 iText 移植到 Android 平台(如果您对 Android 和 iText 都不是很熟悉,这可能需要永远) .
这是我使用的 iText 7 代码:
// iText imports
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.canvas.parser.PdfTextExtractor;
public class HindiText {
@Test
public void go() throws Exception {
try (PdfDocument doc = new PdfDocument(new PdfReader("input.pdf"))) {
try (OutputStream os = new FileOutputStream("output.txt")) {
String result = PdfTextExtractor.getTextFromPage(doc.getPage(3));
os.write(result.getBytes(Charset.forName("UTF-16")));
}
}
}
}
仅供引用:截至 2016 年 12 月 2 日,您需要从源代码 (https://github.com/itext/itext7) 构建 iText 7 才能达到我上面描述的质量。此功能将包含在 iText 7.0.2 发布时。
关于java - 如何在 android 中使用 itextpdf 从马拉地语、印地语 pdf 文件中提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40926607/
我是一名优秀的程序员,十分优秀!