我正在使用现有的库 - 该库的目标是从PDF中提取文本以验证质量检查记录数据的预期值与pdf中的数据。
我正在寻找一种方法来简洁地提取一个特定页面的文本,给定一个字符串,该字符串应该只落在该特定页面上。
var pdfDocument = new Document(file.PdfFilePath);
var textAbsorber = new TextAbsorber{
ExtractionOptions = {
FormattingMode = TextExtractionOptions.TextFormattingMode.Pure
}
};
pdfDocument.Pages.Accept(textAbsorber);
foreach (var page in pdfDocument.Pages)
{
}
我被困在foreach(var page in pdfDocument.Pages)
部分......或者是正确的区域?
答案 0 :(得分:0)
答案:Text Absorber重新创建了每个页面 - 在foreach循环中。
如果没有重新创建吸收器,它会保留前一个循环的文本。
public List<string> ProcessPage(MyInfoClass file, string find)
{
var pdfDocument = new Document(file.PdfFilePath);
foreach (Page page in pdfDocument.Pages)
{
var textAbsorber = new TextAbsorber {
ExtractionOptions = {
FormattingMode = TextExtractionOptions.TextFormattingMode.Pure
}
};
page.Accept(textAbsorber);
var ext = textAbsorber.Text;
var exts = ext.Replace("\n", "").Split('\r').ToList();
if (ext.Contains(find))
return exts;
}
return null;
}