[[Vorlage(Getestet, focal, bionic)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(2)]] [[Bild(poppler_logo.png, 64, align=left)]] Die [http://poppler.freedesktop.org poppler-utils] {en} 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: * pdfdetach -- Listet oder entnimmt eingebettete Dateien (Anhänge) * pdffonts -- Analyse von Schriften * pdfimages -- Entnahme von Bildern * pdfinfo -- Dokumentinformationen * pdfseparate -- Werkzeug zur Entnahme von Seiten * pdfunite -- Zusammenführen von PDF-Dateien * pdfsig -- prüft digitale Signaturen * pdftocairo -- Umwandlung von PDF nach PNG/JPEG/PDF/PS/EPS/SVG mittels Cairo * pdftohtml -- Umwandlung von PDF nach HTML * pdftoppm -- Umwandlung von PDF nach PPM/PNG/JPEG * pdftops -- Umwandlung von PDF nach PostScript (PS) * pdftotext -- Entnahme von Text = Installation = Um die Hilfsprogramme nutzen zu können, muss das folgende Paket installiert werden [1]: {{{#!vorlage Paketinstallation 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. == pdfinfo == Wie der Name vermuten lässt, erhält man mit pdfinfo Informationen zum PDF-Dokumenten, wie z.B. [2] {{{#!vorlage Befehl 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 [wikipedia:Schriftart:Schriftarten] ("Fonts") innerhalb des PDF-Dokuments verwendet werden. Beispiel [2]: {{{#!vorlage Befehl 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. == pdftotext == Möchte man den kompletten Text aus dem PDF-Dokument extrahieren, so kann man dafür pdftotext nutzen. Der Befehlsaufruf lautet [2] {{{#!vorlage Befehl 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: ||<-2 rowclass="titel" tableclass="zebra_start3" :>Optionen von '''pdftotext'''|| ||'''Option'''||'''Beschreibung'''|| ||`-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`)|| == pdftoppm == Mit '''pdftoppm''' können die Seiten eines PDF-Dokuments in Bilddateien umgewandelt werden, standardmäßig sind dies [wikipedia:Portable_Pixmap:PPM-Dateien], welche von allen gängigen Grafikbetrachtern gelesen (und konvertiert) werden können. Der Befehlsaufruf lautet [2]: {{{#!vorlage Befehl 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: ||<-2 rowclass="titel" tableclass="zebra_start3" :>Optionen von '''pdftoppm'''|| ||'''Option'''||'''Beschreibung'''|| ||`-mono`||Ausgabe als monochrome [wikipedia:Portable_Bitmap:PBM-Datei]|| ||`-gray`||Ausgabe als [wikipedia:Portable_Graymap:PGM-Datei] (Grauskala)|| ||`-png`||Ausgabe 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. == pdftohtml == Durch '''pdftohtml''' können PDF-Dokumente in HTML-Seiten umwandelt werden. Der Aufruf lautet [2] {{{#!vorlage Befehl 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, [:FileManager-Actions/#Verwendung: importiert] man [http://media.ubuntuusers.de/wiki/attachments/48/01/config-2c3b7439-0a32-41d3-973c-b4019be2a4d5.schema diese Datei] {dl}. == pdfimages == Mit Hilfe von pdfimages lassen sich alle Bilder aus einem PDF-Dokument extrahieren. Die Bilder werden dabei als [wikipedia:Portable_Pixmap:PPM-Datei] gespeichert. Der Aufruf des Programms erfolgt über {{{#!vorlage Befehl 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 {{{#!vorlage Befehl 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. == pdfseparate == Um Seiten aus einem PDF-Dokument zu extrahieren, verwendet man '''pdfseparate'''. Der Befehlsaufruf lautet: {{{#!vorlage Befehl 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: ||<-2 cellstyle="background-color: #E2C890;" :>Optionen von '''pdfseparate'''|| ||'''Option'''||'''Beschreibung'''|| ||`-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 {{{#!vorlage 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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl pdftocairo -png -scale-to-x 300 -f 3 -l 8 dokument.pdf dokument }}} = Links = * [:PDF:] {Übersicht} Übersichtsartikel #tag: Grafik, Büro, PDF