Quelle1)
<html>
<h1>pdftk - Ein OpenSource-Programm zur Bearbeitung von PDF-Dateien</h1>
<p class=„intext“>
pdftk ist ein frei verfügbares Werkzeug zur Bearbeitung von
PDF-Dateien. Auf dieser Seite finden Sie die <a href="index.html#hilfe">deutsche
Übersetzung</a> des pdftk-Hilfetextes und viele praktische
<a href="index.html#toc">Anwendungsbeispiele</a>. Ich habe zu diesem Thema einen
<a href="http://www.linux-user.de/ausgabe/2005/08/068-pdftk/index.html">Artikel</a> für die Zeitschrift <a href="http://linux-user.de">Linux User</a> geschrieben.
</p> <p class=„intext“>
Die Seite wird in regelmäßigen Abständen aktualisiert. Wenn Sie Fragen oder Hinweise haben, senden Sie bitte eine E-Mail an <span class="mailadresse">stefan <at> lagotzki <dot> de</span>. </p>
<p class=„intext“>
Sid Steward, den Autor des Programms pdftk und des empfehlenswerten Buchs <a href="http://www.oreilly.com/catalog/pdfhks/index.html">PDF Hacks (O'Reilly-Verlag)</a>, erreichen Sie über die <a href="http://www.accesspdf.com/pdftk">pdftk-Webseite</a>.
</p>
<a name=„toc“></a> <h2>Inhaltsverzeichnis</h2>
<p> <a href=„index.html#attachment“>Anhänge an PDF-Dokumente</a>
</p>
<p> <a href=„index.html#background“>Hintergrundbild und Hintergrundfarbe</a> </p>
<p> <a href=„index.html#stamp“>Stempeln von PDF-Dateien</a> [Update Februar 2009] </p>
<p> <a href=„index.html#burst_cat“>Zerlegen und Zusammensetzen von PDF-Dateien</a>
[Update Juli 2006] </p>
<p> <a href=„index.html#metadata“>Abfragen und Aktualisieren der Meta-Informationen einer PDF-Datei</a> </p>
<p> <a href=„index.html#formulare“>Arbeit mit PDF-Formulardaten</a> </p>
<p> <a href=„index.html#FAQ“>FAQ</a> [Update Juli 2006]
</p>
<p> <a href=„index.html#hilfe“>Übersetzung des pdftk-Hilfetextes</a> </p>
<p> <a href=„index.html#binsrc“>Direkte Links zu Binärpaketen, Quelltexten und Beispielen</a> </p>
<p> <a href=„index.html#hinweise“>Hinweise zu dieser Seite</a> </p>
<a name=„attachment“></a> <h2>Anhänge an PDF-Dokumente</h2>
<p> Oft soll eine PDF-Datei gemeinsam mit ihrem Quelltext oder anderen Dateien weitergegeben werden. Der Absender kann diese Dateien mit pdftk in die vorhandene PDF-Datei einbinden und der Empfänger kann sie seinerseits mit pdftk (oder mit dem Adobe Reader ab Version 6) in ein Verzeichnis entpacken. Im folgenden Beispiel fügt der Absender den Quelltext und eine Graphik mit
</p>
pdftk beispiel.pdf attach_files tux01.eps beispiel.tex output beispiel_anhang.pdf
<p> an die PDF-Datei an. Beim Entpacken der Anhänge muss ein Verzeichnis angegeben werden, weil eine PDF-Datei mehrere Anhänge haben kann. Der Empfänger kann diese Anhänge mit folgendem Befehl in ein bestehendes Verzeichnis entpacken:
</p>
<span class="pdftk">pdftk</span> beispiel_anhang.pdf <span class="op">unpack_files</span> output source </div>
<p> Mit dem aktuellen Adobe Reader (Version 7) können Sie auch einzelne Dateien aus der PDF-Datei extrahieren. Die Datei <a href=„beispiel_anhang.pdf“>beispiel_anhang.pdf</a> enthält zu Testzwecken eine LaTeX-Datei und eine EPS-Datei.
</p> <p> Anhänge können auch zu Seiten zugeordnet werden. Allerdings muss man diese Operation für mehrere solche Zuordnungen wiederholen. Im folgenden Beispiel wird eine EPS-Datei zur Seite 1 des bearbeiteten PDF-Dokuments zugeordnet: </p>
pdftk beispiel.pdf attach_files tux01.eps to_page 1 output beispiel_anhang.pdf
<p> Auf der Seite 1 erscheint dann im Adobe Reader ein kleines Symbol. Wenn man auf dieses Symbol klickt, kann man den Anhang abspeichern. </p> <p> <img src=„pin.png“ alt=„Anhang-Symbol“ title=„Anhang-Symbol“ /> </p>
<a href=„index.html#toc“>Inhalt</a>
<a name=„background“></a><h2>Hintergrundbild und Hintergrundfarbe</h2>
<p> Mit pdftk können Sie ein PDF-Dokument mit einem Hintergrundbild (Wasserzeichen) oder einer Hintergrundfarbe
versehen. Dazu dient die Operation <span class="op">background</span>. Wenn Sie ein Hintergrundbild verwenden
möchten, sollte es bereits in der Papiergröße Ihres PDF-Dokuments vorliegen oder zumindest die
selben Proportionen besitzen. Das Hintergrundbild wird durch Skalieren an das PDF-Dokument angepasst.
</p> <p> Im folgenden Beispiel werden alle Seiten der PDF-Datei mit einem Hintergrundbild versehen: </p>
pdftk beispiel.pdf background tux01.pdf output beispiel_neu.pdf
<p> Die Hintergrundfarbe kann man zum Beispiel mit einer kleinen EPS-Datei und den entprechenden PostScript-Befehlen setzen. Die EPS-Datei wird in eine PDF-Datei umgewandelt und mit pdftk als Hintergrund eingefügt. Im folgenden Listing ist die EPS-Datei dargestellt: </p>
<pre> %!PS-Adobe-2.0 BoundingBox: 0 0 595 842 0.95 0.95 0.90 setrgbcolor 0 0 moveto 595 0 rlineto 0 842 rlineto -595 0 rlineto closepath fill showpage </pre></div> <div class="intext"> <p> Diese EPS-Datei kann mit GhostScript oder Adobe Acrobat in eine PDF-Datei umgewandelt werden. Im folgenden Beispiel wird die umgewandelte PDF-Datei als Hintergrund verwendet: </p> </div> <div class="example"> <span class="pdftk">pdftk</span> beispiel.pdf <span class="op">background</span> bgcol01.pdf output beispiel_farbig.pdf </div> <div class="intext"> <p> Die Dateien <a href="beispiel_farbig.pdf">beispiel_farbig.pdf</a> und <a href="beispiel_neu.pdf">beispiel_neu.pdf</a> können Sie aus den EPS- und PDF-Beispielen in den <a href="index.html#binsrc">Archiven</a> selbst herstellen. Die Farbe können Sie in der EPS-Datei anpassen. Sie wird in der üblichen PostScript-Notation im RGB- oder CMYK-Farbsystem angegeben. </p> <p> Die Hintergrundfarbe kann auch mit den PostScript-Befehlen setcmykcolor oder setgray gesetzt werden. Informationen zu den PostScript-Befehlen finden Sie in der Sprachreferenz.</p> </div> <div class="topofpage"> <a href="index.html#toc">Inhalt</a> </div> <a name="stamp"></a><h2>Stempeln von PDF-Dateien</h2> <div class="intext"> <p> Mit pdftk können Sie ein PDF-Dokument auch mit einem Stempel versehen (ab Version 1.41). Dazu dient die Operation <span class="op">stamp</span>. Eine PDF-Datei zum Stempeln sollte bereits in der Papiergröße Ihres PDF-Dokuments vorliegen oder zumindest die selben Proportionen besitzen. Die PDF-Datei wird wie eine Folie über die Seiten der vorliegenden PDF-Datei gelegt und durch Skalieren an die Größe angepasst. </p> <p> Im folgenden Beispiel werden alle Seiten der PDF-Datei mit einem Stempel versehen: </p> </div> <div class="example"> <span class="pdftk">pdftk</span> beispiel.pdf <span class="op">stamp</span> tux00.pdf <span class="out">output</span> beispiel_gestempelt.pdf </div> <div class="intext"> </div> <div class="topofpage"> <a href="index.html#toc">Inhalt</a> </div> <a name="burst_cat"></a> <h2>Zerlegen und Zusammensetzen von PDF-Dateien</h2> <div class="intext"> <p> Mit den beiden Operationen <span class="op">burst</span> und <span class="op">cat</span> kann pdftk PDF-Dateien zerlegen und zusammensetzen. Die folgenden beiden Anwendungsbeispiele zeigen das Zerlegen einer PDF-Datei in einzelne Seiten: </p> </div> <div class="intext"> <h3>Zerlegen von PDF-Dateien</h3> </div> <div class="example"> <span class="pdftk">pdftk</span> beispiel.pdf <span class="op">burst</span> <br /> <span class="pdftk">pdftk</span> beispiel.pdf <span class="op">burst</span> output ./seiten/seite%03d.pdf <br /> </div> <div class="intext"> <p> Im ersten Beispiel werden die Seiten in das aktuelle Verzeichnis "entpackt". Die Dateien heißen dann pg_0001.pdf bis pg_n.pdf (damit kann der Nutzer also keinen Namen für die PDF-Dateien angeben). Im zweiten Beispiel werden die Einzelseiten in das bereits existierende Verzeichnis <span class="output">seiten</span> geschrieben und mit dem Präfix <span class="output">seite</span> versehen. </p> </div> <div class="intext"> <h3>Ablegen der einzelnen Dateien im Ordner der Quelldatei</h3> <p>Sie können sich das Zerlegen einer PDF-Datei vereinfachen, indem Sie die Möglichkeiten Ihres Betriebssystems oder Ihrer Benutzeroberfläche besser ausnutzen. Unter Windows können Sie so vorgehen:</p> <ol> <li>Laden Sie sich das kleine ZIP-Archiv <a href="splitten.zip">splitten.zip</a> herunter und entpacken Sie es in ein temporäres Verzeichnis.</li> <li>Kopieren Sie die Datei <span class="op">splitten.cmd</span> in ein Verzeichnis, das im Windows-Suchpfad liegt.</li> <li>Kopieren Sie die Datei <span class="op">splitten.bat</span> auf Ihren Desktop. </li> <li>Ziehen Sie die PDF-Datei mit der Maus auf das Symbol der Batchdatei auf dem Desktop. Kurze Zeit später liegen die Einzelseiten im selben Ordner wie die Quelldatei.</li> <li>Sie können die Batchdatei auch zum Kontextmenü hinzufügen und dann nach einem Rechtsklick die Option "Öffnen mit ..." nutzen. </li> </ol> <p>Für KDE-Nutzer gibt es Aktionen, die Sie zu Ihrem Kontextmenü hinzufügen können. </p> </div> <div class="intext"> <h3>Zusammensetzen von PDF-Dateien</h3> </div> <div class="intext"> <p> Das folgende Beispiel zeigt, wie man mit pdftk eine neue PDF-Datei aus mehreren Einzeldateien (oder auch aus ausgewählten Seiten der Einzeldateien) zusammensetzt: </p> </div> <div class="example"> <span class="pdftk">pdftk</span> beispiel.pdf formular.pdf <span class="op">cat</span> output beispiel_gesamt.pdf <br /> <span class="pdftk">pdftk</span> D=deckblatt.pdf B=beispiel.pdf <span class="op">cat</span> D B2-10 output beispiel_deckblatt.pdf <br /> </div> <div class="intext"> Dateinamen können mit einem "handle" (im zweiten Beispiel "D" und "B") verbunden werden. Dadurch wird das Zusammenstellen eines neuen Dokuments aus mehreren Einzelteilen vereinfacht. Im zweiten Beispiel wird eine neue PDF-Datei aus einem Deckblatt und den Seiten 2 bis 20 des Originaldokuments erzeugt. Mit Hilfe der Handles kann man einzelne Seiten aus PDF-Dateien mischen: </div> <div class="example"> <span class="pdftk">pdftk</span> A=first.pdf B=second.pdf <span class="op">cat</span> B1-2 A1 B3-4 A2-4 B5-8 A5-8 output gemischt.pdf <br /> </div> <div class="intext"> <span class="update">Update:</span> Das Zusammensetzen von PDF-Dateien funktioniert nur dann, wenn in der PDF-Datei entweder die Berechtigung zum Zusammensetzen oder die Berechtigung zum Modifizieren gesetzt ist. Um diese Berechtigung zu setzen, benötigen Sie das owner-Passwort der PDF-Datei. Wenn die Berechtigungen nicht richtig gesetzt sind, gibt pdftk eine Fehlermeldung aus und setzt die neue PDF-Datei nicht zusammen. </div> <div class="topofpage"> <a href="index.html#toc">Inhalt</a> </div> <a name="metadata"></a> <h2>Abfragen und Aktualisieren der Meta-Informationen einer PDF-Datei</h2> <div class="intext"> <p> In den meisten PDF-Dateien sind Meta-Informationen (zum Beispiel über den Autor, das Thema der Datei oder die verwendete Software) gespeichert. Mit pdftk können Sie sich diese Angaben auf die Standardausgabe ausgeben oder in eine Datei speichern lassen: </p> </div> <div class="example"> <span class="pdftk">pdftk</span> beispiel.pdf <span class="op">dump_data</span> <br /> <span class="pdftk">pdftk</span> beispiel.pdf <span class="op">dump_data</span> output info.txt<br /> </div> <div class="intext"> <p> Die Datei info.txt enthält nun alle Metadaten des Dokuments. Sie ist aus Schlüsselfeldern und zugehörigen Werten aufgebaut: </p> </div> <div class="example"> InfoKey: Creator <br /> InfoValue: TeX <br /> InfoKey: Producer <br /> InfoValue: pdfTeX-1.10b <br /> InfoKey: CreationDate <br /> InfoValue: D:20041226182200 <br /> NumberOfPages: 4 </div> <div class="intext"> <p> Vor der Weitergabe oder während der Archivierung von PDF-Dokumenten ist es oft sinnvoll, diese Meta-Informationen zu aktualisieren. Mit pdftk ist das Aktualisieren dieser Daten auch ohne das erneute Erstellen oder Übersetzen des Dokuments möglich. Zum Aktualisieren der Meta-Informationen können Textdateien mit Metadaten verwendet werden, die aus einem solchen "dump" abgeleitet sind und etwa folgenden Aufbau haben: </p> </div> <div class="example"> InfoKey: Title <br /> InfoValue: Arbeit mit pdftk <br /> InfoKey: Subject <br /> InfoValue: Pdftk-Beispiele aus der Praxis <br /> InfoKey: Keywords <br /> InfoValue: pdftk, iText, OpenSource-Anwendungen <br /> InfoKey: Author <br /> InfoValue: Stefan Lagotzki <br /> InfoKey: Ort <br /> InfoValue: Dresden <br /> </div> <div class="intext"> <p> Sie müssen in diese Datei nicht alle Informationen aufnehmen, die man mit einer PDF-Datei speichern kann. Bereits belegte Felder bleiben beim Update unberührt, wenn sie in der Textdatei nicht enthalten sind. Sie können auch zusätzliche Schlüsselfelder (im Beispiel "Ort") definieren und mit Werten belegen. Das Aktualisieren der Meta-Informationen erfolgt mit: </p> </div> <div class="example"> <span class="pdftk">pdftk</span> beispiel.pdf <span class="op">update_info</span> info_neu.txt output beispiel_metadaten.pdf </div> <div class="intext"> <p> Ausgabedatei und Eingabedatei dürfen nicht den selben Namen tragen. Mit einem kleinen Shellscript oder einer Batchdatei kann man die Ausgabedatei entsprechend umbenennen. </p> </div> <div class="topofpage"> <a href="index.html#toc">Inhalt</a> </div> <a name="formulare"></a> <h2>Arbeit mit PDF-Formulardaten</h2> <div class="intext"> <p> PDF-Dateien können Formulare mit benannten Formularfeldern enthalten. Die PDF-Formulardaten werden oft mit proprietären Programmen der Firma Adobe in die PDF-Dateien eingefügt und gespeichert. Das dazu verwendete FDF-Format wurde aber durch Adobe offengelegt, so dass man sich auch eigene Anwendungen zum Erstellen von FDF-Dateien schreiben kann. Es folgen zwei pdftk-Anwendungsbeispiele: </p> </div> <div class="example"> <span class="pdftk">pdftk</span> beispiel_formular.pdf <span class="op">fill_form</span> daten.fdf output beispiel_editierbar.pdf <br /> <span class="pdftk">pdftk</span> beispiel_formular.pdf <span class="op">fill_form</span> daten.fdf output beispiel_verbunden.pdf flatten </div> <div class="intext"> <p> Im ersten Beispiel sind die Formulardaten noch editierbar. Man kann ein Formular auf diese Weise vorläufig ausfüllen und der Nutzer kann Korrekturen oder Ergänzungen vornehmen. Im zweiten Beispiel sind die Formulardaten nicht mehr editierbar, sondern fest mit der PDF-Datei verbunden. Wenn man pdftk auf diese Weise richtig nutzen will, benötigt man einen Webserver mit entsprechenden Skripten (zum Beispiel in Perl oder PHP). </p> <p> Die Dateien des Minimalbeispiels finden Sie in den <a href="index.html#binsrc">Archiven</a>. </p> </div> <div class="topofpage"> <a href="index.html#toc">Inhalt</a> </div> <a name="FAQ"></a> <h2>pdftk-FAQ</h2> <div class="intext"> <p> In dieser Rubrik werden Fragen behandelt, die mir per E-Mail zugegangen sind oder die mir aus den Suchbegriffen interessant erscheinen. Bitte haben Sie Verständnis, wenn momentan nicht alle Fragen sofort beantwortet werden können :-) </p> </div> <div class="intext"> <h3>Kann man mit pdftk PDF-Dateien 'cracken'?</h3> <p> Nein. pdftk gehört zu den Programmen, die die gesetzten Berechtigungen (Einschränkungen) in einer PDF-Datei respektieren. </p> </div> <div class="intext"> <h3>Warum weisen Sie nicht auf Cracksoftware hin?</h3> <p> Offen gesagt: ich habe noch nie den Bedarf gesehen, eine PDF-Datei zu lesen, für die ich das gesetzte User-Password nicht kenne. Es gibt inzwischen (seit Mai 2006) bei Sourceforge auch ein Projekt zum 'Cracken' von PDF-Dateien. In der Projektbeschreibung heißt es:</p> <blockquote> First release of pdfcrack - a command line Password Recovery tool for PDF-files. [...] The tool supports autosaving states for bruteforce when interrupted and <i>optimized attack of owner-passwords when user-password is known. </i> </blockquote> <p> Das ist aber völlig unnötig. Denn wenn man das User-Passwort kennt, kann man die Einschränkungen der PDF-Datei ohnehin ändern. </p> </div> <div class="intext"> <h3>Kann man mit pdftk PDF-Dateien 'verschlüsseln'?</h3> <p> Ja. Im Rahmen der Möglichkeiten, die das PDF-Format bietet. </p> </div> <div class="example"> <span class="pdftk">pdftk</span> beispiel.pdf <span class="op">output</span> foo.pdf <span class="op">owner_pw</span> 1PuYghuck <span class="op">user_pw</span> f1PxYghoh allow Printing </div> <p> </p> <div class="intext"> <h3>Kann man mit pdftk Seitenzahlen einfügen?</h3> <p> Einige Fragen bezogen sich auf die Möglichkeit, ein Hintergrundbild einzufügen. Gern wird daraus der Schluss gezogen, dass pdftk auch Seitenzahlen einfügen kann. Das ist leider nicht möglich. Man kann aber zwei andere Werkzeuge benutzen: pdfLaTeX und <a href="http://thierry.schmit.free.fr/dev/mbtPdfAsm/enMbtPdfAsm2.html">mbtpdfasm</a>. </p> <p> Hier wird eine Lösung mit pdfLaTeX gezeigt. Der Fragesteller wollte die Seitenzahl zentriert und 10mm tiefer als üblich angeordnet haben. Mit dem verwendeten Paket kann man die Seitenzahl beliebig anordnen. </p> </div> <div class="example"><pre> \listfiles \documentclass[a4paper]{article} \usepackage{fancyhdr} \usepackage{pdfpages} \renewcommand{\headrulewidth}{0mm} \fancyfoot[CO]{\raisebox{-10mm}{\large\textsf{\thepage}}} \fancyfoot[RO,LO]{} \fancypagestyle{plain}{% \pagestyle{fancy}% }% \begin{document} \pagestyle{fancy} \includepdf[pages=-, nup=1x1, pagecommand={\mbox{}} ]{a.pdf} \end{document} HTH, Stefan </pre>
<p> </p>
<a name=„hilfe“></a> <h2>Übersetzung des pdftk-Hilfetextes</h2>
<h3>SYNOPSIS</h3>
<pre> pdftk <input PDF files | - | PROMPT>
[input_pw <input PDF owner passwords | PROMPT>] [<operation> <operation arguments>] [output <output filename | - | PROMPT>] [encrypt_40bit | encrypt_128bit] [allow <permissions>] [owner_pw <owner password | PROMPT>] [user_pw <user password | PROMPT>] [flatten] [compress | uncompress] [verbose] [dont_ask | do_ask]
Als <Operation> kann eines der Schlüsselwörter
[cat | attach_files | unpack_files | burst |
fill_form | background | dump_data | dump_data_fields | update_info] angegeben werden.
Der komplette Hilfetext wird mit pdftk –help ausgegeben.
</pre>
<a href=„index.html#toc“>Inhalt</a>
<h3>BESCHREIBUNG</h3>
<pre> Wenn man PDF als elektronisches Papier betrachtet, dann dient pdftk als elektronischer Enthefter, als Locher und Bindegerät, zum Verschlüsseln, Entschlüsseln und Durchleuchten. Pdftk ist ein einfach handhabbares Werkzeug für alltägliche Arbeiten an PDF-Dokumenten. Verwenden Sie es, um
(Passwort erforderlich!)
<a href=„index.html#toc“>Inhalt</a>
<h3>OPTIONEN</h3>
<pre>
Es folgt eine Zusammenfassung der Optionen:
<span class="pdftk">--help, -h</span> Ausgabe des Hilfetextes.
</pre>
<pre>
<span class="pdftk"><input PDF files | - | PROMPT></span>
Hier übergeben Sie eine Liste der PDF-Dateien, die
bearbeitet werden sollen. Wenn Sie diese Dateien mit
der Operation cat ohne Verwendung eines Handles zusammenfügen
möchten, dann geben Sie die Dateien einfach in der
gewünschten Reihenfolge an.
Verwenden Sie '-', um von der Standardeingabe zu lesen oder um die
Ausgabe eines anderen Programms in pdftk umzuleiten.</pre>
<pre>
Eingabedateien können an ein Handle gebunden werden. Als Handle kann ein einzelner Großbuchstabe verwendet werden: <span class="pdftk"><input PDF handle>=<input PDF filename></span> Das Handle kann in vielen Fällen weggelassen werden. Es wird verwendet, um für einzelne PDF-Dateien Passworte und Seitenbereiche anzugeben.
Beispiel: A=input1.pdf B=input2.pdf</pre>
<pre>
<span class="pdftk">[input_pw <input PDF owner passwords | PROMPT>]</span> Eigentümerpassworte für Eingabedateien können bei Bedarf unter Verwendung der Handles angegeben werden: <span class="pdftk"><input PDF handle>=<input PDF file owner password></span> Wenn keine Handles verwendet werden, dann werden die Passworte in der Reihenfolge der Eingabedateien zugeordnet. Die meisten pdftk-Operationen erfordern die Angabe des Eigentümerpassworts. Wenn kein Eigentümerpasswort vorhanden ist, muss stattdessen das Nutzerpasswort angegeben werden. Für PDF-Dateien ohne Passworte sollten auch keine Passworte angegeben werden.
Wenn pdftk im do_ask-Modus aufgerufen wird, werden Sie zur Eingabe fehlender Passworte aufgefordert.</pre>
<pre>
<span class="pdftk">[<operation> <operation arguments>]</span> Wenn Sie keine Operation angeben, wird pdftk im 'Filter'-Modus eingesetzt. Dabei wird eine PDF-Datei übergeben und pdftk wendet auf die Ausgabedatei lediglich die Ausgabe-Optionen (Verschlüsselung, Passworte und Komprimierung) an.
Folgende Operationen sind in pdftk verfügbar: cat, attach_files, unpack_files, burst, fill_form, background, dump_data, dump_data_fields, update_info.
Für einige Operationen sind spezielle Befehlsargumente notwendig.
Im folgenden werden alle Operationen und Argumente beschrieben.</pre>
<a href=„index.html#toc“>Inhalt</a>
<h3>OPERATIONEN</h3>
<pre> cat [<Seitenbereich(e)>] Verknüpft Eingabedateien oder Einzelseiten aus den Eingabedateien zu einer neuen PDF-Datei. Die Reihenfolge der Seiten in der Ausgabedatei wird durch die Reihenfolge der Eingabedateien bestimmt.
<input PDF handle>[<erste Seite>[-<letzte Seite>[<Bezeichner>]]]
Für eine Eingabedatei kann man die Seitenbereiche ohne handle angeben. Wenn Seitenbereiche aus mehreren Eingabedateien angegeben werden sollen, muss man (wie oben angegeben) ein handle verwenden. Als Bezeichner kann 'even' für geradzahlige oder 'odd' für ungeradzahlige Seitenzahlen angegeben werden.
Wenn cat ohne Befehlsargumente aufgerufen wird, dann werden alle Eingabedateien in der angegebenen Reihenfolge miteinander verbunden.
Anmerkungen: * <letzte Seite> kann größer als <erste Seite> sein * Mit dem Schlüsselwort end bezieht man sich auf die
letzte Seite des Dokuments.
* Eine einzelne Seite wird ausgewählt, indem man die
Angabe <letzte Seite> weglässt.
* Ein handle steht für das gesamte PDF-Dokument:
B1-end ist äquivalent zu B.
Beispiele für die Angabe von Seitenbereichen: A1-21 Bend-1odd A72 A1-21 Beven A72</pre>
<a href=„index.html#toc“>Inhalt</a>
<pre> burst
Zerlegt eine einzelne PDF-Datei in ihre Einzelseiten und erstellt eine Textdatei mit einigen Angaben zur Eingabedatei (doc_data.txt). Sie enthält die selben Angaben, die auch mit der Operation dump_data ausgegeben werden.
Ohne Angabe eines Stammnamens für die Ausgabedateien werden die Einzeldateien im Format pg_%04d.pdf benannt, also: pg_0001.pdf, pg_0002.pdf usw. Um die Ausgabedateien gezielt zu benennen, kann ein Formatstring angegeben werden.
Wenn Sie die Seiten zum Beispiel als seite_01.pdf, seite_02.pdf […] benennen wollen, geben Sie als Formatstring seite_%02d.pdf an. Die Ausgabedateien können durch ein Eigentümer- und Nutzerpasswort geschützt werden.
Beispiele:
pdftk in.pdf burst owner_pw foopass</pre>
<a href=„index.html#toc“>Inhalt</a>
<pre> attach_files <dateinamen | PROMPT> [to_page <Seitenzahl | PROMPT>]
Fügt eine oder mehrere beliebige Dateien als Anlagen an eine PDF-Datei an. Wenn keine Seitenzahl angegeben wird, werden die Anhänge an das Dokument angefügt. Wenn die Option to_page verwendet wird, dann wird die Anlage mit der angegebenen Seite verbunden. Auch hier kann man sich mit dem Schlüsselwort end auf die letzte Seite beziehen.
Beispiel:
pdftk in.pdf attach_files table1.html table2.html
to_page 6 output out.pdf
unpack_files
Entpackt die Anhänge und speichert sie in das aktuelle Verzeichnis oder in ein angegebenes Verzeichnis. Beispiel:
pdftk report.pdf unpack_files output ~/atts/
oder interaktiv:
pdftk report.pdf unpack_files output PROMPT</pre>
<a href=„index.html#toc“>Inhalt</a>
<pre> fill_form <FDF data filename | - | PROMPT>
Füllt die Formularfelder einer einzelnen Eingabedatei mit den Formulardaten einer FDF-Datei oder von stdin. Geben Sie den Namen der FDF-Datei nach fill_form an oder verwenden Sie - als Option, um die Daten von stdin zu übernehmen:
pdftk form.pdf fill_form data.fdf output form.filled.pdf
Nach dem Ausfüllen des Formulars bleibt das Formularfeld weiterhin editierbar, wenn nicht die Option 'flatten' angegeben wird. Mit Hilfe dieser Option werden die Inhalte der Formularfelder endgültig mit der PDF-Datei verbunden. Sie können 'flatten' auch als Operation zur Nachbearbeitung bestehender PDF-Dateien verwenden:
pdftk form.pdf fill_form data.fdf output out.pdf flatten
oder:
pdftk form.filled.pdf output out.pdf flatten
Wenn die FDF-Datei zusätzlich RTF-Daten enthält, dann werden diese RTF-Daten genauso wie die Texteingaben behandelt. pdftk setzt ein flag, damit das Erscheinungs- bild der Formularfelder im Acrobat Reader entsprechend der RTF-Formatierung angepasst wird. Wenn der Nutzer die PDF- Datei öffnet, werden die RTF-Felder formatiert.
Wenn der PDF-Viewer des Nutzers das RTF-Format nicht unterstützt, werden stattdessen die Texteingaben angezeigt. Das gilt auch, wenn die Option flatten auf das Dokument angewendet wurde, ohne dass das Dokument vorher mit Adobe Acrobat Standard oder Professional gespeichert wurde. </pre>
<a href=„index.html#toc“>Inhalt</a>
<pre> background <background PDF filename | - | PROMPT>
Ergänzt alle Seiten einer einzelnen PDF-Datei mit einem Wasserzeichen. Der Dateiname des Wasserzeichens wird wie im folgenden Beispiel angegeben:
pdftk in.pdf background back.pdf output out.pdf
pdftk verwendet nur die erste Seite der Datei, die als Wasserzeichen angegeben wird und setzt dieses Wasserzeichen hinter jede Seite der Eingabedatei. Das Wasserzeichen wird bei Bedarf skaliert und rotiert, damit es zu den Seiten der Eingabedatei passt. Sie können - angeben, um eine PDF-Datei, die als Wasserzeichen dienen soll, über stdin umzuleiten. Wegen der Rückwärtskompatibilität zu pdftk 1.0 kann background auch als Ausgabeoption genutzt werden. Diese veraltete Verfahrensweise funktioniert aber nur, wenn keine andere Operation angegeben wird. </pre>
<a href=„index.html#toc“>Inhalt</a>
<pre> dump_data
Liest eine einzelne PDF-Datei und schreibt einige statistische Angaben, die Metadaten und die Bookmarks der PDF-Datei auf die Standardausgabe oder in eine Ausgabedatei. Mit dieser Operation wird keine neue PDF-Datei erstellt. </pre>
<a href=„index.html#toc“>Inhalt</a>
<pre> dump_data_fields
Liest eine einzelne PDF-Datei und schreibt Angaben über die Formularfelder in eine Ausgabedatei oder auf die Standardausgabe. Mit dieser Operation wird keine neue PDF-Datei erstellt. </pre>
<a href=„index.html#toc“>Inhalt</a>
<pre> update_info <info data filename | - | PROMPT>
Aktualisiert die Metadaten, die im info-dictionary einer PDF- Datei gespeichert sind, mit den Angaben aus einer Textdatei. Diese Eingabedatei nutzt die selbe Syntax, die auch für die Ausgabe der Operation dump_data verwendet wird. Diese Operation ändert keine Daten in einem vorhandenen XMP-stream. Beispiel:
pdftk in.pdf update_info in.info output out.pdf</pre>
<a href=„index.html#toc“>Inhalt</a>
<a name=„binsrc“></a> <h2>Direkte Links zu Binärpaketen, Quelltexten und Beispielen</h2>
<p> <a href=„http://www.accesspdf.com/article.php/20041130153545577“>Aktuelle Binärpakete auf accesspdf.com</a> </p> <p> <a href=„http://www.accesspdf.com/article.php/20041129180128366“>Quelltexte und Hinweise zum Compilieren auf accesspdf.com</a> </p>
<p> <a href=„beispiele_pdftk.zip“>Beispiele dieser Seite als zip-Archiv</a> </p> <p> <a href=„beispiele_pdftk.tar.gz“>Beispiele dieser Seite als tar.gz-Archiv</a> </p>
<a href=„index.html#toc“>Inhalt</a>
<a name=„hinweise“></a> <h2>Hinweise zu dieser Seite</h2>
<p>
Diese Seite dient als Ergänzung meiner Artikel in der Zeitschrift <a href="http://linux-user.de">Linux User</a> und in der Zeitschrift der <a href="http://www.dante.de/">Deutschen Anwendervereinigung
für TeX (DANTE e.V.)</a>. Sie können sich hier die aktualisierten Beispiele zum pdftk-Artikel in der Linux-User 08/2005 und der DTK herunterladen.
</p>
<p>
Alle Beispiele wurden unter Debian GNU/Linux und SuSE Linux sowie
unter Win2k mit pdftk in der Version 1.12 getestet. Sollten Sie auf
diesen oder anderen Plattformen Probleme mit pdftk und den Beispielen feststellen, senden Sie
bitte eine E-Mail an <span class="mailadresse">stefan <at>
lagotzki <dot> de</span>. Der Autor dieser Seite arbeitet auf den Gebieten LaTeX (Satz, Programmierung), Computergraphik, Datenbanken und CAD. </p>
</html>