我正在尝试从多页 PDF 文件中每个页面的特定位置提取文本块。
我知道文本的位置,并且能够在第一页上正确提取它。
然而,在第一页之后的页面上,提取的文本似乎正在累积。
例如,如果第 1 页上的文本值为“A”,第 2 页为“B”,第 3 页为“C”,那么对于通过 FOR 循环的每次迭代,我将在输出字符串中收到以下值:
循环 1:输出 = 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);
}
请像这样调整您的代码:
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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)