如何使用android中的itextpdf从marathi,hindi pdf文件中提取文本

时间:2016-12-02 07:04:49

标签: java android itext

我使用itextpdf在我的android应用程序中从pdf中提取文本。它适用于具有英语语言的pdf,但是当我试图从马拉地语或印地语中提取文本时,它没有提取正确的文本。

正在给出结果

मत्रबधबधरुणकळकणी ैंुशेणानेजधमनीसारवनूूाल्याआधणसमुाककागणुगणुतरागोळीकाढूलागली。 तीं

请帮助我提取适当的内容

1 个答案:

答案 0 :(得分:4)

如果您不在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-02起,您需要从源代码(https://github.com/itext/itext7)构建iText 7,以达到我上面描述的质量。此功能将在发布时包含在iText 7.0.2中。