我正在尝试从多页PDF文件中的每个页面中的特定位置提取文本块。
我有文本的位置,我可以在第一页上正确提取它。 但是,在第一页之后的页面上,提取的文本似乎在积累。
例如,如果第1页上的文本值是“A”,第2页是“B”,第3页是“C”,那么我通过FOR循环在每次迭代的输出字符串中接收以下值: / p>
Loop1:output = A
循环2:输出= B A
循环3:输出= C B A
我在我的项目中使用iTextSharp,用C#编写。
任何帮助都将不胜感激。
var reader = new PdfReader(foregroundFile);
RectangleJ customerIdRectangle = new RectangleJ(0, 495, 108, 27);
RenderFilter[] filters = new RenderFilter[1];
LocationTextExtractionStrategy regionFilter = new LocationTextExtractionStrategy();
filters[0] = new RegionTextRenderFilter(customerIdRectangle);
FilteredTextRenderListener strategy = new FilteredTextRenderListener(regionFilter, filters);
for (int i = 1; i <= reader.NumberOfPages; i++)
{
string output = "";
output = PdfTextExtractor.GetTextFromPage(reader, i, strategy);
Console.WriteLine(output);
}
答案 0 :(得分:4)
请调整您的代码:
var reader = new PdfReader(foregroundFile);
RectangleJ customerIdRectangle = new RectangleJ(0, 495, 108, 27);
for (int i = 1; i <= reader.NumberOfPages; i++)
{
RenderFilter[] filters = new RenderFilter[1];
LocationTextExtractionStrategy regionFilter = new LocationTextExtractionStrategy();
filters[0] = new RegionTextRenderFilter(customerIdRectangle);
FilteredTextRenderListener strategy = new FilteredTextRenderListener(regionFilter, filters);
string output = "";
output = PdfTextExtractor.GetTextFromPage(reader, i, strategy);
Console.WriteLine(output);
}