Aus LinuxUser 07/2015

Unterschiede in PDF-Dokumenten finden

© MattTrommer, 123RF

Spurensuche

Fehlt das richtige Werkzeug, ist es recht mühselig, Unterschiede in PDF-Dokumenten aufzuspüren. Wir stellen fünf pfiffige Tools vor, die dabei helfen.

Als Datenformat zum Austausch über unterschiedliche Plattformen und Betriebssysteme hinweg ist das Portable Document Format (PDF) mittlerweile unverzichtbar. Das gilt insbesondere für Dokumente, die der Empfänger zwar lesen, aber nicht so ohne Weiteres verändern können soll.

Wir gehen in diesem Beitrag der Frage nach, wie man feststellt, ob zwei PDF-Dokumente identisch sind sowie, falls nicht, welche Unterschiede in Bezug auf den Inhalt und das Aussehen bestehen. Dazu sehen wir uns die fünf Programme Md5sum [1], Pdftotext [2], Pdfdiff [3], Comparepdf [4] und Diffpdf [5] genauer an, die sich allesamt in den Repositories der gängigen Distributionen finden.

Dateien vergleichen

Md5sum zählt zum Grundstock der Programme, die es auf jedem Linux-System gibt. In Debian GNU/Linux und Ubuntu finden Sie es im Paket coreutils [6]. Md5sum primärer Zweck besteht darin, 128 Bit lange Hash-Werte auf der Basis des MD5-Verfahrens zu erzeugen. Ein solcher Hash-Wert entspricht vereinfacht gesprochen dem digitalen Fingerabdruck einer Datenmenge.

Diese Idee machen Sie sich im vorliegenden Fall zunutze und erzeugen jeweils einen Hash-Wert für die beiden PDF-Dokumente. Vergleichen Sie danach beide Ergebnisse, sehen Sie auf einen Blick, ob die Dokumente identisch sind: Falls ja, stimmen die beiden Hash-Werte überein, so wie in Listing 1Debian-20150207.pdf und Debian-20150209.pdf.

Listing 1

$ md5sum Debian-20150207.pdf Debian-20150208.pdf Debian-20150209.pdf
6d997a79b970eb8526f0d1662f740b45  Debian-20150207.pdf
5f91ffc412d95e3436faceb2e772e0e1  Debian-20150208.pdf
6d997a79b970eb8526f0d1662f740b45  Debian-20150209.pdf

Allerdings lässt sich mit dieser Methode nicht erkennen, worin sich Dateien im Detail unterscheiden, also an welchen Stellen etwa in unserem Beispiel Debian-20150208.pdf von den beiden anderen Dokumenten abweicht. Beim Aufklären dieser Frage helfen im nächsten Schritt die beiden Werkzeuge Pdftotext und Kdiff3 weiter. Pdftotext findet sich in der Poppler-Bibliothek (Debian-Paket poppler-utils), während Kdiff3 [7] zur KDE-Suite gehört.

Mithilfe von Pdftotext extrahieren Sie aus einem PDF-Dokument dessen Inhalt – beziehungsweise streng genommen lediglich den Text, grafische Elemente bleiben dabei unberücksichtigt [8]. Den Namen der Ausgabedatei entlehnt Pdftotext vom ursprünglichen Dateinamen und ergänzt diesen durch die Buchstabenfolge .txt. Beide Extrakte vergleichen Sie anschließend mittels Kdiff3, das die inhaltlichen Unterschiede übersichtlich nebeneinander darstellt und sie zudem farblich hervorhebt. Listing 2 fasst das Vorgehen mit allen drei Aufrufen zusammen.

Listing 2

$ pdftotext file1.pdf
$ pdftotext file2.pdf
$ kdiff3 file1.txt file2.txt

Nachdem Sie Kdiff3 mit den beiden zu vergleichenden Textdateien als Parameter aufgerufen haben, sehen Sie die Inhalte, die nur in der ersten Datei vorkommen, in grüner Schrift, und die Inhalte, die lediglich in der zweiten Datei vorkommen, in blauer Schrift. Identische Textbestandteile erscheinen in schwarzer Schrift auf weißem Hintergrund (Abbildung 1). Als recht nützlich erweist sich zudem der rote Balken am rechten Fensterrand: Er identifiziert die Abschnitte, in denen sich Unterschiede finden; mit einem Klick darauf springen Sie an die entsprechende Textposition.

Abbildung 1: Ein Beispiel für den direkten Vergleich zweier Textdateien in Kdiff3.
Abbildung 1: Ein Beispiel für den direkten Vergleich zweier Textdateien in Kdiff3.

Erscheinen Ihnen die drei Aufrufe aus Listing 2 zu umständlich, bieten sich Pdfdiff und Comparepdf als mögliche Kandidaten der Wahl an – beide fassen diese Einzelschritte zusammen. Pdfdiff verwendet zum Gegenüberstellen der Unterschiede das erste Diff-Programm, das es auf Ihrem System entdeckt, je nach Distribution und Desktop etwa Kdiff3 oder auch Meld [9].

Diffpdf

Bei Diffpdf (Debian-Paket diffpdf) handelt es sich um die grafische Variante von Comparepdf, die aus der Feder desselben Entwicklerteams stammt. Das Tool setzt auf die Grafikbibliothek Qt sowie auf Poppler auf und verfügt auf den ersten Blick über eine überschaubare und recht durchdachte Bedienoberfläche (Abbildung 2).

Abbildung 2: Diffpdf, die grafische Variante von Comparepdf, bietet eine durchdachte Bedienoberfläche.
Abbildung 2: Diffpdf, die grafische Variante von Comparepdf, bietet eine durchdachte Bedienoberfläche.

Die linke und die mittlere Spalte nehmen die beiden Dokumente ein, die Sie gegenüberstellen. Diffpdf hinterlegt alle Textfragmente farblich, die sich im Dokument verändert haben beziehungsweise an eine andere Stelle auf der gleichen Seite geschoben wurden. Dabei vergleicht es Seite für Seite. Weiterhin sehen Sie am linken Rand des Dokuments einen farbigen Balken, der die Fundstelle zusätzlich markiert. Dessen Deckkraft, Dicke und Farbe stellen Sie über den Knopf Optionen in der rechten Spalte ganz nach Ihrem Geschmack ein.

Über der Seitenansicht befinden sich zwei Knöpfe zur Dateiauswahl. Über das Eingabefeld daneben legen Sie fest, welche Seiten Diffpdf in den Vergleich mit einbezieht (in Abbildung 2 sind es die Seiten von 1 bis 460). Weisen die beiden Dateien eine unterschiedliche Seitenzahl auf, verwendet Diffpdf üblicherweise zunächst den kleineren Wert als obere Grenze. Wie viele Seiten sich unterscheiden, sehen Sie anhand des Ausgabefelds in der rechten Spalte – in Abbildung 2 sind es 200 von 460 miteinander verglichene Seiten.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
KAUFEN
LinuxUser 07/2015 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: