【问题标题】:Searching for a string in a pdf files在 pdf 文件中搜索字符串
【发布时间】:2011-06-26 01:19:38
【问题描述】:

我正在处理一个包含多个 pdf 文件的学校项目。应该有一个按名称搜索的功能,我只需输入学生的名字,所有带有他/她名字的 pdf 文件都应该打开。做这个的最好方式是什么?我在网上寻找解决方案,但我想出的只是 iTextSharp,这让我更加困惑。

这可能吗?也许有人可以给我一个教程的链接,或者什么。 :) 非常感谢。

【问题讨论】:

    标签: c# .net string search pdf


    【解决方案1】:

    使用 iTextSharp。它是免费的,您只需要“itextsharp.dll”。

    http://sourceforge.net/projects/itextsharp/

    这是一个从 PDF 中读取文本的简单函数。

    Public Shared Function GetTextFromPDF(PdfFileName As String) As String
        Dim oReader As New iTextSharp.text.pdf.PdfReader(PdfFileName)
    
        Dim sOut = ""
    
        For i = 1 To oReader.NumberOfPages
            Dim its As New iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy
    
            sOut &= iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(oReader, i, its)
        Next
    
        Return sOut
    End Function
    

    现在您可以轻松搜索这些文件了。

    【讨论】:

      【解决方案2】:

      PDF 是一个非常复杂的规范,可能会创建如此多的变体,以至于无法可靠地解析,除非您使用与创建它时使用的工具相同的工具来阅读它(而且通常甚至不是这样)。有几种工具可以将 PDF 展平为文本字符串(例如 pdf2text),并且可以搜索这些工具,但不可靠。

      许多 PDF 工具只实现了部分规范。有人建议搜索 PDF 的最佳方法是将其缩小为图像,然后进行 OCR。

      【讨论】:

        【解决方案3】:

        我认为你的任务可能会被拆分如下:

        • 建立 PDF 文件索引
        • 编写一些代码,以便在执行搜索时使用索引来定位相关 PDF
        • 编写一些代码以打开找到的 PDF 或在未找到任何内容时显示警告

        要建立索引,您可以使用一些集成的解决方案,如Apache LuceneLucene.Net 或将每个 PDF 转换为文本并自己从文本构建索引。

        其他两个步骤相当简单,取决于第一步使用的语言/技术。

        您的问题被标记为与 .NET 相关,因此您可以尝试 Docotic.Pdf library 进行索引构建(免责声明:我为 Bit Miracle 工作)。

        Docotic.Pdf 可用于从 PDF 文件中提取文本作为纯文本或文本块的集合以及每个块的坐标。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-12
          • 2011-01-31
          • 2021-10-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多