Wie erkennt man, ob eine PDF-Datei nur Bilder enthält oder zur Suche per OCR gescannt wurde?
Frage
Ich habe eine Reihe von PDF-Dateien, die aus gescannten Dokumenten stammen.Die Dateien enthalten eine Mischung aus Bildern und Text.Einige wurden als Bilder ohne OCR gescannt, sodass jede PDF-Seite ein großes Bild darstellt, auch wenn die gesamte Seite ausschließlich aus Text besteht.Andere wurden mit OCR gescannt und enthalten Bilder und durchsuchbaren Text, sofern Text vorhanden ist.In vielen Fällen wurden sogar Wörter in den Bildern durchsuchbar gemacht.
Ich möchte mit Acrobat 8 Pro einen automatisierten Prozess zur Texterkennung in allen gescannten Dokumenten mithilfe von OCR einrichten, aber ich möchte die Dateien, die den OCR-Prozess in der Vergangenheit bereits durchlaufen haben, nicht erneut OCR-erkennen.Weiß jemand, ob es eine Möglichkeit gibt herauszufinden, welche nur Bilder enthalten und welche bereits durchsuchbaren Text enthalten?
Ich habe vor, dies in C# oder VB.NET zu tun, aber ich glaube nicht, dass die Unterscheidung der beiden Dateitypen sprachabhängig ist.
Lösung
In PDF konvertierte gescannte Bilder, die anschließend mit OCR bearbeitet wurden, um den Text durchsuchbar zu machen, enthalten normalerweise die Textteile, die als „unsichtbar“ dargestellt werden.Was Sie also auf dem Bildschirm (oder beim Drucken auf Papier) sehen, ist immer noch das Originalbild.Aber wenn du suchen Bei Erfolg werden die Treffer hervorgehoben, die sich auf dem unsichtbaren Text befinden.
Ich würde Ihnen empfehlen, einen Blick auf die von XPDF abgeleiteten Befehlszeilentools zu werfen pdffonts(.exe)
, pdfinfo(.exe)
Und pdftotext(.exe)
.Downloads finden Sie hier: http://www.foolabs.com/xpdf/download.html
Beispielverwendung von pdffonts
:
C:\downloads\> pdffonts cisco-ip-phone-7911-guide6.1.pdf
name type emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
LGOKFL+Univers-BlackOblique Type 1C yes yes no 13171 0
LGOKGM+Univers-Black Type 1C yes yes no 13172 0
[....]
Dieses PDF verwendet Schriftarten (gekennzeichnet durch die Spalte „Name“), hat sie eingebettet (gekennzeichnet durch das „Ja“ in der Spalte „Einbettung“) und verwendet Teilschriften (gekennzeichnet durch das „Ja“ in der Spalte „Unter“).
C:\downloads\> pdffonts examle1.pdf
name type emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
Univers-BlackOblique Type 1C yes no no 14 0
Arial TrueType no no no 15 0
Dieses PDF verwendet 2 Schriftarten (erkennbar an der Spalte „Name“).Die Schriftart „Universe-BlackOblique“ ist vollständig eingebettet (erkennbar an „yes“ in der Spalte „emb“ und „no“ in der Spalte „sub“).Die Schriftart „Arial“ wird ebenfalls verwendet, ist jedoch nicht eingebettet.
C:\downloads\> pdffonts examle2.pdf
name type emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
Dieses PDF verwendet keine einzige Schriftart und enthält daher keinen eingebetteten Text (also auch keine OCR).
Beispielverwendung von pdftotext
:
C:\downloads\> pdftotext ^
-layout ^
cisco-ip-phone-7911-guide6.1.pdf ^
cisco-ip-phone-7911-guide6.1.txt
Dadurch werden alle Textzeichenfolgen aus der PDF-Datei extrahiert (wobei versucht wird, eine gewisse Ähnlichkeit mit dem Originallayout beizubehalten).Wenn das PDF keinen Text enthält, wissen Sie, dass keine OCR vorhanden ist ...
Andere Tipps
Verschiedene PDF-Tools können Ihnen sagen, ob Text vorhanden ist.Einige sind als COM-Steuerelemente und möglicherweise sogar als native .NET-Steuerelemente verfügbar.
Öffnen Sie das Dokument in Acrobat.Gehen Sie zu Datei -> Eigenschaften.Suchen Sie im Abschnitt „Erweitert“ nach dem PDF-Produzenten.Wenn dort etwas wie „Paper Capture…“ steht, wurde es mit OCR bearbeitet.
Hoffe das hilft.
Apagos pdfspy extrahiert Informationen aus PDF in eine XML-Datei.Es enthält Informationen zum Dokument, einschließlich Bildern und Text.Zu den nützlichen Informationen für Ihr Projekt gehören die Anzahl und Größe der Bilder sowie die Position von OCR-Text (versteckt).
Es tut mir leid, den alten Thread auszugraben, aber wenn Sie das gefunden haben, schauen Sie sich meinen Thread an:
Sie können zusätzliche Informationen über das PDF erhalten, indem Sie es unter Unix/Linux/OSX catten oder es in Python im „rb“-Modus öffnen.(Natürlich ist das Python und Sie wollten das nicht verwenden, aber vielleicht hat es etwas Äquivalentes).
Verwenden Sie „dtsearch“, um einen Index für alle PDF-Dateien zu erstellen ...Anschließend „Anzeigen der Protokolldatei“ des Indexierungsprozesses, um die Liste der nicht indizierten PDF-Dateien zu überprüfen.
Eine sehr Low-Tech-Lösung:Jede Datei, die gescannten Text enthält, enthält zweifellos den Buchstaben „a“. Führen Sie daher eine Suche nach allen Dateiinhalten durch, die den Buchstaben „a“ nicht enthalten.d.h."Kein".Alle angezeigten Dateien wurden nicht mit OCR bearbeitet