PDFs bearbeiten mit praktischen Tools

Aus LinuxUser 01/2024

PDFs bearbeiten mit praktischen Tools

© Liudmila Chernetska / 123RF.com

Frisch eingepackt

PDF-Betrachter gibt es für alle Betriebssysteme. Rarer ist Software, mit der sich das praktische, doch kompliziert strukturierte Dateiformat bearbeiten lässt.

Das PDF-Dateiformat definiert ein exaktes Seitenlayout und bettet Schriftarten ein, sodass die Anzeige auf unterschiedlichsten Systemen gleich ausfällt. Das können beispielsweise Microsoft-Word- oder LibreOffice-Dokumente schon bei geringfügig verschiedenen Softwareversionen nicht mehr garantieren.

Der PDF-Standard integriert außerdem Kompressionsverfahren. Eingebetteter Text lässt sich durchsuchen. Desktop-Suchmaschinen, inklusive der von KDE und Gnome, unterstützen das. Das Dateiformat trägt inzwischen ein ISO-Zertifikat. Man muss sich also keinerlei Sorgen machen, dass sich PDFs in absehbarer Zukunft nicht mehr öffnen lassen.

Fest eingebaut

Viele Linux-Programme unterstützen den Export als PDF, weil es sich dabei um einen Nachfolger des Standard-Datenformats Postscript für den Druck handelt. Aus diesem Grund lässt sich unter OpenSuse mit minimalem Aufwand ein Druckertreiber einrichten (Abbildung 1), der die Seiten als PDF-Datei ablegt, statt sie an den Drucker zu senden. Installieren Sie dazu das Paket cups-pdf, dann finden Sie in den Druckdialogen der Anwendungen bereits einen CUPS-PDF-Druckertreiber vor.

Abbildung 1: Ein PDF-Pseudo-Druckertreiber, der Druckdaten als Datei ausgibt, ist unter OpenSuse nach der Installation von <span class="ui-element">cups-pdf</span> verf&uuml;gbar.

Abbildung 1: Ein PDF-Pseudo-Druckertreiber, der Druckdaten als Datei ausgibt, ist unter OpenSuse nach der Installation von cups-pdf verfügbar.

Speichern Sie eingescannte Daten als PDF, dann bestehen die Seiten darin aus ganzseitigen Bilddateien. Benutzen Sie dafür jedoch das Dokumentenarchivierungsprogramm Paperwork [1], dann startet automatisch eine sogenannte optische Zeichenerkennung (OCR), die zusätzlich durchsuchbaren Text in das Dokument einbettet (Abbildung 2).

Abbildung 2: Paperwork, ein einfach zu bedienendes Archivierungsprogramm f&uuml;r Scans, kommt mit gro&szlig;en Dokumentenmengen zurecht.

Abbildung 2: Paperwork, ein einfach zu bedienendes Archivierungsprogramm für Scans, kommt mit großen Dokumentenmengen zurecht.

Paperwork gibt es zwar nicht als natives OpenSuse-Paket, wohl aber als distributionsübergreifendes Flatpak [2]. Sie installieren es entweder über den KDE-App-Store (Abbildung 3), mit dem Gnome-Programm Software oder auf der Kommandozeile (Listing 1, erste Zeile). Damit das Programm Zugriff auf den Scanner bekommt, fügen Sie als Root der Datei /etc/sane.d/saned.conf die Zeile 127.0.0.1 hinzu (zweite Zeile). Zu guter Letzt aktivieren Sie noch den Sane-Systemdienst (letzte Zeile). Jetzt sollte Ihr Scanner in den Paperwork-Einstellungen (Hamburger-Menü rechts von der Dokumentenliste) unter Scanner | Gerät auftauchen.

Abbildung 3: Flatpak-Pakete wie Paperwork lassen sich im KDE-Store Discover und &uuml;ber Gnome Software direkt installieren.

Abbildung 3: Flatpak-Pakete wie Paperwork lassen sich im KDE-Store Discover und über Gnome Software direkt installieren.

Listing 1

Paperwork einrichten

$ sudo flatpak install flathub work.openpaper.Paperwork
$ sudo sh -c "echo 127.0.0.1 >> /etc/sane.d/saned.conf"
$ sudo systemctl enable saned.socket --now

Um ein Dokument per Schlagwortsuche zu finden, muss man sich an den darin enthaltenen Text erinnern. Deshalb bringt Paperwork zusätzlich eine Tagging-Funktion mit, die Dokumente bestimmten Themengebieten zuordnet (Abbildung 2, linkes Teilfenster). Diese Auszeichnungen tauchen in der Dokumentenliste am rechten Fensterrand als farbige Etiketten auf. Ein Klick auf das Hamburger-Icon des aktiven Dokuments öffnet die Label-Verwaltung, in der Sie Dokumenten Tags zuweisen, neue erstellen oder die Farben der bestehenden Labels verändern.

Scan & forget

Tatsächlich setzt Paperwork seinen Anspruch, alle Vorgänge möglichst zu automatisieren, beim Tagging fort: Neue Dokumente klassifiziert die Software mit dem von Spamfiltern bekannten Bayes-Verfahren automatisch. Die maschinelle Zuordnung lässt sich nachträglich in der Label-Verwaltung verändern.

Die Schnellsuchfunktion, für die Sie ein Schlagwort in das Suchfeld über der Dokumentenliste eingeben, unterscheidet nicht zwischen Tags und Schlagwörtern im Text des Dokuments. Gegebenenfalls wählen Sie über das Stift-Icon rechts vom Suchfeld gezielt eine Kombination aus Suchbegriffen (also Schlagwörtern im Text), Labels und einem Datumsbereich aus.

Paperwork verwaltet die Dokumente intern nicht als PDFs. Stattdessen legt es jede Seite in Form einer PNG-Bilddatei in einem nach Datum und Uhrzeit benannten Ordner ab. Den erkannten Text speichert es im HOCR-Format [3], einer auch im Browser darstellbaren HTML-Datei, die Wörter einzeln auf der Seite platziert. Es wäre also relativ einfach, aus diesen Daten mit einem Skript PDFs zu erzeugen, sollte Paperwork irgendwann eingestellt werden.

Doch das ist nicht nötig, solange das Programm auf Ihrem System läuft: Das über das Drei-Punkte-Icon rechts unten in der Dokumentenliste ausklappbare Menü können Sie das Dokument Exportieren oder wahlweise Zur Auswahl hinzufügen. Haben Sie ein erstes Dokument auf diese Weise ausgewählt, erscheinen vor allen Einträgen der Dokumentenliste Kontrollkästchen, um auch sie auszuwählen. Der nun blau hervorgehobene Bereich oberhalb der Liste Auswahl erlaubt über ein Ausklappmenü den Export, das Löschen sowie das Anpassen der Kategoriezuordnung für alle gewählten Dokumente.

Im sich öffnenden Export-Dialog (Abbildung 4) wählen Sie entweder sofort Generierte PDF(s) oder ein Bitmap-Dateiformat. Aktivieren Sie stattdessen zuerst einen Bearbeitungsschritt wie Graustufen, Schwarzweiß, Leichte Vereinfachung oder Starke Vereinfachung, dann erscheint ein weiteres Ausklappfeld, in dem Sie das Datenformat für den Export festlegen.

Abbildung 4: Paperwork kann beim Export die Farbtiefe herabsetzen und Fl&auml;chen ohne Schrift entfernen, um die Dateien kleinzuhalten.

Abbildung 4: Paperwork kann beim Export die Farbtiefe herabsetzen und Flächen ohne Schrift entfernen, um die Dateien kleinzuhalten.

Beim Datenexport traten im Test einige Programmabstürze auf, die sich aber durch Bewegen des Schiebers Qualität in eine beliebige Richtung umgehen ließen. Der per OCR erkannte Text bleibt beim PDF-Export als unsichtbare, über der Seite liegende Ebene erhalten. Das PDF ist also durchsuchbar, Desktop-Suchmaschinen nehmen es in ihren Index auf.

Spalten und Vereinen

Freie Programme zum Bearbeiten des komplexen Datenformats PDF sind eher dünn gesät. Das gilt selbst für so simple Aufgaben wie Seiten aus einem PDF zu löschen, neu anzuordnen oder mehrere Dateien zu kombinieren. Ein recht brauchbares Werkzeug zu diesem Zweck ist das grafische Programm PDF4QT, das wie Paperwork unter OpenSuse nur als Flatpak zur Verfügung steht. Wieder lässt es sich über die Gnome- und KDE-Stores installieren, sowie auf der Kommandozeile mit flatpak install flathub io.github.JakubMelka.Pdf4qt.

Tatsächlich enthält das Paket PDF4QT vier Programme. Dazu gehören der reine PDF-Betrachter Viewer Lite, der Viewer Profi mit Annotationsfunktionen und DocDiff, das PDFs vergleicht und Veränderungen hervorhebt. Das vierte Programm, für das sich die Installation von PDF4QT unserer Meinung nach vor allem lohnt, heißt DocPage Organizer (Abbildung 5). Mit ihm ordnen Sie die Seiten eines oder mehrerer PDF-Dokumente per Drag & Drop neu an. Außerdem können Sie damit einzelne Seiten entfernen oder drehen.

Abbildung 5: Der DocPage Organizer rearrangiert die Seiten eines PDFs. Das Gruppieren von ansonsten unver&auml;nderten Seiten erleichtert die &Uuml;bersicht.

Abbildung 5: Der DocPage Organizer rearrangiert die Seiten eines PDFs. Das Gruppieren von ansonsten unveränderten Seiten erleichtert die Übersicht.

Nach dem Öffnen eines oder mehrerer PDFs (File | Add Documents, [Strg]+[O]) zeigt der DocPage Organizer die Seiten jedes Dokuments zunächst gruppiert an. Sie sehen eine Vorschau der ersten Seite, ein grünes +X-Symbol signalisiert, dass sich die angegebene Anzahl weiterer Seiten hinter dem Thumbnail verbirgt. Edit | Ungroup oder [Strg]+[Umschalt]+[G] löst eine markierte Gruppe auf und macht die einzelnen Seiten sichtbar. Umgekehrt gruppiert Edit | Group oder [Strg]+[G] markierte Einzelseiten zur besseren Handhabbarkeit.

Die Reihenfolge von Seiten oder Seitengruppen verändern Sie bequem durch Ziehen mit der Maus. Über das Menü Insert fügen Sie bei Bedarf Bilddateien oder leere Seiten ein. Passt die Seitenreihenfolge und haben Sie unerwünschte Seiten mit [Entf]+ gelöscht, dann exportiert Make | United Document ([F5]+) das gesamte Projekt. Die Option Separate to multiple Documents ([F6]+) exportiert jede Seite als einzelnes PDF, während Separate to multiple Documents (Grouped) ([F7]) jede Gruppe als eigenständige Datei exportiert.

Randbemerkungen

Wenn Sie nicht nur die Seiten neu anordnen, sondern den PDFs Markierungen, Zeichenelemente oder Text hinzufügen möchten, greifen Sie dafür am besten zu Xournalpp (Abbildung 6). Ein möglicher Anwendungsfall wäre das Ausfüllen von eigentlich nicht als PDF-Formular vorbereiteten Dateien. Das Programm lässt sich sowohl unter Leap und Tumbleweed in einer hinreichend aktuellen Version per OpenSuse-Paketmanager installieren (Paket xournalpp).

Abbildung 6: Xournalpp, ein Programm zum Mitschreiben auf Touchscreens, setzt seine Text- und Zeichenwerkzeuge auf eine &uuml;ber ein PDF gelegte Ebene an.

Abbildung 6: Xournalpp, ein Programm zum Mitschreiben auf Touchscreens, setzt seine Text- und Zeichenwerkzeuge auf eine über ein PDF gelegte Ebene an.

Wenn Sie die im Paket als empfohlene Abhängigkeit angegebene LaTeX-Umgebung nicht installieren möchten, was die Installation auf über 2 GByte aufbläht, rufen Sie auf der Kommandozeile sudo zypper in --no-recommends xournalpp xournalpp-lang auf, statt den grafischen Paketmanager zu benutzen. Dann verarbeitet Xournalpp zwar keinen TeX-Code für mathematische Formeln, funktioniert ansonsten aber uneingeschränkt.

Offenbar macht es keinen Unterschied, ob Sie das zu annotierende PDF über den regulären Dialog Datei | Öffnen oder mit Datei | PDF beschriften öffnen. In beiden Fällen zeigt die Software die Seiten in der Thumbnail-Übersicht links an, die aktive Seite erscheint im Hauptfenster.

In der zweiten Zeile der oberen Schalterleiste liegen die Annotationswerkzeuge. Das erste von links, das Stift-Werkzeug, zeichnet mit gedrückter Maustaste eher zittrige Linien. Das lässt sich aber verbessern, indem Sie unter Bearbeiten | Einstellungen in der Rubrik Eingabesystem | Bildstabilisierung für die Mittelungsmethode die Option Arithmetischer Mittelwert auswählen.

Beim zweiten Werkzeug, dem Radierer, lohnt es sich, das mit dem Pfeil rechts vom Icon aufgerufene Ausklappmenü zu beachten: Wählen Sie hier die Option Linie löschen, dann erfasst der Radierer nicht mehr nur die direkt übermalte Fläche, sondern jedes in Xournalpp hinzugefügte Objekt, das er berührt.

Als dritter Schalter von links folgt das Textmarker-Werkzeug. Möchten Sie allerdings Text per Maus mit exakt geraden Linien unterstreichen, wählen Sie besser das rechts daneben liegende Textauswahlwerkzeug und im dann erscheinenden kleinen Dialog den Punkt Ausgewählten Text unterstreichen (Abbildung 7). Wie bei allen Werkzeugen lässt sich die Farbe mit den runden Farbfeldern am rechten Ende der Schalterleiste einstellen. Über das rechteckige Farbfeld ganz rechts bestimmen Sie beliebige benutzerdefinierte Farben.

Abbildung 7: Trotz Strichgl&auml;ttung in Xournalpp wirkt die manuell gezeichnete <span class="ui-element">Textmarker</span>-Hervorhebung nachl&auml;ssiger als mit den anderen M&ouml;glichkeiten zur Textauszeichnung.

Abbildung 7: Trotz Strichglättung in Xournalpp wirkt die manuell gezeichnete Textmarker-Hervorhebung nachlässiger als mit den anderen Möglichkeiten zur Textauszeichnung.

In der Schalterleiste folgen das Bild-Werkzeug, das Bitmaps auf der Seite platziert und skaliert, und das Text-Werkzeug zum Hinzufügen von Text. Art und Größe der Schrift legen Sie über das Ausklappmenü oberhalb der Farbfelder fest. Als Nächstes kommt das LaTeX-Formelwerkzeug, das nur bei installierter LaTeX-Umgebung funktioniert. Zu guter Letzt gibt es noch ein Rechteck-Symbol. Ist das Stift-Werkzeug ganz links aktiv, verändert dieser Modifikator das Freihandzeichenwerkzeug in eine Zeichenfunktion für Rechtecke, Ellipsen oder (Doppel-)Pfeile.

Um Annotationen zu verschieben oder zu löschen, wählen Sie sie mit dem zwei Schalter weiter rechts folgenden Rechteckauswahl-Werkzeug aus. Die beiden Werkzeuge davor – Drehung einrasten und Am Raster ausrichten – wirken beim Verschieben ausgewählter Objekte mit der Maus. Das Auswahlwerkzeug kennt einen per Ausklappmenü zugänglichen Freihandauswahlmodus und den Objekt-Auswahlmodus, der per Klick ein einzelnes Zeichenelement erfasst.

Xournalpp speichert das veränderte PDF während des Bearbeitens zunächst als programmspezifisches Xournalpp-Projekt. Erst nach Abschluss der Bearbeitung folgt der PDF-Export. Einen Überblick über alle verfügbaren Werkzeuge und die zugehörigen Tastenkürzel bietet das Menü Werkzeuge.

Tiefgreifende Veränderungen

Xournalpp legt lediglich eine neue Ebene über ein PDF. Möchten Sie bestehende Elemente verändern, verwenden Sie dazu am besten Inkscape (Abbildung 8). Unter Tumbleweed steht das Vektorgrafikprogramm in der Version 1.3 bereit. Sie unterstützt mehrseitige Dokumente und importiert problemlos selbst größere PDFs, wie eine 28-seitige Linux-User-Community-Ausgabe, wenn auch mit längerer Anlaufzeit.

Abbildung 8: &Uuml;ber dem sogenannten internen Import &ouml;ffnet Inkscape PDF-Dokumente als strukturierte Zeichnung aus einzeln bearbeitbaren Elementen, inklusive editierbarem Text.

Abbildung 8: Über dem sogenannten internen Import öffnet Inkscape PDF-Dokumente als strukturierte Zeichnung aus einzeln bearbeitbaren Elementen, inklusive editierbarem Text.

Besonders nützlich ist die vorausgewählte Import-Option Interner Import, die auch Text als bearbeitbare Objekte importiert. Eine unveränderte Optik erzielen Sie dabei nur, wenn die im PDF eingesetzte Schriftart auf dem System installiert ist.

In der bei Leap 15.5 mitgelieferten Inkscape-Version 1.0 funktionierte das allerdings mit einem umfangreichen Test-PDF nicht. Die erste Einschränkung bestand darin, dass Inkscape nur eine ausgewählte Seite des PDFs importierte. Vor allem stürzte das Programm beim Import reproduzierbar ab, und zwar sowohl bei Interner Import als auch beim Import mit Cairo, der generell schlechter bearbeitbare Dateien liefert. Unter Leap sollten Sie deshalb auf dem OpenSuse-Build-Service nach Inkscape suchen und die Version 1.3 des Build-Service-Benutzers plasmaregataos installieren [4].

Von Geisterhand

Eingebettete Bilder sind fast immer für den Löwenanteil der Dateigröße eines PDF-Dokuments verantwortlich. Zwar erlaubt das PDF-Format unterschiedliche Kompressionsverfahren für Bilder, doch nur in den seltensten Fällen gestattet der PDF-Export der Anwendungen hier eine Auswahl. Das gilt auch für den PDF-Druckertreiber von Cups. Das oft als Schweizer Taschenmesser der PDF-Bearbeitung apostrophierte Urgestein Ghostscript [5] schafft hier Abhilfe. Allerdings fällt der dafür nötige Programmaufruf äußerst sperrig aus. Für eine verlustbehaftete, aber stark platzsparende JPEG-Kompression müssen Sie sogar noch Postscript-Programmcode übergeben.

Dem entsprechenden Skript pdfshrink.sh aus Listing 2 übergeben Sie beim Aufruf den Dateinamen des zu verschlankenden PDFs sowie einen numerischen Wert zwischen 1 und 3 für die Kompressionsstärke. Dabei steht eine 1 für eine verlustfreie, weniger Platz einsparende Kompression. Mit der 2 fordern Sie eine stärkere JPEG-Kompression an, die die Optik jedoch nicht auffällig verschlechtert. Der Wert 3 sorgt für eine möglichst kleine Datei, die in der Regel trotz deutlicher Kompressionsartefakte noch lesbar bleibt.

Listing 2

pdfshrink.sh

#!/bin/bash
if [ -z "$1" ]; then
  echo "Usage: filename resolution [1-3]; 1=lossless, 2=jpeg high, 3=jpeg low"
  exit
fi
# FlateEncode wenn dritter Parameter=1
compression="DCTEncode"
if [ "$3" -eq 1 ]; then
  compression="FlateEncode"
fi
# Ghostscript-Aufrufparameter
params="-q -dNOPAUSE -dBATCH \
-sDEVICE=pdfwrite \
-dCompatibilityLevel=1.3 \
-dCompressPages=true \
-dEmbedAllFonts=true \
-dSubsetFonts=true \
-dPDFSETTINGS=/screen \
-dAutoFilterColorImages=false \
-dAutoFilterGrayImages=false \
-dAutoFilterMonoImages=false \
-dColorImageDownsampleType=/Bicubic \
-dColorImageResolution=$2 \
-dGrayImageDownsampleType=/Bicubic \
-dGrayImageResolution=$2 \
-dMonoImageDownsampleType=/Bicubic \
-dMonoImageResolution=$2 \
-dColorImageFilter=/$compression \
-dGrayImageFilter=/$compression \
-dMonoImageFilter=/CCITTFaxEncode \
-sOutputFile=${1%\.pdf}_comp.pdf  \
"
# Postscript für hohe JPEG-Qualität
if [ $3 -eq 2 ]; then
  ps='<< /ColorImageDict << /Blend 1 /VSamples [1 1 1 1] /QFactor 0.4 /HSamples [1 1 1 1] >> >>setdistillerparams'
fi
# Postscript für niedrige JPEG-Qualität
if [ $3 -eq 3 ]; then
  ps='<< /ColorImageDict << /Blend 1 /VSamples [2 1 1 2] /QFactor 1.2 /HSamples [2 1 1 2] >> >>setdistillerparams'
fi
gs $params -c "$ps" -f "$1"

Fazit

Wer Dokumente als PDF archiviert, der kann sich darauf verlassen, dass sich die Dateien unter allen Betriebssystemen öffnen lassen, und das auch noch in absehbarer Zukunft. Mit PDF4QT gelingt es leicht, PDFs zu verketten sowie Seiten zu löschen oder deren Reihenfolge zu verändern. Xournalpp annotiert PDFs komfortabel.

Mit Inkscape 1.3 steht eine hervorragende freie Anwendung zur PDF-Bearbeitung zur Verfügung. Möchten Sie die Dateigröße von PDFs durch Kompression minimieren, müssen Sie sich allerdings entweder mit dem sperrigen Ghostscript auseinandersetzen oder sogar mit der urtümlichen Druckerbefehlssprache Postscript. Alternativ verwenden Sie das hier als Listing vorgestellte Skript. (uba)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 01/2024 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben