我正在研究一個有多個pdf文件的學校項目。應該有一個名字搜索功能,我只需輸入學生的姓名,並打開所有他/她的名字的PDF文件。做這個的最好方式是什麼?我在網上尋找解決方案,所有我想出來的是iTextSharp,這使得更加困惑。在pdf文件中搜索字符串
這可能嗎?也許有人可以請給我一個教程鏈接,或者其他什麼。 :) 非常感謝。
我正在研究一個有多個pdf文件的學校項目。應該有一個名字搜索功能,我只需輸入學生的姓名,並打開所有他/她的名字的PDF文件。做這個的最好方式是什麼?我在網上尋找解決方案,所有我想出來的是iTextSharp,這使得更加困惑。在pdf文件中搜索字符串
這可能嗎?也許有人可以請給我一個教程鏈接,或者其他什麼。 :) 非常感謝。
PDF是一個非常複雜的規範,可以創建如此多的變體,除非您使用相同的工具讀取它以創建它(並且通常甚至不是那麼),否則無法可靠地進行解析。有幾種工具可以將PDF壓縮成文本字符串(例如pdf2text),並且可能會搜索這些文件,但它不可靠。
許多PDF工具只實現了一些規範。有些人認爲搜索PDF的最佳方式是將其縮小爲圖像,然後進行OCR。
我覺得你的任務可作如下劃分:
要建立索引你可以使用一些集成解決方案,像Apache Lucene或Lucene.Net或將每個PDF轉換爲文本並從文本中自行建立索引。
其他兩個步驟相當平凡,取決於第一步中使用的語言/技術。
你的問題被標記爲與.NET相關,所以你可以嘗試Docotic.Pdf library建立索引(免責聲明:我爲Bit Miracle工作)。
Docotic.Pdf可用於從PDF文件中以純文本或以每個塊的座標爲文本塊的集合提取文本。
使用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
現在您可以輕鬆搜索這些文件。