在asp.net中搜索PDF内容 c#

5t7ly7z5  于 2023-10-21  发布在  .NET
关注(0)|答案(3)|浏览(152)

实际上我的要求是使用PDF内容搜索PDF文件。
我有一个文件夹,里面有很多PDF文件。我想开发一个ASP.net应用程序,使用户能够搜索PDF使用的内容,他们提供的文本框内。
如何执行这项任务?谢谢你提前。

1u4esq0p

1u4esq0p1#

您的任务可以分为以下子任务:
1.开发索引,将索引所有的PDF文件
1.开发代码以在执行搜索时定位相关PDF(当然,使用索引)
1.开发将打开相关PDF或在未找到任何内容时显示警告的功能
要建立索引,您可以使用一些集成的解决方案,如Apache Lucene或Lucene.Net,或者将每个PDF转换为文本并从文本中构建索引。
您可以尝试Docotic.Pdf library作为索引器部分(免责声明:我为Bit Miracle工作。
该库可以用于extract text from PDFs。它可以提取带或不带格式的文本。提取的文本可用于创建索引。
该库还可以从PDF中检索words with their bounding rectangles的集合。如果你需要知道文本在文件中的确切位置,这可能很有用。
如果你不想建立索引,那么你仍然可以使用Docotic.Pdf来执行搜索,使用如下代码:

PdfDocument doc = new PdfDocument("file.pdf");
string textToSearch = "some text";
for (int i = 0; i < doc.Pages.Count; i++)
{
    string pageText = doc.Pages[i].GetText();
    int count = 0;
    int lastStartIndex = pageText.IndexOf(textToSearch, 0, StringComparison.CurrentCultureIgnoreCase);
    while (lastStartIndex != -1)
    {
        count++;
        lastStartIndex = pageText.IndexOf(textToSearch, lastStartIndex + 1, StringComparison.CurrentCultureIgnoreCase);
    }

    if (count != 0)
        Console.WriteLine("Page {0}: '{1}' found {2} times", i, textToSearch, count);
}
kpbwa7wx

kpbwa7wx2#

你可以使用任何库,尝试iTextSharp它是一个免费的。
您可以将PDF阅读为文本,如this

public string ReadPdfFile(string fileName)
{
    StringBuilder text = new StringBuilder();

    if (File.Exists(fileName))
    {
        PdfReader pdfReader = new PdfReader(fileName);

        for (int page = 1; page <= pdfReader.NumberOfPages; page++)
        {
            ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
            string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);

            currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
            text.Append(currentText);
        }
        pdfReader.Close();
    }
    return text.ToString();
}
idfiyjo8

idfiyjo83#

尝试Zoom Search它有一个插件用于提取pdf文档文本(你可以搜索),它很容易定制你的搜索.你将需要标准版,这是不免费的(约49美元).缩放搜索做你的搜索开箱即用,你不需要做任何复杂的东西,例如,如果你喜欢从pdf中提取文本,然后一些如何索引它在数据库中搜索或尝试使用Lucene搜索引擎,这将需要你做实现/和自定义(一点工作). Zoom与ASP.NET配合得很好,您只需要使用GUI来定制搜索(不需要编写大量代码)。

相关问题