[英]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.