首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在android中使用itextpdf从马拉蒂、印地语pdf文件中提取文本

如何在android中使用itextpdf从马拉蒂、印地语pdf文件中提取文本
EN

Stack Overflow用户
提问于 2016-12-02 07:04:49
回答 1查看 2.2K关注 0票数 2

我使用itextpdf从我的android应用程序中的pdf中提取文本。对于有英语语言的pdf来说,它很好,但是当我试图从marathi或印地语pdf中提取文本时,它并不是提取正确的文本。

它带来的结果是

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

请帮助我提取适当的内容。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-02 09:38:21

如果你不在安卓系统上,答案会很简单:使用iText 7。当用iText 7解析文档时,输出会更清晰。它仍然不是100%正确的,但至少在我看来它是可读的(虽然我需要一位母语为我的人来确认)。这是第2页:

मैत्रबधंअरुणकुळकणी

मैत्रबधं

अरुणकुळकणी

ईसाहित्यप्रहिष्ठान

ईसाहित्यप्रहिष्ठान

下一页的结果是相似的,有些小问题,但没有像iText 5那样扭曲。

但不幸的是你在安卓系统上。到目前为止,iText 7还没有安卓版本,因此您将不得不等待一个版本,或者尝试手动将iText移植到Android平台(如果您对安卓和iText都不熟悉的话,这可能会花费很长时间)。

这是我使用的iText 7代码:

代码语言:javascript
运行
复制
// 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")));
            }
        }
    }
}

FYI:从2016-12-02开始,您需要从源代码(https://github.com/itext/itext7)构建https://github.com/itext/itext77,以达到我前面描述的质量。此功能将在发布时包含在iText 7.0.2中。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40926607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档