poppler-utils

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Ein Terminal öffnen

Inhaltsverzeichnis
  1. Installation
  2. Benutzung
    1. pdfinfo
    2. pdffonts
    3. pdftotext
    4. pdftoppm
    5. pdftohtml
    6. pdfimages
    7. pdfunite
    8. pdfseparate
    9. pdftocairo
  3. Links

poppler_logo.png Die poppler-utils 🇬🇧 sind eine Sammlung von Kommandozeilen-Programmen, mit denen Informationen über PDF-Dokumente gewonnen, die Dokumente in andere Formate umgewandelt oder manipuliert werden können. Dazu wird libpoppler genutzt, welches unter Linux die Standardbibliothek zur Darstellung von PDF-Dokumenten ist, z.B. auch in Evince und Okular.

Dieses Paket enthält folgende (auf Poppler beruhende) Kommandozeilenprogramme:

mittels Cairo

Installation

Um die Hilfsprogramme nutzen zu können, muss das folgende Paket installiert werden [1]:

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install poppler-utils 

sudo aptitude install poppler-utils 

Benutzung

Die Nutzung der verschiedenen Programme aus poppler-utils ist immer relativ ähnlich. Man ruft das entsprechende Programm auf und übergibt als Parameter die zu lesenden PDF-Datei und den gewünschten Namen der Ausgabedatei. Natürlich kennen die einzelnen Programme auch diverse Optionen.

Leider gibt es keine Man-Page für die poppler-utils. Man kann aber jedes der Programme mit der Option -h aufrufen, um eine kurze Hilfe über die verschiedenen Optionen zu bekommen

Ist die PDF-Datei verschlüsselt, so funktionieren Operationen wie Text extrahieren in der Regel nicht. Ob ein PDF-Dokument verschlüsselt ist kann man mit Hilfe von pdfinfo feststellen, welches Teil der poppler-utils ist.

Wiki/Icons/users.png

pdfinfo

Wie der Name vermuten lässt, erhält man mit pdfinfo Informationen zum PDF-Dokumenten, wie z.B. [2]

pdfinfo dokument.pdf 
Creator:        cairo 1.8.6 (http://cairographics.org)
Producer:       John Doe
Tagged:         no
Pages:          3
Encrypted:      no
Page size:      612 x 792 pts (letter)
File size:      542783 bytes
Optimized:      no
PDF version:    1.4

Man sieht also, womit und von wem das PDF-Dokument erstellt wurde ("Creator" und "Producer"), wie viele Seite enthalten sind, ob das PDF verschlüsselt ist, welche Seitengröße es hat, wie groß die ganze Datei ist, ob es sich um ein optimiertes PDF handelt und welche PDF-Version das Dokument hat. Besonders die Information, ob das Dokument verschlüsselt ist, kann von Interesse sein, da man aus verschlüsselten PDFs in der Regel keine Texte/Bilder extrahieren kann. Die Angabe zur PDF-Version kann nützlich sein, da nicht alle PDF-Betrachter mit allen (= den neueren) PDF-Versionen umgehen können.

pdffonts

Mit Hilfe dieses Befehls kann festgestellt werden, welche Schriftarten ("Fonts") innerhalb des PDF-Dokuments verwendet werden. Beispiel [2]:

pdffonts dokument.pdf 

name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
Verdana                              CID TrueType      yes no  yes      5  0
TrebuchetMS                          CID TrueType      yes no  yes      6  0
VerdanaBold                          CID TrueType      yes no  yes      7  0
DejaVuSerif                          CID TrueType      yes no  yes      8  0

Die Spalte emb gibt an, ob die betreffende Schrift in das Dokument eingebettet ist.

Wiki/Icons/Tango/text-editor.png

pdftotext

Möchte man den kompletten Text aus dem PDF-Dokument extrahieren, so kann man dafür pdftotext nutzen. Der Befehlsaufruf lautet [2]

pdftotext dokument.pdf ausgabe.txt 

Hier wird der Text aus dokument.pdf in die Datei ausgabe.txt geschrieben. Wie gut das Ergebnis ist, hängt grundlegend davon ab, wie komplex das PDF-Dokument ist, also z.B. ob das Ausgangsdokument einfacher Fließtext ist, viele vom Text umflossene Bilder enthält oder sogar mehrspaltig ist. In der Regel muss das kreierte Textdokument immer nachbearbeitet werden, um z.B. überflüssige Leerzeichen und falsche Zeilenumbrüche zu entfernen.

pdftotext kennt u.a. die folgenden Optionen:

Optionen von pdftotext
OptionBeschreibung
-f Nr beginne auf Seite Nr
-l Nr stoppe auf Seite Nr
-htmlmeta erzeugt eine (einfache) HTML-Datei
-enc TYP verwendet das Encoding TYP für die Textdatei
-listenc zeigt alle mögliche Encodings (für -enc) an
-eol TYP das Zeilenende in der Ausgabedatei wird auf TYP gesetzt (mögliche Werte: unix, dos, mac)

Wiki/Icons/background.png

pdftoppm

Mit pdftoppm können die Seiten eines PDF-Dokuments in Bilddateien umgewandelt werden, standardmäßig sind dies PPM-Dateien, welche von allen gängigen Grafikbetrachtern gelesen (und konvertiert) werden können.

Der Befehlsaufruf lautet [2]:

pdftoppm dokument.pdf SEITE 

SEITE ist dabei das Präfix für die Namen der Ausgabedateien. Hat eine PDF-Dokument z.B. drei Seiten, so werden die Dateien seite-000.ppm, seite-001.ppm und seite-002.ppm erzeugt. pdftoppm kennt einige Optionen, u.a. auch für das Ausgabeformat:

Optionen von pdftoppm
OptionBeschreibung
-monoAusgabe als monochrome PBM-Datei
-grayAusgabe als PGM-Datei (Grauskala)
-pngAusgabe als PNG-Datei

Des Weiteren gibt es noch diverse Optionen, um die Ausgabegröße und Auflösung festzulegen, welche in der Hilfe nachgelesen werden können.

Wiki/Icons/globe.png

pdftohtml

Durch pdftohtml können PDF-Dokumente in HTML-Seiten umwandelt werden. Der Aufruf lautet [2]

pdftohtml dokument.pdf seite 

Dabei wird die Datei dokument.pdf in eine eine HTML-Datei Names seite.html umgewandelt. Genau genommen entstehen immer drei HTML-Dateien: Einmal die genannte Hauptdatei plus, in diesem Beispiel, die Seiten seite_ind.html und seites.html. Dies liegt daran, dass die HTML-Ausgabe (nicht mehr ganz zeitgemäß) Frames verwendet, um im linken Frame ein einfaches Inhaltsverzeichnis und im Hauptframe den Inhalt an sich darzustellen. Weiterhin wird der Text komplett über die die "klassischen" HMTL-Tags formiert anstatt CSS-Styles zu verwenden.

Über die Option -xml wird eine XML-Datei anstatt einer HTML-Datei generiert.

Um eine PDF-Datei aus dem Kontextmenü in Nautilus heraus in eine HTML-Datei umzuwandeln, importiert man diese Datei ⮷.

Wiki/Icons/improvements.png

pdfimages

Mit Hilfe von pdfimages lassen sich alle Bilder aus einem PDF-Dokument extrahieren. Die Bilder werden dabei als PPM-Datei gespeichert.

Der Aufruf des Programms erfolgt über

pdfimages dokument.pdf bild 

bild ist dabei das Präfix für die Ausgabedatei(en). Enthält ein PDF z.B. drei Bilder, so werden die Dateien bild-000.ppm, bild-001.ppm und bild-002.ppm generiert. Über die Option -j werden alle im PDF-Dokument enthalten JPEG-Bilder auch als JPEG gespeichert und nicht als PPM.

pdfunite

Mit Hilfe von pdfunite lassen sich mehrere PDF-Dokumente durch Aneinanderhängen zu einem einzigen vereinen.

Der Aufruf des Programms erfolgt über

pdfunite dokument1.pdf dokument2.pdf dokumentN.pdf Ausgabedokument.pdf 

Es kann mit zur Bestimmung der Ausgangsdokumente mit Platzhaltern (*.pdf) gearbeitet werden, wobei die gefundenen Dokumente alphabetisch (Dateiname) sortiert verarbeitet werden.

Wiki/Icons/Oxygen/edit-copy.png

pdfseparate

Um Seiten aus einem PDF-Dokument zu extrahieren, verwendet man pdfseparate. Der Befehlsaufruf lautet:

pdfseparate dokument.pdf AUSGABE 

In AUSGABE muss mindestens %d angegeben werden, welches bei den Ausgabedateien durch die jeweilige Seitenzahl ersetzt wird.

pdfseparate unterstützt folgende Optionen:

Optionen von pdfseparate
OptionBeschreibung
-f Nr beginne auf Seite Nr
-l Nr stoppe auf Seite Nr

Wenn keine Optionen angegeben werden, extrahiert pdfseparate alle Seiten des Eingabedokuments.

pdftocairo

Konvertiert seitenweise eine PDF-Datei in verschiedene Grafikformate (PNG, JPEG, TIFF, PDF, PS, EPS, SVG). Durch den Befehl pdftocairo --help werden alle Optionen sichtbar.

Der Befehl

pdftocairo dateiname.pdf -png dateiname 

generiert je eine Seite ein PNG-Bild.

Damit wird aus der ersten Seite ein Bild im PNG-Format erzeugt:

pdftocairo -png -singlefile  dokument.pdf dokument 

Weitere Parameter lassen umfangreiche Anpassungen zu. So können ausgewählte Seiten umgewandelt werden oder die Ausgabegröße beliebig angepasst werden.
Anhand der Optionen -f und -l kann eine Selektion durchgeführt werden: -f n - bestimmt die erste Seite für die Ausgabe, -l n - bestimmt die letzte Seite für die Ausgabe.

Damit erzeugt pdftocairo aus den Seiten 3 – 8 sechs PNG-Dateien mit einer Breite von 300 Pixel:

pdftocairo -png -scale-to-x 300 -f 3 -l 8 dokument.pdf dokument