Mittwoch, 27. März 2013

5 Wege PDF-Dateien (halb)automatisch zu durchsuchen_

Dies ist mal wieder ein Artikel zu einer Problemstellung, die mich gerade bei einem privaten Projekt beschäftigt. Ich habe ein Verzeichnis voller PDF Dateien und möchte diese programmgesteuert (z.B. via Access VBA) nach bestimmten Begriffen durchsuchen. Bei Treffern soll die Fundstelle im Acrobat Reader angezeigt werden.

Lösung 1: Einfache PDF Suchfunktion via DOS-Kommandozeile

Das funktioniert eigentlich schon ganz gut mit folgender Syntax:
"[AcrobatReader]" /A "search=[Suchwort]" "[PDF Datei]"

Beispiel: Die folgende Command-Line öffnet das Dokument d:\Archiv\Zeitungsartikel Nr 49.pdf mit dem Acrobat Reader 11, sucht nach dem Wort Bohnenkraut und zeigt die erste Fundstelle an:
"c:\Programme\Adobe\Reader 11.0\Reader\AcroRd32.exe" /A "search=Bohnenkraut" "d:\Archiv\Zeitungsartikel Nr 49.pdf"

Der Haken:
Es kann nur ein Dokument zum durchsuchen angegeben werden, nicht eine Liste oder ein Verzeichnis.

Lösung 2: Erweiterte Suchfunktion, leider ohne Kommandozeile

Der Acrobat Reader könnte eigentlich noch viel mehr, nämlich sehr komfortabel und schnell mehrere PDF-Dokumente durchsuchen und in einer Liste anzeigen, in welcher PDF-Datei Fundstellen vorhanden sind. Aus dieser Liste heraus können die Fundstellen dann auch aufgerufen und angezeigt werden. Das geht über Bearbeiten / Erweiterte Suche (advanced search) bzw. die Tastenkombination Strg Shift f. Dabei baut der Reader bei der ersten Suche einen Index auf, so dass ab dem zweiten Suchvorgang nochmals deutlich schneller Ergebnisse angezeigt werden!

Der Haken:
Auch wenn ich und andere uns schon "wund-gegoogelt" haben, lassen sich keine Kommandozeilenparameter für die erweiterte Suche finden. Man muss diesen Modus also jeweils händisch aufrufen.

Noch ein paar Tipps:
Im Adobe Reader unter Bearbeiten / Voreinstellungen / Suchen kann man einstellen, dass nicht der Dokumententitel, sondern der Dateiname in der Trefferliste angezeigt wird. Außerdem kann man im selben Menü den Such-Cache (Such-Index) leeren bzw. auch vergrößern.

Lösung 3: Textuelles Abbild der PDF erzeugen, dieses durchsuchen und die Fundstellen einzeln mit Lösung 1 anzeigen.

Das klingt erst mal komplizierter als es ist, da es das hervorragende Freeware Kommandozeilentool PDFtoTEXT gibt, das die reinen Textinformationen rasant schnell aus beliebigen PDF Dateien auslesen und in eine Text- oder HTML-Datei speichern kann. Solche Textdateien könnte man dann relativ einfach durch ein VBA Programm durchsuchen lassen.

Das Programm PDFtoTEXT gibt es für Linux und Windows kostenlos bei www.foolabs.com. Wer Interesse daran hat, schaut vielleicht zunächst mal in die Bedienungsanleitung.

In diesem Zusammenhang besteht ein weiterer guter Hinweis darin, dass sich in Textdateien via Access VBA auch sehr gut Suchen - und auch Ersetzen läßt - siehe VBA Skript.

Lösung 4: Acrobat Portfolios

Acrobat Portfolions sind Sammlungen diverser Dateien (z.B. DOC, PPT, XLS, PDF usw.), die in einer einzelnen PDF Datei zusammengefasst sind und sich darüber recht komfortabel steuern und abrufen lassen. Natürlich ist auch eine Suche quer über alle Dokumente innerhalb eines Portfolios möglich. 
Ich habe mich jedoch nicht weiter damit beschäftigt, da zum Lesen eines Portfolios zwar nur der kostenlose Acrobat Reader notwendig ist, zur Erstellung jedoch die kostenpflichtige Acrobat Vollversion.

Lösung 5: Fertiges Tool einsetzen

Es gibt diverse "fertige" Desktop-Suchprogramme, mit denen man u.a. PDF-Dateien elegant durchsuchen kann. Viele davon sind für den Privatgebrauch sogar kostenlos, siehe www.pctipp.ch. Außer den drei im PCTipp Artikel genannten Programmen habe ich noch weitere Lösungen gefunden, wie die Shareware Findit und das Fujitsu Tool Rack2Filer, jedoch keines der 5 Programme bisher getestet. Rack2Filer wird bei den Fujitsu Scannern in der Deluxe Variante übrigens kostenlos mitgeliefert (siehe auch Revolution im Arbeitszimmer).

Schlusswort und Aufruf

Von der Einfachheit her sind Lösung 1 und 2 meine Favoriten, da man mit einem Minimum an Zusatztools auskommt. Das schlägt für meine Bedürfnisse auch die hier noch gar nicht beschriebene Lösung über die in Windows integrierte iFilter Indexsuche.

Optimal wäre aus meiner Sicht die Möglichkeit Lösung 2 kommandozeilenbasiert aufzurufen. Adobe scheint dies nicht vorgesehen zu haben. Vielleicht gäbe es die Möglichkeit mit Hilfe von Adobes Search.API ein kommandozeilenbasiertes Startprogramm für den Acrobat Reader zu entwickeln. Ein solcher "PDF-Launcher" ist für einen erfahrenen Entwickler vermutlich nicht sehr schwierig umzusetzen und würde sich sicher einer relativ hohen Nachfrage erfreuen.


Bildquellenangabe:Gerd Altmann  / pixelio.de

Keine Kommentare:

Kommentar veröffentlichen