it-swarm-eu.dev

Struktur von a PDF Datei?

Für ein kleines Projekt muss ich PDF-Dateien analysieren und einen bestimmten Teil davon übernehmen (eine einfache Zeichenkette). Ich möchte Python dazu verwenden und habe mehrere Bibliotheken gefunden, die in der Lage sind, das zu tun, was ich will.

Aber jetzt, nach ein paar Nachforschungen, frage ich mich, wie die eigentliche Struktur einer PDF-Datei ist. Weiß jemand, ob es irgendwo online eine Spezifikation oder Erklärungen gibt? Ich habe einen Link bei Adobe gefunden, aber es scheint, dass es sich um einen toten Link handelt :(

57

Hier ist ein Link zum Referenzmaterial von Adobe

http://www.Adobe.com/devnet/pdf/pdf_reference.html

Sie sollten jedoch wissen, dass es sich bei PDF nur um die Darstellung handelt, nicht um die Struktur. Das Parsen wird nicht einfach sein.

38
minty

Als ich anfing, mit PDF zu arbeiten, fand ich die PDF -Referenz sehr schwer zu navigieren ... __ Es hilft Ihnen vielleicht zu wissen, dass die Übersicht über die Dateistruktur in der Syntax und was für Adobe steht Aufruf der Dokumentstruktur ist die Objektstruktur und nicht die Dateistruktur. Das ist auch in Syntax zu finden. Die Beschreibung der Operatoren ist in Anhang A versteckt - sehr nützlich, um zu verstehen, was in Inhaltsströmen passiert. Wenn Sie schon einmal mit Farbräumen arbeiten müssen, werden Sie das in der Grafik versteckt finden! Hoffentlich helfen Ihnen diese Hinweise dabei, Dinge schneller als ich zu finden.

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 überprüfen, aber nicht speichern können.

22
danio

Ich fand die GNU Einführung in PDF hilfreich für das Verständnis der Struktur. Es enthält eine leicht lesbare example PDF Datei , die sie ausführlich beschreiben.

Andere hilfreiche Links:

20
Jeff Moser

Hier ist der Rohteil Verweis von PDF 1.7 , und hier ist ein Artikel , der die Struktur einer PDF -Datei beschreibt. Wenn Sie Vim verwenden, ist das Plugin pdftk eine gute Möglichkeit, das Dokument in einer immer weniger rohen Form zu untersuchen, und das Dienstprogramm pdftk selbst (und seine GPL-Quelle) ist eine hervorragende Möglichkeit Dokumente auseinanderhalten.

10
jmah

Ich versuche so ziemlich dasselbe zu tun. Die PDF - Referenz ist ein sehr schwer lesbares Dokument. Dieses Tutorial ist meiner Meinung nach ein besserer Start.

7
Noran

Dies kann helfen, etwas Licht zu erzeugen: (Ab Seite 11 von PDF32000.book)

Die PDF-Syntax wird am besten verstanden, wenn man sie als vier Teile betrachtet, wie in Abbildung 1 dargestellt:

• Objekte. Ein PDF -Dokument ist eine Datenstruktur, die aus einem kleinen Satz grundlegender Typen von Datenobjekten besteht . In Abschnitt 7.2, "Lexikalische Konventionen", wird der Zeichensatz beschrieben, mit dem Objekte und andere .__ geschrieben werden. syntaktische Elemente. In Abschnitt 7.3, "Objekte", werden die Syntax und die wesentlichen Eigenschaften der Objekte beschrieben. In Abschnitt 7.3.8, "Stream Objects", werden vollständige Details des komplexesten Datentyps, des Streams .__, bereitgestellt. Objekt.

• Dateistruktur. Die Dateistruktur PDF bestimmt, wie Objekte in einer PDF -Datei gespeichert werden und wie sie sind und wie sie aktualisiert werden. Diese Struktur ist unabhängig von der Semantik der Objekte. Sub - Klausel 7.5, "Dateistruktur", beschreibt die Dateistruktur. Unterklausel 7.6, "Verschlüsselung", beschreibt eine Dateiebene Mechanismus zum Schutz des Inhalts eines Dokuments vor unberechtigtem Zugriff.

• Dokumentenstruktur. Die PDF - Dokumentstruktur gibt an, wie die grundlegenden Objekttypen für .__ verwendet werden. repräsentieren Komponenten eines PDF - Dokuments: Seiten, Schriftarten, Anmerkungen usw. Unterabschnitt 7.7, "Dokumentstruktur" beschreibt die Gesamtstruktur des Dokuments. Spätere Klauseln behandeln das ausführliche Semantik der Komponenten.

• Inhaltsströme. Ein Content-Stream PDF enthält eine Folge von Anweisungen, die das Erscheinungsbild von .__ beschreiben. eine Seite oder eine andere grafische Entität. Diese Anweisungen werden, obwohl sie auch als Objekte dargestellt werden, konzeptionell unterscheidet sich von den Objekten, die die Dokumentstruktur darstellen und separat beschrieben werden. Unterklausel 7.8, "Content-Streams und -Ressourcen", behandelt PDF Content-Streams und die zugehörigen Ressourcen.

Das Navigieren in einer PDF -Datei erfordert etwas mehr als einen vorübergehenden Aufwand.

6
Josh Albert
3
Peter Teoh

Wenn Sie PDF mit Python analysieren möchten, schauen Sie sich bitte die Datei PDFMINER an. Dies ist die beste Bibliothek, um PDF -Dateien bis zum Datum zu analysieren.

3
codingscientist

Das Extrahieren von Text aus PDF ist ein schwieriges Problem, da PDF eine solche layoutorientierte Struktur aufweist. Sie können die Docs und den Quellcode meines kaum erfolgreichen CPAN-Versuchs sehen (meine Implementierung ist in Perl). Die PDF -Datenstruktur ist sehr cool und gut gestaltet, sie ist jedoch einfacher zu schreiben als zu lesen.

2
Chris Dolan

Einige Hinweise können Sie erhalten, indem Sie eine PDF -Datei erstellen, die aus einer leeren Seite besteht. Ich habe CutePDF Writer auf meinem Computer und habe ein leeres Wordpad-Dokument auf einer Seite erstellt. In eine PDF-Datei gedruckt und dann mit dem Editor die PDF-Datei geöffnet.

Verwenden Sie anschließend eine Kopie dieser Datei, um mögliche Zeilen oder Textblöcke zu entfernen, die möglicherweise von Interesse sind, und laden Sie sie anschließend in Acrobat Reader neu. Sie werden überrascht sein, wie wenig Informationen benötigt werden, um ein einseitiges Dokument zu erstellen PDF.

Ich versuche eine Kalkulationstabelle zu erstellen, um ein PDF Formular aus Code zu erstellen.

2
Daniel Kim

Sie benötigen das Referenzhandbuch PDF, um Informationen über die Details und den Aufbau von PDF -Dateien zu erhalten. Ich schlage vor, mit der Version 1.7 zu beginnen.

Unter Windows habe ich ein kostenloses Tool PDF Analyzer verwendet, um die interne Struktur der PDF -Dateien anzuzeigen . Dies hilft beim Verständnis des Referenzhandbuchs.

 enter image description here

0
juFo

Um Text aus einer PDF-Datei zu extrahieren, versuchen Sie dies auf einem Linux-, BSD- usw. Computer oder verwenden Sie Cygwin unter Windows:

pdfinfo -layout some_pdf_file.pdf

Eine einfache Textdatei mit dem Namen some_pdf_file.txt wird erstellt. Je einfacher das PDF -Dateilayout ist, desto einfacher ist die TXT-Dateiausgabe.

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. in der PDF-Datei.

Um den Kontext zu sehen, in dem die Hexadezimalzeichen angezeigt werden, führen Sie diesen Befehl grep aus und halten Sie das ursprüngliche PDF bereit, um festzustellen, für welches Zeichen die Codes in der PDF-Datei stehen:

grep -a --color=always "\\\\[0-9][0-9][0-9]" some_pdf_file.txt

Dies liefert eine eindeutige Liste der verschiedenen Oktalcodes im Dokument:

grep -ao "\\\\[0-9][0-9][0-9]" some_pdf_file.txt|sort|uniq

Um diese hexadezimalen Zeichen in ASCII Äquivalente umzuwandeln, kann eine Kombination aus grep, sed und bc verwendet werden.

0
keithchristian