Serie Postscript/PDF-Tools
| Teil 1 | Anzeigen und Konvertieren | http://www.linux-community.de/artikel/19014 |
| Teil 2 | Zerlegen und Zusammensetzen | http://www.linux-community.de/artikel/17410 |
| Teil 3 | Mehrfachdruck und Poster | http://www.linux-community.de/artikel/19376 |
| Teil 4 | Flyer, Booklets und Bücher | http://www.linux-community.de/artikel/19481 |
| Teil 5 | PDF-Werkzeuge | http://www.linux-community.de/artikel/19635 |
Die Überprüfung eines Files auf dessen Korrektheit gehört zu den ersten Aufgaben einer Druckerei oder eines Archivierungssystems. Nichts ist schlimmer als der Fall, dass das übergebene File Fehler aufweist oder benötigte Informationen nicht vorliegen. Lediglich den Dateinamen zu kontrollieren, reicht hier nicht aus, da dieser keinen eindeutigen Rückschluss auf den tatsächlichen Inhalt der Datei gestattet.
Informationen sammeln
Eine grundlegende Prüfung auf das vorliegende Datenformat bietet das file-Kommando. Es vergleicht die ersten Bytes – die sogenannten Magic Numbers – mit Einträgen in einer Datenbank, die im File /usr/share/file/magic lagert. Findet file eine Übereinstimmung, gibt es den dazu hinterlegten Dateityp zurück [1]. Abbildung 1 zeigt, dass sich hinter dem File irgendwas.ps mit hoher Wahrscheinlichkeit ein OpenOffice-Dokument verbirgt, die zweite Datei Postscript Level 2 beinhaltet und es sich beim dritten File ein PDF-Dokument handelt, das der PDF-Version 1.6 entspricht. Die Versionsangaben sind hier wichtig, da viele Postscript-Tools nur Level 1 und 2 unterstützen. Für PDF gilt hier die Version 1.5 als magische Grenze. Nachfolgende Erweiterungen lassen sich unter Linux bisher nur unvollständig nutzen.
Wer detailliertere Informationen braucht, benötigt ein Tool, das den Datei-Inhalt genauer analysiert. Bereits ein kurzer Blick in die Linux-Werkzeugkiste fördert pdfinfo aus dem Xpdf-Paket [2] zu Tage. Damit entlocken Sie einem PDF eine ganze Menge Interna, wie die Abbildungen 2 und 3 demonstrieren. In der Datei hinterlegt finden sich nicht nur Autor und Titel ("Author", "Title<"), sondern unter anderem auch die genutzten Schlüsselworte ("Keywords"), das Erzeugungs- und Modifikationsdatum ("CreationDate", "ModDate"), die Seitenanzahl ("Pages"), die PDF-Version ("PDF version") und die verwendeten Werkzeuge ("Creator", "Producer").
Die in Abbildung 3 untersuchte Datei lässt sich nur eingeschränkt nutzen, da vom Autor das Feld "Encrypted" entsprechend gesetzt wurde. Zwar darf man das File uneingeschränkt drucken und kopieren ("print:yes copy:yes"), aber nicht verändern ("change:no"). Weiterhin gestattet der Autor keine Notizen im Dokument ("addNotes:no").
Details in der Präambel
Für Postscript hilft ein Blick in die Postscript-Spezifikation [3] oder das Postscript-Referenzhandbuch von Adobe [4]. Beiden lässt sich entnehmen, dass sich am Anfang eines jeden Postscript-Files eine Präambel befindet, die die gesuchten Informationen enthält. In Abbildung 4 umfassen die Zeilen 1 bis 7 die Präambel, bei den Zeilen 8 bis 11 handelt es sich um Kommentare. Zeile 1 nennt das genutzte Postscript-Level (Level 2), Zeile 2 das Programm, mir dem das Postscript-File erzeugt wurde ("Creator"). In diesem Fall ist es dvips, ein Werkzeug zum Umwandeln geräteunabhängiger Files (DVI: "device independent") nach Postscript.
In Zeile 3 findet sich der Titel des Dokuments ("Title"), in Zeile 4 die Seitenanzahl ("Pages") und in Zeile 5 die Seitenabfolge ("PageOrder") – im vorliegenden Fall aufsteigend ("ascend"). Die "Bounding Box" in Zeile 6 spezifiziert die Seitengröße in pt, hier DIN A4. Die vier Zahlenwerte entsprechen den x- und y-Werten der linken unteren Ecke und der rechten oberen Ecke eines Rechtecks in einem zweidimensionalen Koordinatensystem. Zeile 7 beendet die Präambel mit dem Schlüsselwort "EndComments".
In den nachfolgenden Kommentaren verweist Zeile 8 auf die Webseite von dvips ("DVIPSWebPage"), Zeile 9 zeigt den vollständigen Kommandozeilenaufruf von dvips, mit dem das Postscript-File erzeugt wurde ("DVIPSCommandLine"). Zeile 10 verrät uns, dass das Postscript-File mit einer Auflösung von 600dpi erzeugt und dabei zusätzlich komprimiert wurde ("DVIPSParameters"). Zeile 11 verweist auf die Daten, die dvips ursprünglich verwendete ("DVIPSSource"). Im vorliegenden Fall handelte es sich um LaTeX-Quellen, die Übersetzung nach DVI fand am 6. März 2004 um 11:21 Uhr statt.
Diese Informationen gestatten Rückschlüsse auf den Ersteller und den Erstellungszeitraum der Datei sowie die dabei eingesetzten Werkzeuge und Optionen. Relevant ist das insbesondere bei wissenschaftlichen Arbeiten, speziell im Zusammenhang mit der Diskussion um Plagiate und die Herkunft von Dokumenten.



