在pdf文件中搜索字符串

我正在研究一个有几个pdf文件的学校项目。 应该按名称function搜索,我只需输入学生的姓名,所有带有他/她姓名的pdf文件都应该打开。 做这个的最好方式是什么? 我在网上寻找解决方案,我想出的就是iTextSharp,它让人更加困惑。

这可能吗? 也许有人可以给我一个教程或其他东西的链接。 :) 非常感谢你。

使用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 

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

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

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

我认为您的任务可能会分为以下几种:

  • 构建PDF文件的索引
  • 编写一些代码,使用索引在执行搜索时定位相关的PDF
  • 编写一些将打开找到PDF的代码,或者如果找不到任何内容则显示警告

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

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

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

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