Für ein kleines Projekt muss ich PDF-Dateien analysieren und einen bestimmten Teil davon übernehmen (eine einfache Zeichenkette). Ich würde gerne Python verwenden, um dies zu tun, und ich habe mehrere Bibliotheken gefunden, die in gewisser Weise in der Lage sind, das zu tun, was ich will.
Aber jetzt, nach ein paar Recherchen, frage ich mich, wie eine PDF-Datei wirklich aufgebaut ist. Weiß jemand, ob es irgendwo online eine Spezifikation oder einige Erklärungen gibt? Ich habe einen Link auf Adobe gefunden, aber es scheint, dass es sich um einen toten Link handelt :(
Ich fand die GNU-Einführung in PDF hilfreich, um die Struktur zu verstehen. Es enthält eine leicht lesbare Beispiel-PDF-Datei , die ausführlich beschrieben wird.
Weitere hilfreiche Links:
quelle
Als ich anfing, mit PDF zu arbeiten, war die Navigation in der PDF-Referenz sehr schwierig. Es kann hilfreich sein zu wissen, dass die Übersicht über die Dateistruktur in der Syntax enthalten ist und dass Adobe die Dokumentstruktur als Objektstruktur und nicht als Dateistruktur bezeichnet. Das findet man auch in der Syntax. Die Beschreibung der Operatoren ist in Anhang A versteckt - sehr nützlich, um zu verstehen, was in Inhaltsströmen geschieht. Wenn Sie jemals Schmerzen haben, mit Farbräumen zu arbeiten, werden Sie diese in Grafiken finden! Hoffentlich helfen Ihnen diese Hinweise dabei, Dinge schneller zu finden als ich.
Wenn Sie Windows verwenden, können Sie mit pdftron CosEdit die Objektstruktur durchsuchen, um sie zu verstehen. Es ist eine kostenlose Demo verfügbar, mit der Sie die Datei untersuchen, aber nicht speichern können.
quelle
Hier ist die Rohreferenz von PDF 1.7 und hier ein Artikel , der die Struktur einer PDF- Datei beschreibt. Wenn Sie Vim verwenden, ist das pdftk-Plugin eine gute Möglichkeit, das Dokument in einer etwas weniger rohen Form zu untersuchen, und das pdftk- Dienstprogramm selbst (und seine GPL-Quelle) ist eine großartige Möglichkeit, Dokumente auseinanderzuhalten.
quelle
Ich versuche so ziemlich das Gleiche zu tun. Die PDF-Referenz ist sehr schwer zu lesen. Dieses Tutorial ist meiner Meinung nach ein besserer Anfang.
quelle
Dies kann helfen, ein wenig Licht ins Dunkel zu bringen: (ab Seite 11 von PDF32000.book)
Das Navigieren in einer PDF-Datei erfordert anscheinend etwas mehr als nur einen kurzen Aufwand.
quelle
Wenn Sie PDF mit Python analysieren möchten, schauen Sie sich bitte PDFMINER an . Dies ist die beste Bibliothek, um PDF-Dateien bis zum heutigen Datum zu analysieren.
quelle
pdf2txt -t html -d -Y exact -o foo.html foo.pdf
. Es ist ein ziemlich gutes Werkzeug, um einen Blick auf die Struktur einer PDF-Seite zu werfen. Ich arbeite auch an einigen Verbesserungen für unser eigenes Projekt.Didier hat ein Tool zum Parsen des PDF:
http://didierstevens.com/files/software/pdf-parser_V0_4_3.zip
oder hier:
http://blog.didierstevens.com/programs/pdf-tools/, in dem mehrere verwandte PDF-Analysetools katalogisiert wurden.
Ein weiteres Tool ist hier:
http://mshahzadlatif.wordpress.com/2011/09/28/view-pdf-structure-using-adobe-acrobat-or-a-free-tool-called-pdfxplorer/
quelle
Das Extrahieren von Text aus PDF ist ein schwieriges Problem, da PDF eine solche layoutorientierte Struktur aufweist. Sie können die Dokumente und den Quellcode meines kaum erfolgreichen CPAN-Versuchs sehen (meine Implementierung ist in Perl). Die PDF-Datenstruktur ist sehr cool und gut gestaltet, aber es ist einfacher zu schreiben als zu lesen.
quelle
Eine Möglichkeit, Hinweise zu erhalten, besteht darin, eine PDF-Datei zu erstellen, die aus einer leeren Seite besteht. Ich habe CutePDF Writer auf meinem Computer und habe ein leeres Wordpad-Dokument von einer Seite erstellt. Wird in eine PDF-Datei gedruckt und anschließend mit dem Editor geöffnet.
Verwenden Sie als Nächstes eine Kopie dieser Datei, entfernen Sie möglicherweise interessante Zeilen oder Textblöcke und laden Sie sie anschließend in Acrobat Reader neu. Sie werden überrascht sein, wie wenig Informationen benötigt werden, um ein funktionierendes einseitiges PDF-Dokument zu erstellen.
Ich versuche, eine Tabelle zu erstellen, um ein PDF-Formular aus Code zu erstellen.
quelle
Sie benötigen das PDF-Referenzhandbuch, um Informationen zu Details und Struktur von PDF-Dateien zu erhalten. Ich schlage vor, mit Version 1.7 zu beginnen.
Unter Windows habe ich ein kostenloses Tool PDF Analyzer verwendet , um die interne Struktur von PDF-Dateien anzuzeigen. Dies hilft Ihnen beim Verständnis des Referenzhandbuchs.
(Ich bin mit PDF Analyzer verbunden, keine Absicht zu fördern)
quelle
Um Text aus einer PDF-Datei zu extrahieren, versuchen Sie dies unter Linux, BSD usw. oder verwenden Sie Cygwin unter Windows:
Eine Nur-Text-Datei mit dem Namen
some_pdf_file.txt
wird erstellt. Je einfacher das Layout der PDF-Datei ist, desto einfacher ist die Ausgabe der TXT-Datei.Hexadezimalzeichen sind häufig in der TXT-Dateiausgabe vorhanden und sehen in Texteditoren seltsam aus. Diese hexadezimalen Zeichen stehen normalerweise für geschweifte einfache und doppelte Anführungszeichen, Aufzählungszeichen, Bindestriche usw. im PDF.
Führen Sie diesen grep-Befehl aus, um den Kontext anzuzeigen, in dem die hexadezimalen Zeichen angezeigt werden, und halten Sie die Original-PDF-Datei bereit, um festzustellen, welche Zeichen die Codes in der PDF-Datei darstellen:
Dadurch wird eine eindeutige Liste der verschiedenen Oktalcodes im Dokument bereitgestellt:
Um diese hexadezimalen Zeichen in ASCII-Entsprechungen umzuwandeln, kann eine Kombination aus grep, sed und bc verwendet werden. Ich werde die Prozedur veröffentlichen, um dies bald zu tun.
quelle