PDFTK PDF TollKit

Quelle1)

<html>

<h1>pdftk - Ein OpenSource-Programm zur Bearbeitung von PDF-Dateien</h1>

<p class=„intext“>

       pdftk ist ein frei verf&uuml;gbares Werkzeug zur Bearbeitung von
       PDF-Dateien. Auf dieser Seite finden Sie die <a href="index.html#hilfe">deutsche
       &Uuml;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&uuml;r die Zeitschrift <a href="http://linux-user.de">Linux User</a> geschrieben.

</p> <p class=„intext“>

       Die Seite wird in regelm&auml;&szlig;igen
       Abst&auml;nden aktualisiert.  Wenn Sie Fragen oder Hinweise haben, senden Sie bitte eine E-Mail an <span class="mailadresse">stefan &lt;at&gt;
       lagotzki &lt;dot&gt; 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 &uuml;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&auml;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“>&Uuml;bersetzung des pdftk-Hilfetextes</a> </p>

<p> <a href=„index.html#binsrc“>Direkte Links zu Bin&auml;rpaketen, Quelltexten und Beispielen</a> </p>

<p> <a href=„index.html#hinweise“>Hinweise zu dieser Seite</a> </p>

&nbsp;

<a name=„attachment“></a> <h2>Anh&auml;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&auml;nger kann sie seinerseits mit pdftk (oder mit dem Adobe Reader ab Version 6) in ein Verzeichnis entpacken. Im folgenden Beispiel f&uuml;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&auml;nge muss ein Verzeichnis angegeben werden, weil eine PDF-Datei mehrere Anh&auml;nge haben kann. Der Empf&auml;nger kann diese Anh&auml;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&ouml;nnen Sie auch einzelne Dateien aus der PDF-Datei extrahieren. Die Datei <a href=„beispiel_anhang.pdf“>beispiel_anhang.pdf</a> enth&auml;lt zu Testzwecken eine LaTeX-Datei und eine EPS-Datei.

</p> <p> Anh&auml;nge k&ouml;nnen auch zu Seiten zugeordnet werden. Allerdings muss man diese Operation f&uuml;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>

&nbsp;<a href=„index.html#toc“>Inhalt</a>

<a name=„background“></a><h2>Hintergrundbild und Hintergrundfarbe</h2>

<p> Mit pdftk k&ouml;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&ouml;chten, sollte es bereits in der Papiergr&ouml;&szlig;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&uuml;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&ouml;nnen Sie aus den EPS- und PDF-Beispielen in den <a href="index.html#binsrc">Archiven</a> selbst herstellen. Die Farbe k&ouml;nnen Sie in der EPS-Datei anpassen. Sie wird in der &uuml;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&ouml;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&ouml;&szlig;e Ihres PDF-Dokuments vorliegen oder zumindest die selben Proportionen besitzen. Die PDF-Datei wird wie eine Folie &uuml;ber die Seiten der vorliegenden PDF-Datei gelegt und durch Skalieren an die Gr&ouml;&szlig;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 &quot;entpackt&quot;. Die Dateien hei&szlig;en dann pg_0001.pdf bis pg_n.pdf (damit kann der Nutzer also keinen Namen f&uuml;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&auml;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&ouml;nnen sich das Zerlegen einer PDF-Datei vereinfachen, indem Sie die M&ouml;glichkeiten Ihres Betriebssystems oder Ihrer Benutzeroberfl&auml;che besser ausnutzen. Unter Windows k&ouml;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&auml;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&auml;ter liegen die Einzelseiten im selben Ordner wie die Quelldatei.</li> <li>Sie k&ouml;nnen die Batchdatei auch zum Kontextmen&uuml; hinzuf&uuml;gen und dann nach einem Rechtsklick die Option "&Ouml;ffnen mit ..." nutzen. </li> </ol> <p>F&uuml;r KDE-Nutzer gibt es Aktionen, die Sie zu Ihrem Kontextmen&uuml; hinzuf&uuml;gen k&ouml;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&auml;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 &nbsp;output beispiel_deckblatt.pdf <br /> </div> <div class="intext"> Dateinamen k&ouml;nnen mit einem &quot;handle&quot; (im zweiten Beispiel &quot;D&quot; und &quot;B&quot;) 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&ouml;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 &uuml;ber den Autor, das Thema der Datei oder die verwendete Software) gespeichert. Mit pdftk k&ouml;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&auml;lt nun alle Metadaten des Dokuments. Sie ist aus Schl&uuml;sselfeldern und zugeh&ouml;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&auml;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 &Uuml;bersetzen des Dokuments m&ouml;glich. Zum Aktualisieren der Meta-Informationen k&ouml;nnen Textdateien mit Metadaten verwendet werden, die aus einem solchen &quot;dump&quot; 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&uuml;ssen in diese Datei nicht alle Informationen aufnehmen, die man mit einer PDF-Datei speichern kann. Bereits belegte Felder bleiben beim Update unber&uuml;hrt, wenn sie in der Textdatei nicht enthalten sind. Sie k&ouml;nnen auch zus&auml;tzliche Schl&uuml;sselfelder (im Beispiel &quot;Ort&quot;) 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&uuml;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&ouml;nnen Formulare mit benannten Formularfeldern enthalten. Die PDF-Formulardaten werden oft mit propriet&auml;ren Programmen der Firma Adobe in die PDF-Dateien eingef&uuml;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&auml;ufig ausf&uuml;llen und der Nutzer kann Korrekturen oder Erg&auml;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&ouml;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&auml;ndnis, wenn momentan nicht alle Fragen sofort beantwortet werden k&ouml;nnen :-) </p> </div> <div class="intext"> <h3>Kann man mit pdftk PDF-Dateien 'cracken'?</h3> <p> Nein. pdftk geh&ouml;rt zu den Programmen, die die gesetzten Berechtigungen (Einschr&auml;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&uuml;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&szlig;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&ouml;llig unn&ouml;tig. Denn wenn man das User-Passwort kennt, kann man die Einschr&auml;nkungen der PDF-Datei ohnehin &auml;ndern. </p> </div> <div class="intext"> <h3>Kann man mit pdftk PDF-Dateien 'verschl&uuml;sseln'?</h3> <p> Ja. Im Rahmen der M&ouml;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>&nbsp;</p> <div class="intext"> <h3>Kann man mit pdftk Seitenzahlen einf&uuml;gen?</h3> <p> Einige Fragen bezogen sich auf die M&ouml;glichkeit, ein Hintergrundbild einzuf&uuml;gen. Gern wird daraus der Schluss gezogen, dass pdftk auch Seitenzahlen einf&uuml;gen kann. Das ist leider nicht m&ouml;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&ouml;sung mit pdfLaTeX gezeigt. Der Fragesteller wollte die Seitenzahl zentriert und 10mm tiefer als &uuml;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>&Uuml;bersetzung des pdftk-Hilfetextes</h2>

<h3>SYNOPSIS</h3>

<pre> pdftk &lt;input PDF files | - | PROMPT&gt;

[input_pw &lt;input PDF owner passwords | PROMPT&gt;]
[&lt;operation&gt; &lt;operation arguments&gt;]
[output &lt;output filename | - | PROMPT&gt;]
[encrypt_40bit | encrypt_128bit]
[allow &lt;permissions&gt;]
[owner_pw &lt;owner password | PROMPT&gt;]
[user_pw &lt;user password | PROMPT&gt;]
[flatten] [compress | uncompress]
[verbose] [dont_ask | do_ask]
Als &lt;Operation&gt; kann eines der Schl&uuml;sselw&ouml;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>

&nbsp;<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&auml;t, zum Verschl&uuml;sseln, Entschl&uuml;sseln und Durchleuchten. Pdftk ist ein einfach handhabbares Werkzeug f&uuml;r allt&auml;gliche Arbeiten an PDF-Dokumenten. Verwenden Sie es, um

  • PDF-Dokumente zusammenzuf&uuml;gen
  • PDF-Seiten zu einem neuen Dokument zusammenzustellen
  • den Inhalt gesch&uuml;tzter PDF-Dateien zu entschl&uuml;sseln

(Passwort erforderlich!)

  • PDF-Dateien zu verschl&uuml;sseln
  • PDF-Formulare mit FDF-Daten auszuf&uuml;llen
  • PDF-Dateien mit einem Hintergrundbild zu versehen
  • PDF-Metadaten und Bookmarks zu lesen
  • PDF-Metadaten zu aktualisieren
  • Dateien an ein PDF anzuh&auml;ngen
  • PDF-Anh&auml;nge zu entpacken
  • ein PDF Document in Einzelseiten zu zerlegen
  • PDF-Streams zu dekomprimieren und zu komprimieren
  • defekte PDF-Streams zu reparieren (wenn m&ouml;glich)</pre>

&nbsp;<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">&lt;input PDF files | - | PROMPT&gt;</span> 
Hier &uuml;bergeben Sie eine Liste der PDF-Dateien, die 
bearbeitet werden sollen. Wenn Sie diese Dateien mit
der Operation cat ohne Verwendung eines Handles zusammenf&uuml;gen
m&ouml;chten, dann geben Sie die Dateien einfach in der
gew&uuml;nschten Reihenfolge an.
Verwenden Sie &#039;-&#039;, um von der Standardeingabe zu lesen oder um die
Ausgabe eines anderen Programms in pdftk umzuleiten.</pre>

<pre>

Eingabedateien k&ouml;nnen an ein Handle gebunden werden. 
Als Handle kann ein einzelner Gro&szlig;buchstabe verwendet werden:

<span class="pdftk">&lt;input PDF handle&gt;=&lt;input PDF filename&gt;</span> 

Das Handle kann in vielen F&auml;llen weggelassen werden.
Es wird verwendet, um f&uuml;r einzelne PDF-Dateien Passworte
und Seitenbereiche anzugeben. 
Beispiel: A=input1.pdf B=input2.pdf</pre>

<pre>

<span class="pdftk">[input_pw &lt;input PDF owner passwords | PROMPT&gt;]</span> 

Eigent&uuml;merpassworte f&uuml;r Eingabedateien k&ouml;nnen bei Bedarf  
unter Verwendung der Handles angegeben werden:

<span class="pdftk">&lt;input PDF handle&gt;=&lt;input PDF file owner password&gt;</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&uuml;merpassworts. Wenn kein Eigent&uuml;merpasswort vorhanden
ist, muss stattdessen das Nutzerpasswort angegeben werden.
F&uuml;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">[&lt;operation&gt; &lt;operation arguments&gt;]</span> 

Wenn Sie keine Operation angeben, wird pdftk im
&#039;Filter&#039;-Modus eingesetzt.  Dabei wird eine PDF-Datei
&uuml;bergeben und pdftk wendet auf die Ausgabedatei lediglich
die Ausgabe-Optionen (Verschl&uuml;sselung, Passworte und
Komprimierung) an. 
Folgende Operationen sind in pdftk verf&uuml;gbar:
cat,  attach_files, unpack_files,  burst, 
fill_form,  background, dump_data,  dump_data_fields, 
update_info.  

F&uuml;r einige Operationen sind spezielle Befehlsargumente notwendig.

Im folgenden werden alle Operationen und Argumente beschrieben.</pre>

&nbsp;<a href=„index.html#toc“>Inhalt</a>

<h3>OPERATIONEN</h3>

<pre> cat [&lt;Seitenbereich(e)&gt;] Verkn&uuml;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.

&lt;input PDF handle&gt;[&lt;erste Seite&gt;[-&lt;letzte Seite&gt;[&lt;Bezeichner&gt;]]]

F&uuml;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 &#039;even&#039; f&uuml;r geradzahlige oder &#039;odd&#039; f&uuml;r ungeradzahlige Seitenzahlen angegeben werden.

Wenn cat ohne Befehlsargumente aufgerufen wird, dann werden alle Eingabedateien in der angegebenen Reihenfolge miteinander verbunden.

Anmerkungen: * &lt;letzte Seite&gt; kann gr&ouml;&szlig;er als &lt;erste Seite&gt; sein * Mit dem Schl&uuml;sselwort end bezieht man sich auf die

 letzte Seite des Dokuments. 

* Eine einzelne Seite wird ausgew&auml;hlt, indem man die

 Angabe &lt;letzte Seite&gt; wegl&auml;sst. 

* Ein handle steht f&uuml;r das gesamte PDF-Dokument:

 B1-end ist &auml;quivalent zu B.  

Beispiele f&uuml;r die Angabe von Seitenbereichen: A1-21 Bend-1odd A72 A1-21 Beven A72</pre>

&nbsp;<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&auml;lt die selben Angaben, die auch mit der Operation dump_data ausgegeben werden.

Ohne Angabe eines Stammnamens f&uuml;r die Ausgabedateien werden die Einzeldateien im Format pg_&#037;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_&#037;02d.pdf an. Die Ausgabedateien k&ouml;nnen durch ein Eigent&uuml;mer- und Nutzerpasswort gesch&uuml;tzt werden.

Beispiele:

pdftk in.pdf burst owner_pw foopass</pre>

&nbsp;<a href=„index.html#toc“>Inhalt</a>

<pre> attach_files &lt;dateinamen | PROMPT&gt; [to_page &lt;Seitenzahl | PROMPT&gt;]

F&uuml;gt eine oder mehrere beliebige Dateien als Anlagen an eine PDF-Datei an. Wenn keine Seitenzahl angegeben wird, werden die Anh&auml;nge an das Dokument angef&uuml;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&uuml;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&auml;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>

&nbsp;<a href=„index.html#toc“>Inhalt</a>

<pre> fill_form &lt;FDF data filename | - | PROMPT&gt;

F&uuml;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 &uuml;bernehmen:

pdftk form.pdf fill_form data.fdf output form.filled.pdf

Nach dem Ausf&uuml;llen des Formulars bleibt das Formularfeld weiterhin editierbar, wenn nicht die Option &#039;flatten&#039; angegeben wird. Mit Hilfe dieser Option werden die Inhalte der Formularfelder endg&uuml;ltig mit der PDF-Datei verbunden. Sie k&ouml;nnen &#039;flatten&#039; 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&auml;tzlich RTF-Daten enth&auml;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 &ouml;ffnet, werden die RTF-Felder formatiert.

Wenn der PDF-Viewer des Nutzers das RTF-Format nicht unterst&uuml;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>

&nbsp;<a href=„index.html#toc“>Inhalt</a>

<pre> background &lt;background PDF filename | - | PROMPT&gt;

Erg&auml;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&ouml;nnen - angeben, um eine PDF-Datei, die als Wasserzeichen dienen soll, &uuml;ber stdin umzuleiten. Wegen der R&uuml;ckw&auml;rtskompatibilit&auml;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>

&nbsp;<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>

&nbsp;<a href=„index.html#toc“>Inhalt</a>

<pre> dump_data_fields

Liest eine einzelne PDF-Datei und schreibt Angaben &uuml;ber die Formularfelder in eine Ausgabedatei oder auf die Standardausgabe. Mit dieser Operation wird keine neue PDF-Datei erstellt. </pre>

&nbsp;<a href=„index.html#toc“>Inhalt</a>

<pre> update_info &lt;info data filename | - | PROMPT&gt;

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&uuml;r die Ausgabe der Operation dump_data verwendet wird. Diese Operation &auml;ndert keine Daten in einem vorhandenen XMP-stream. Beispiel:

pdftk in.pdf update_info in.info output out.pdf</pre>

&nbsp;<a href=„index.html#toc“>Inhalt</a>

<a name=„binsrc“></a> <h2>Direkte Links zu Bin&auml;rpaketen, Quelltexten und Beispielen</h2>

<p> <a href=„http://www.accesspdf.com/article.php/20041130153545577“>Aktuelle Bin&auml;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&auml;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&uuml;r TeX (DANTE e.V.)</a>. Sie k&ouml;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 &lt;at&gt;
       lagotzki &lt;dot&gt; de</span>. Der Autor dieser Seite arbeitet auf den
       Gebieten LaTeX (Satz, Programmierung), Computergraphik, Datenbanken und CAD.
    </p>

</html>