繁体   English   中英

在Itext中获取pdf文件内容

[英]Get pdf file content in Itext

有没有一种方法可以将pdf文件(“ example.pdf”)的内容导入到诸如Paragraph或Chunk的IText对象中?

我需要在我正在生成的新PDF中使用内容(以及其他文本)。

不,至少不容易。

当iText将“块”和“段落”以及所有此类对象放入PDF(或其他创建其各自对象的程序的PDF)中时,“从这里到那里的单词构成一个段落”或“这些单词构成一个章节”的信息通常会丢失。 相反,所有剩余的都是多个定位的字母组。 (好的,可以有更多的信息,但大多数没有。)

但是,您可以做的是使用iText解析器包中的类解析PDF的内容,以检索那些定位的字母组,并对它们应用一些启发式方法,以猜测它们中的哪一个构成了段落,章节或其他内容。 。

它的C#代码,但也应该适用于Java。 命名空间iTextSharp.text.pdf.parser; 在Java上看起来有点不同,但必须为.parse

Rectangle rect = new Rectangle(48.031496063f, 643.307086614f, 198.42519685f + 68.031496063f, 70.866141732f + 663.307086614f);
RenderFilter f = new RegionTextRenderFilter(rect);
List<RenderFilter> fi = new List<RenderFilter>();
fi.Add(f); 
ITextExtractionStrategy strategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), fi.ToArray()); 
//on java it should be:  ITextExtractionStrategy strategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), f); 
sw.WriteLine(PdfTextExtractor.GetTextFromPage(reader, 1, strategy));

对象rect是您要OCR的区域。 所有文本都应放入txt文件,就像我在pdf上显示的一样。 有关iText上的OCR的更多信息,请查看Bruno Lowagie撰写的“ iText in action。2nd Edition”中的15.3章。

免责声明 我和布鲁诺无关,只是读他的书。 它回答了我的很多问题,如何使用iText(Sharp)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM