Das Portable Document Format (englisch; kurz PDF; deutsch: (trans)portables Dokumentenformat) ist ein plattformunabhängiges Dateiformat, das 1992 vom Unternehmen Adobe Inc. entwickelt und veröffentlicht wurde und aktuell von der PDF-Association weiterentwickelt wird. Anfang 2007 hatte Adobe es in den Standardisierungsprozess der ISO eingebracht und mit der Veröffentlichung am 1. Juli 2008 ist PDF in Version 1.7 als ISO 32000-1:2008 ein offener Standard. Das Ziel von PDF ist es, ein Dateiformat für elektronische Schriftstücke zu schaffen, sodass diese unabhängig vom ursprünglichen Anwendungsprogramm, vom Betriebssystem oder von der Hardwareplattform originalgetreu wiedergegeben werden können.
Da wir alle mit PDF-Dokumenten umgehen müssen, möchte ich in diesem Artikel die wichtigsten Anwendungen und Funktionen zur Bearbeitung dieses Formats zusammenfassen. Dabei ist die Menge der möglichen Anwendungsfälle sehr gross. Sie reichen vom Arrangieren von verschiedenen Dokument, über die Anordnung und Ausrichtung einzelner Seiten, bis zum Komprimieren und Konvertieren von und in andere Formate.
Arrangieren
Wenn es um die Anordnung und das Zusammenführen von PDF-Dokumenten geht, ist PDF-Arranger der beste Tipp. Die Beschreibung des Funktionsumfangs dieses Werkzeugs würde diesen Artikel sprengen, weshalb ich auf diesen Beitrag bei GNU/Linux.ch verweisen möchte.
Verkleinern
PDF-Dateien sind oft unnötig gross. Möchte man sie versenden oder ablegen, kann es sinnvoll sein, vorher die Dateigrösse zu reduzieren. Für diesen Zweck empfehle ich das Werkzeug ps2pdf. Die Terminal-Anwendung verwendet Ghostscript als Werkzeugkasten, ist jedoch wesentlich einfacher anwendbar. Hier sind zwei Beispiele:
ps2pdf input.pdf output.pdf
gs
-q -dNOPAUSE -dBATCH -dSAFER \
-sDEVICE=pdfwrite \
-dCompatibilityLevel=1.3 \
-dPDFSETTINGS=/screen \
-dEmbedAllFonts=true -dSubsetFonts=true \
-dColorImageDownsampleType=/Bicubic \
-dColorImageResolution=144 \ `#PDF downsample color image resolution`
-dGrayImageDownsampleType=/Bicubic \
-dGrayImageResolution=144 \ `#PDF downsample gray image resolution`
-dMonoImageDownsampleType=/Bicubic \
-dMonoImageResolution=144 \ `#PDF downsample mono image resolution`
-sOutputFile=out.pdf \ `#Output file`
file.pdf `#Input file`
Wie man sieht, benötigt ps2pdf lediglich das Input.pdf und verkleinert es in das Output.pdf, während der Ghostscript-Befehl eine Vielzahl an Parametern einsetzt. Dafür hat man dabei eine grössere Kontrolle über das Ergebnis der Komprimierung. Bei meinem Test konnte ps2pdf das Ursprungs-PDF um etwa ein Drittel verkleinern.
Alternativ stehen auch Webseiten zur Verfügung, die die Komprimierung durchführen, zum Beispiel:
Zusammenfügen
Das Zusammenfügen von mehreren PDF-Dateien lässt sich mit dem oben erwähnten PDF-Arranger erledigen. Manchmal ist es jedoch schneller, diese Aufgabe im Terminal durchzuführen. Dafür empfehle ich das PDF-Toolkit (pdftk). Damit ist das Zusammenfügen schnell erledigt:
pdftk a.pdf b.pdf c.pdf cat output abc.pdf
oder
pdftk *.pdf cat output zusammen.pdf
JPGs zu einem PDF zusammenfügen
Bei diesem Anwendungsfall ist eine Format-Konvertierung nötig. Diese wird vom Werkzeug ImageMagick erledigt, welches auf keinem Computer fehlen darf, weil es zur Grundausstattung für die Bild-Konvertierung gehört. Möchte man mehrere Bilder (jpg, png, usw.) in einem PDF zusammenfassen, geht das so:
convert `ls -v *.jpg` output.pdf
oder für eine einzelne Datei:
convert input.jpg output.pdf
Mit Parametern kann man die Qualität des Ergebnisses beeinflussen:
convert -density 150 input.pdf -quality 90 output.png
Weiterführende Angaben findet man auf der ImageMagick Seite.
Splitten
Wer eine PDF-Datei in seine einzelnen Seiten zerlegen möchte, macht das so:
pdftk input.pdf burst
Anschliessend erhält man einzeln nummerierte PDF-Dateien, entsprechend dem Ausgangsdokument.
Annotieren
Möchte man PDF-Dateien mit eigenen Notizen ergänzen, empfehle ich die Anwendung Xournal++. Diese legt eine durchsichtige Folie über die PDF-Datei, auf der man seine Anmerkungen machen kann. Auch dafür verweise ich auf einen Artikel bei GNU/Linux.ch. Aber auch die PDF-Viewer Evince und Ocular bieten eingeschränkte Möglichkeiten zur Annotation.
HTML in PDF umwandeln
Um eine Webseite als PDF-Datei zu speichern, empfiehlt sich die Druckfunktion des Webbrowsers einzusetzen. Man wählt beim Drucken einfach PDF als Ziel-Format. Alternativ kann man das Werkzeug wkhtmltopdf verwenden. Die Verwendung ist sehr einfach:
wkhtmltopdf URL
zum Beispiel:
wkhtmltopdf https://gnulinux.ch
PDF in Text umwandeln
Um aus einer PDF-Datei einen reinen Text (ASCII) zu erzeugen, bedient man sich des Werkzeugs pdftotext. Auch hierbei ist die Anwendung denkbar einfach:
pdftotext input.pdf output.txt
Inhalte von PDF-Dateien bearbeiten
Möchte man den Inhalt eines PDF-Dokuments nachträglich verändern, hat den Sinn des PDF-Formats nicht verstanden. Einer PDF-Datei liegt immer eine bearbeitbare Datei zugrunde, zum Beispiel ein ODT-Dokument (LibreOffice-Writer). PDF wurde nicht für das Bearbeiten geschaffen, sondern zum Anschauen und Ausdrucken. Deshalb ist der Wunsch nach PDF-Bearbeitung eigentlich nicht der Spezifikation entsprechend. Im beruflichen Alltag werde ich dennoch oft mit dieser Anforderung konfrontiert und reagiere wie oben aufgeführt.
Man kann eine PDF-Datei mit LibreOffice-Draw öffnen und erhält dann einzeln bearbeitbare Textfelder bzw. Objekte.
PDF-Formulare
Sowohl das Erstellen, als auch das Ausfüllen von PDF-Formularen, sind unter GNU/Linux ein trauriges Thema. Mit LibreOffice-Writer kann man PDF-Formulare erstellen, wie in diesem Heise-Artikel beschrieben wird. Beim Ausfüllen von Formularen versagen alle freien PDF-Reader. Der Webbrowser Firefox unterstützt diese Funktion bedingt. Die beste Lösung bietet die proprietäre Anwendung Foxit, die in den Repos zur Verfügung steht.
Fazit
Die Möglichkeiten, PDF-Dateien unter Linux zu bearbeiten, sind vielfältig und ausreichend. Lediglich bei der Bearbeitung von PDF-Inhalten und den Formularen gibt es Defizite.
Falls Du als Leser dieses Artikels bessere Erfahrungen gemacht hast, und gute Tipps für die Community hast, freue ich mich sehr über Deinen Kommentar oder einen eigenen Artikel zu einem PDF-Thema.
Quellen:
- https://de.wikipedia.org/wiki/Portable_Document_Format
- https://web.mit.edu/ghostscript/www/Ps2pdf.htm
- https://github.com/pdfarranger/pdfarranger
- https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
- https://www.heise.de/tipps-tricks/Ausfuellbare-PDF-erstellen-so-geht-s-6148750.html
- https://www.foxit.com/
Nein, ein PDF kann zum Beispiel auch aus statischen Bildern erzeugt werden. (Dass das natürlich völlig banane wäre... nun ja.)
Danke für den Hinweis. da m.M. jede Datei auf irgendeine Art und Weise bearbeitet werden kann, würde ich Ralfs Aussage trotzdem als korrekt sehen, auch wenn du natürlich recht hast, dass ein PDF aus beliebigen Dateien erstellt werden kann.
https://osi.3df.io/densify/
Bisher hatte ich noch keine richtigen Probleme mit dem Ausfüllen von PDF-Formularen. Dazu verwende ich evince oder qpdfview. Die eingefügte Schrift ist bei den beiden unterschiedlich und die Häkchen in Ankreuzfeldern sehen anders aus, sind aber eindeutig. Liegts an den Formularen? Grüße Helmut
Superguter Übersichtsartikel. Vielen Dank, Ralph.
Ok, nicht Open Source und noch nicht mal native Linux. Aber dafür wirklich sehr gut verwendbar um PDFs zu bearbeiten, kostenlos und als portable Version verfügbar: PDF-XChange Viewer im Zusammenspiel mit Wine. Das funktioniert bei mir seit vielen Jahren prima, auf Debian und Ubuntu.
Um PDF- und andere Dateien zu anonymisieren und Metadaten zu entfernen, kann man mat2 verwenden. https://0xacab.org/jvoisin/mat2
Aber Achtung: Wenn in dem Dokument anklickbare Links waren, funktionieren auch die hinterher nicht mehr.
Ich bin noch ein großer Fan von bashscript pdfscale
https://github.com/tavinus/pdfScale
(basiert auf gs und imagemagick)
Für QT Fans gibt es neben pdfarranger noch das PDF Mix Tool
https://gitlab.com/scarpetta/pdfmixtool
auch als Snap und Flatpak
PDF Forms: Okular, Version 21.12.3, installed as a Flatpak, is very good for filling forms.
Habe einige PDF Formulare von verschiedenen Behörden und Quellen bisher mit Okular nie Probleme gehabt. Einzig die Schriftgröße war in alten Versionen ab und an nicht ganz passend aber nie ein Problem.
Übrigens kann Okular besser mit PDFs umgehenden wie Acrobat reader oder der Krampf der in den Browsern integriert ist. Benutze ihn auch unter anderen (Fenster 😉) Betriebssystemen fast ausschließlich.
Vielen Dank für den Hinweis auf ps2pdf! Für die Eingabe in die Bash, in meinem Bsp. aus 14MB wurden 2MB. Bereich [ ] wird mit dem passenden Namen versehen: gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=[NeuerDateiName].pdf [Name der komprimierenden Datei.pdf]
wird anstelle ebook, prepress eingegeben, wurde die obgenannte PDF 9MB kleiner.