0

我正在使用现有的库 - 库的目标是从 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)部分内……或者那是要寻找的正确区域?

4

1 回答 1

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;
}
于 2018-03-12T19:25:34.400 回答