2010-09-06 101 views

回答

6

您可以使用爲索引服務設計/使用的過濾器。它們旨在從各種文檔中提取純文本,這對於在文檔內進行搜索很有用。您可以將它用於Office文件,PDF,HTML等,基本上任何具有過濾器的文件類型。唯一的缺點是你必須在服務器上安裝這些過濾器,所以如果你沒有直接訪問服務器,這可能是不可能的。某些過濾器預裝在Windows中,但有些過濾器,如PDF,必須自行安裝。對於C#實現檢查這篇文章:Using IFilter in C#

+0

這就是我所需要的。謝謝! – 2010-09-11 06:29:43

0

使用Word對象模型,它是唯一可靠的方法,因爲Word格式是不開放的,因版本不同而不同。

+0

但是,如何呢?這是沒有代碼示例的無用迴應。 – KyleM 2011-12-27 19:48:26

4

PDF:

您有各種選擇。

pdftotext:
下載XPDF utilities。在.zip文件中有各種命令行工具。一個是pdftotext(.exe)。它可以從行爲良好的PDF文件中提取所有文本內容。請鍵入pdftotext -help以瞭解其命令行參數。

的Ghostscript:
安裝latest version of Ghostscript(v.8.71)。 Ghostscript是一個PostScript和PDF解釋器。你可以用它來從PDF中提取文本:包含在3-7的input.pdf頁到stdout

gswin32c.exe^
-q^
-sFONTPATH=c:/windows/fonts^
-dNODISPLAY^
-dSAFER^
-dDELAYBIND^
-dWRITESYSTEMDICT^
-dSIMPLE^
-f ps2ascii.ps^
-dFirstPage=3^
-dLastPage=7^
input.pdf^
-dQUIET 

這將輸出文本。您可以通過在命令中附加> /path/to/output.txt將其重定向到文件。 (檢查以確保該的PostScript實用程序ps2ascii.ps存在於你的Ghostscript的lib子目錄。)

如果省略-dSIMPLE參數,文本輸出將被猜測換行和字間距。有關詳細信息,請查看ps2ascii.ps文件本身的註釋。您甚至可以用-dCOMPLEX替換該參數以獲取其他文本格式信息。

+0

XPDF比我找到的任何東西都更好 – chrisfs 2011-07-05 17:20:08

0

你可能想看看PDFBox。這裏是一個代碼項目頁面的鏈接,向您展示如何在C#中使用它以及其他有用的評論。

http://www.codeproject.com/KB/string/pdf2text.aspx

至於Word中使用Word對象模型的建議可能是最準確的。