我在阅读带有页眉和页脚的PDF时遇到了问题,但是你身体上有两列。
我已经有了标题的列宽和高度,但我需要代码来读取带有列的页面。
任何人都可以向我提供一段用PDF读取PDF的代码吗?
谢谢
答案 0 :(得分:1)
如果您不知道列的位置,很难达到您想要的效果,但我认为您有坐标,因为您说"我已经有了列宽和身高"。在这种情况下,您的问题与StackOverflow上发布的其他问题不同:iTextSharp read from specific position
假设rect
是与列位置对应的Rectangle
,那么您需要以下代码:
RenderFilter[] filter = {new RegionTextRenderFilter(rect)};
ITextExtractionStrategy strategy = new FilteredTextRenderListener(
new LocationTextExtractionStrategy(), filter);
String single_column = PdfTextExtractor.GetTextFromPage(reader, i, strategy));
现在您将文本放在一列中。您需要为页面上的每一列重复此操作。
额外评论虽然在大多数情况下使用RegionTextRenderFilter
都可以正常工作,但有些情况(通过在行中插入额外的空格字符来创建列)可能需要将文本块拆分为预先处理。这可以通过例如完成。使用this answer中的TextRenderInfoSplitter
并将FilteredTextRenderListener
包装在其中。 (此评论由mkl提供。)