我使用itextpdf在我的android应用程序中从pdf中提取文本。它适用于具有英语语言的pdf,但是当我试图从马拉地语或印地语中提取文本时,它没有提取正确的文本。
正在给出结果
मत्रबधबधरुणकळकणी ैंुशेणानेजधमनीसारवनूूाल्याआधणसमुाककागणुगणुतरागोळीकाढूलागली。 तीं
请帮助我提取适当的内容
答案 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中。