我正在开展一个有几个pdf文件的学校项目。应该按名称功能搜索,我只需输入学生的姓名,所有带有他/她姓名的pdf文件都应该打开。做这个的最好方式是什么?我在网上寻找解决方案,我想出的就是iTextSharp,它让人更加困惑。
这可能吗?也许有人可以给我一个教程或其他东西的链接。 :) 非常感谢你。
答案 0 :(得分:4)
使用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
现在,您可以轻松搜索这些文件。
答案 1 :(得分:3)
PDF是一个非常复杂的规范,可以创建如此多的变体,除非您使用相同的工具来读取它,否则无法可靠地进行解析(通常甚至不会这样)。有几种工具可以将PDF压缩成文本字符串(例如pdf2text),也可以搜索这些但不可靠。
许多PDF工具只实现了一些规范。有人建议搜索PDF的最佳方法是将其缩小为图像,然后将其缩小。
答案 2 :(得分:2)
我认为您的任务可能会分为以下几种:
要构建索引,您可以使用某些集成解决方案,例如Apache Lucene或Lucene.Net,或将每个PDF转换为文本并根据文本构建索引。
其他两个步骤相当简单,取决于第一步中使用的语言/技术。
您的问题被标记为与.NET相关,因此您可以尝试Docotic.Pdf library进行索引构建(免责声明:我为Bit Miracle工作)。
Docotic.Pdf可用于从纯文本或具有每个块的坐标的文本块集合中提取PDF文件中的文本。