过滤包含给定关键字的PDF文件

时间:2019-10-18 13:49:54

标签: c# winforms pdf itext

我正在尝试制作一个listBox,该文件将显示包含textBox中给定关键字的PDF文件。
我正在使用iTextSharp7。所有文件都作为完整路径字符串加载到listBox中。
这是我到目前为止所做的:

查找给定关键字的功能:

private int ReadPdfFile(string fileName, String searthText)
{
    int indicator = 0; 

    if (File.Exists(fileName))
    {
        PdfReader pdfReader = new PdfReader(fileName);
        PdfDocument pdfDocument = new PdfDocument(pdfReader);
        {
            for (int page = 1; page <= pdfDocument.GetNumberOfPages(); page++)
            {
                ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();

                string currentPageText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(page), strategy);

                if (currentPageText.Contains(searthText))
                {
                    indicator++;
                }
            }
        }
    }
    return indicator;
}

还有textBox代码:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    listBox2.Items.Clear();

    for (int i = 0; i < items.Count; i++)
    {
        if (ReadPdfFile(items[i].ToString(), textBox1.Text)>0)
        {
            listBox2.Items.Add(items[i]);
        }
    }          
}

但是当我尝试在文本框中键入任何内容时,在PdfDocument pdfDocument = new PdfDocument(pdfReader);处出现以下异常

  

System.IO.FileNotFoundException:'无法加载文件或程序集   'Common.Logging,版本= 3.4.1.0,文化=中性,   PublicKeyToken = af08829b84f0328e”或其依赖项之一。的   系统找不到指定的文件。'

有什么建议吗? 我什至朝着正确的方向前进吗?

1 个答案:

答案 0 :(得分:0)

您需要检查Common.Logging.dll文件是否在项目的bin目录中。如果不是

在程序包管理器控制台的Visual Studio中尝试此操作。

PM> Install-Package Common.Logging
相关问题