我正在開發一個使用VB9(VS2008)和Lucene.NET的桌面搜索引擎。 Lucene.NET中的索引器只接受原始文本數據,不可能直接從Microsoft Office(DOC,DOCX,PPT,PPTX)和PDF文檔中提取原始文本。 從這些文件中提取原始文本數據的最佳方式是什麼?什麼是解析Microsoft Office和PDF文檔的最佳方式?
7
A
回答
6
與Windows桌面搜索一樣,您可以使用實現IFilter接口的組件。
2
我只能說說這裏MS Office文檔。有幾種方法可以做到這一點:
- 使用COM自動化
- 使用轉換器,輸出的文檔更易於使用的格式
- 使用第三方庫
- 使用微軟的OpenXML的SDK
COM自動化的缺點是不總是可靠的,主要是因爲應用程序往往會因模態彈出對話框而掛起。
轉換器可用於Word。您可以查看Microsoft提供的文本轉換器SDK,這將允許您在獨立應用程序中使用隨Word附帶的文檔轉換器。需要一些C編碼,但由於您使用的是與Office相同的轉換引擎,因此您將獲得高保真度的結果。該SDK可以從http://support.microsoft.com/kb/111716獲得。
對於使用第三方庫的第三種選擇,您可能想看看Apache POI或SourceForge上的b2xtranslator project。後者提供了一個C#庫,它允許您從二進制Word文檔中提取文本。 PowerPoint的開發仍然處於早期的體育場,但文本提取應該已經有效。
最後一個選擇是使用微軟的OpenXML SDK。這可能是首選/最簡單的方法。搜索Google樣本。
字:
"C:\Program Files\Microsoft Office\Office12\wordconv.exe" -oice -nme <input file> <output file>
Excel中:
"C:\Program Files\Microsoft Office\Office12\excelcnv.exe" -oice <input file> <output file>
PowerPoint演示:
您還可以通過使用Office兼容包(下載並安裝Microsoft)首先把它們處理二進制文件"C:\Program Files\Microsoft Office\Office12\ppcnvcom.exe" -oice <input file> <output file>
2
對於PDF,您可以使用我公司的.NET PDF Reader組件fe atures文本提取。
這就是你寫的提取從PDF文本代碼:
public String ReadTextFromPages(Stream s)
{
using (PdfTextDocument doc = new PdfTextDocument(s))
{
PdfTextReader rdr = doc.GetPdfTextReader();
return rdr.ReadToEnd();
}
}
相關問題
- 1. 自動轉換Microsoft Office文檔的最佳方式
- 2. 什麼是解析和替換字符串的最佳方式?
- 3. 在Perl中解析Excel文件的最佳方式是什麼?
- 4. 在Jackrabbit Repository中存檔文檔的最佳方式是什麼?
- 5. 解析Office文檔
- 6. 將Microsoft Word文檔轉換爲XHTML的最佳方式是什麼?
- 7. 在我的Sphinx文檔中包含PDF的最佳方式是什麼?
- 8. 從iOS的URL解析XML的最佳方式是什麼?
- 9. 在線添加用戶簽名到PDF文檔的最佳方式是什麼?
- 10. 在HTML中解析和替換文本的最佳方式是什麼?
- 11. 在PHP中解析PayPal NVP的最佳方式是什麼?
- 12. PowerShell解析這些字符串的最佳方式是什麼?
- 13. 解析字符串的最佳方式是什麼?
- 14. 解析URL以提取域的最佳方式是什麼?
- 15. JSF推遲解析JavaScript的最佳方式是什麼?
- 16. 什麼是解析短信電子郵件的最佳方式?
- 17. 在Ruby中解析網頁的最佳方式是什麼?
- 18. 解析文本文檔的最佳方式
- 19. 什麼是存儲軟件文檔的最佳方式?
- 20. 什麼是生成REST API文檔的最佳方式?
- 21. 在C#中讀寫cXML文檔的最佳方式是什麼?
- 22. 在Mongo中組織子文檔的最佳方式是什麼?
- 23. 在pymongo中嵌入文檔的最佳方式是什麼?
- 24. 解析JSONObjects和JSONArray的最佳方式
- 25. 在Xcode中解析和使用XML的最佳方式/庫什麼是
- 26. 在Ruby中解析製表符分隔文件的最佳方式是什麼?
- 27. 什麼是從ASP.Net生成PDF和Excel文件的最佳方式MVC
- 28. 轉換文件的最佳文件解析解決方案是什麼?
- 29. 最佳(最快)的方式來解析和修改文件
- 30. 在ASP.Net中打印PDF報告的最佳方式是什麼?
如果我可以再補充到這一點 - 對於所有的愛情是神聖的,使用福昕PDF IFilter的。 32位版本是免費的。它比Adobe更快,更穩定。 http://www.foxitsoftware.com/pdf/ifilter/index.html。 – 2009-04-09 19:30:20