2010-09-06 10 views

Antwort

6

Sie können die Filter verwenden, die für den Indizierungsdienst entwickelt wurden. Sie sind so konzipiert, dass sie den einfachen Text aus verschiedenen Dokumenten extrahieren, was für die Suche in einem Dokument nützlich ist. Sie können es für Office-Dateien, PDFs, HTML usw. verwenden, grundsätzlich jeden Dateityp mit einem Filter. Der einzige Nachteil ist, dass Sie diese Filter auf dem Server installieren müssen. Wenn Sie keinen direkten Zugriff auf den Server haben, ist dies möglicherweise nicht möglich. Einige Filter sind bereits mit Windows vorinstalliert, aber einige, wie PDF, müssen Sie selbst installieren. Für eine C# Implementierung finden Sie in diesem Artikel: Using IFilter in C#

+0

Das ist * genau * was ich brauchte. Vielen Dank! –

0

Verwenden Sie Word-Objektmodell, es ist die einzige zuverlässige Art und Weise ist, da Word-Format nicht geöffnet ist und variieren von Version zu Version.

+0

Aber wie? Dies ist eine sinnlose Antwort ohne ein Codebeispiel. – KyleM

4

PDF:

Sie haben verschiedene Möglichkeiten.

pdftotext:
Laden Sie die XPDF utilities. In der ZIP-Datei gibt es verschiedene Befehlszeilendienstprogramme. Einer ist pdftotext(.exe). Es kann den gesamten Textinhalt aus einer PDF-Datei mit gutem Verhalten extrahieren. Geben Sie pdftotext -help ein, um etwas über seine Befehlszeilenparameter zu erfahren.

Ghost:
Installiere latest version of Ghostscript (v.8.71). Ghostscript ist ein PostScript- und PDF-Interpreter. Sie können es verwenden, um Text aus einer PDF als auch zu extrahieren:

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

Dies wird Ausgabetext auf den Seiten 3-7 von input.pdf zu stdout enthält. Sie können dies in eine Datei umleiten, indem Sie > /path/to/output.txt an den Befehl anhängen. (Vergewissern Sie sich, dass das Postscript-Utility-Programm ps2ascii.pslib Unterverzeichnis in Ihrem Ghost vorhanden ist.)

Wenn Sie den -dSIMPLE Parameter weglassen, wird die Textausgabe Zeilenumbrüche und Wortabstände werden zu erraten. Für Details sehen Sie sich die Kommentare in der Datei ps2ascii.ps selbst an. Sie können diesen Parameter sogar durch -dCOMPLEX ersetzen, um zusätzliche Informationen zur Textformatierung zu erhalten.

+0

XPDF funktioniert besser als alles, was ich gefunden habe – chrisfs

0

Sie könnten sich PDFBox ansehen. Hier finden Sie einen Link zu einer Code-Projektseite, auf der Sie erfahren, wie Sie ihn in C# verwenden sowie weitere nützliche Kommentare.

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

Was Wort der Vorschlag, das Word-Objektmodell verwendet, ist wahrscheinlich das genaueste.