ich möchte in zahlreiche PDF-Dateien - es sind wirklich viele - immer
denselben benutzerdefinierten Stempel an immer derselben Position auf
Seite 1 einfügen.
Läst sich das irgendwie automatisieren? Sonst ist das Vorhaben
gestorben.
Gruß
Jörg
--
LPs auf CD brennen - so geht's: http://www.joergei.de/
E-Mail-Adresse existiert, wird aber nicht gelesen.
> ich möchte in zahlreiche PDF-Dateien - es sind wirklich viele - immer
> denselben benutzerdefinierten Stempel an immer derselben Position auf
> Seite 1 einfügen.
Wenn die Stelle leer ist oder der Stempel in den Hintergrund wandern darf,
kann man das mit dem background-Befehl von pdftk erreichen. Dazu erzeugt
man eine PDF-Datei, die den Stempel genau an der gewünschten stelle enthält
und ruft dann für jede zu stempelnde Datei pdftk auf. Die Aufrufe kann man
über ein script oder batch automatisieren, da sie immer gleich aussehen.
Gruß
Markus
Nachfragen:
(1) Enthalten diese PDF-Dateien bookmarks und interne Links? Oder
sind sie nur für den Druck bestimmt?
(2) In welcher Form liegt der "Stempel" vor?
> Läst sich das irgendwie automatisieren? Sonst ist das Vorhaben
> gestorben.
Ja, es lässt sich (in bestimmten Grenzen) automatisieren. Markus hat
ja schon pdftk ins Spiel gebracht. Aber die Background-Funktion wird
auf alle Seiten der PDF-Datei angewendet. Sie funktioniert auch nur auf
leeren Flächen wie ein Stempel. Sonst muss man die Reihenfolge umkehren
(siehe unten).
Wenn Du damit leben kannst, dass Du
(1) die PDF-Dateien in Seite 1 und den Rest splittest,
(2) die PDF-Dateien mit den ersten Seiten "stempelst" (Reihenfolge
beachten!),
(3) die PDF-Dateien wieder zusammenfügst,
dann gibt es eine automatische Lösung. Die kann man als Batch-Datei
oder Shell-Script ablegen und auf alle PDF-Dateien anwenden.
Allerdings verlierst Du damit eben leider die Bookmarks und internen
Links.
Wenn Du Programmierkenntnisse hast, kannst Du es mit der iText-
Bibliothek versuchen.
Stefan
.
PS: Auch Adobe Acrobat ist programmierbar, vielleicht ist das noch
eine Lösung.
Stefan
.
Ich habe mal kurz in die Batch-Sequenzen von
Acrobat Pro 6 reingeguckt und da gibt's 'ne
Funktion um "Watermarks" (hatte's gerade auf
"Englisch" gestellt) einzufügen, die ganz
offensichtlich aus einer Datei kommen müssen.
Würde das helfen?
> Jörg
Schobi
--
Spam...@gmx.de is never read
I'm Schobi at suespammers dot org
"Coming back to where you started is not the same as never leaving"
Terry Pratchett
Interessant wäre, ob man das auch auf die erste Seite des Dokuments
beschränken kann. Denn auf *alle* Seiten ein Wasserzeichen zu setzen
ist keine Kunst :-)
Mit Java und der iText-Bibliothek geht es jedenfalls. Man kann das
Wasserzeichen unter die erste Seite oder einen Stempel über die erste
Seite legen.
Stefan
.
erstmal vielen Dank an Euch drei - Markus, Stefan und Hendrik.
>> ich möchte in zahlreiche PDF-Dateien - es sind wirklich viele - immer
>> denselben benutzerdefinierten Stempel an immer derselben Position auf
>> Seite 1 einfügen.
Um zu präzisieren:
>(1) Enthalten diese PDF-Dateien bookmarks und interne Links?
Zum Teil ja. Es ist alles vertreten: Eingescannte Dokumente, aus
Textverarbeitungen als PDF gedruckte Dokumente, ohne und mit
Lesezeichen, externen Links, digitalen Signaturen, Formularen u. ä.
>(2) In welcher Form liegt der "Stempel" vor?
Noch gar nicht. Ich hatte an die "Stempelfunktion" in Acrobat 6 gedacht.
Er könnte auch ein Wasserzeichen oder ein gegen Änderungen gesperrtes
Formularfeld oder eine Textbox oder eine Grafik sein. Er beinhaltet nur
einen kurzen Text, ca. 5 Wörter.
[3] Welche Software steht zur Verfügung?
Adobe Acrobat Standard 6.xxx
Corel Draw ?? (ziemlich hoch)
Freeware sowieso
Windows XP pro, nix Linux..
>Wenn Du damit leben kannst, dass Du ...
>die Bookmarks und internen Links (verlierst) ...
Nein, die müssen bleiben. Werden die Bookmarks durch das
Auseinandernehmen und wieder Zusammensetzen der Dateien gelöscht oder
schon durch die alleinige Anwendung von pdftk?
Die digitalen Signaturen könnten leiden, die werden sowieso schon alle
als ungültig angezeigt.
Das mit der Seite 1 ist nicht ganz so streng. Der Stempeltext könnte
auch senkrecht am linken Blattrand auf jeder Seite erscheinen.
>Wenn Du Programmierkenntnisse hast, kannst Du es mit der iText-
>Bibliothek versuchen.
Naja, ich mache diverse Dinge in VBA (Excel) und Perfect Script
(WordPerfect). Habe kurz mal nach iText gegoogelt. Ich glaube, das will
ich mir nicht antun.
Ich werde pdftk mal ausprobieren.
Kein Problem, das kann man ja alles als PDF in A4 ablegen.
> [3] Welche Software steht zur Verfügung?
> Adobe Acrobat Standard 6.xxx
> Corel Draw ?? (ziemlich hoch)
> Freeware sowieso
> Windows XP pro, nix Linux..
Dir entgeht das beste. Aber sogar für WinXP sollte es doch
Java (eine JRE) geben. Die brauchst Du zumindest, wenn Du ein
Java-Programm laufen lassen willst. Das ist aber einfach
installierbar (ein normaler Windows-Installer) und frei verfügbar.
> Nein, die müssen bleiben. Werden die Bookmarks durch das
> Auseinandernehmen und wieder Zusammensetzen der Dateien gelöscht oder
> schon durch die alleinige Anwendung von pdftk?
Nur beim Auseinandernehmen und das ist ja auch logisch :-)
Wenn man sonst pdftk auf eine ganze Datei anwendet, leiden die
Bookmarks natürlich nicht darunter. Habe das mit der Dokumentation
zum Adobe Reader für Linux (122 Seiten, PDF 1.6) getestet.
Wenn der Stempel also auf *alle* Seiten soll, dann kannst Du
wirklich einfach pdftk anwenden
pdftk testdokument.pdf background stempel01.pdf output alles_gestempelt.pdf
und das ganze elegant in eine Batchdatei verpacken.
> Die digitalen Signaturen könnten leiden, die werden sowieso schon alle
> als ungültig angezeigt.
> Das mit der Seite 1 ist nicht ganz so streng. Der Stempeltext könnte
> auch senkrecht am linken Blattrand auf jeder Seite erscheinen.
Das ist egal. Du hast eine A4-Seite und die kann beliebig irgendwo
mit Zeichen oder Graphiken belegt sein. Ob man das mit Formularen und
anderen Objekten machen kann, konnte ich hier nicht testen.
> Naja, ich mache diverse Dinge in VBA (Excel) und Perfect Script
> (WordPerfect). Habe kurz mal nach iText gegoogelt. Ich glaube, das will
> ich mir nicht antun.
Schade. Ich habe es damit gerade zum Laufen bekommen :-)
Nein, das ist auch kein Problem. Wenn Du eine JRE hast, wäre der
Aufruf einfach wie in:
java -classpath ./itext-paulo-154.jar:. stamp_top_1 testdokument.pdf
stempel01.pdf testdokument_gestempelt.pdf
Leider konnte ich das nur unter Linux testen, weil wir gerade
mein Arbeitszimmer malern und der einzige halbe Windows-Rechner
dieses Haushalts gut verpackt ist. Sollte aber funktionieren.
Der Rest ist dann auch wieder Batch-Programmierung. Oder Du installierst
mal eine richtige Shell für WinXP, damit geht das noch einfacher.
Stefan
.
> Nur beim Auseinandernehmen und das ist ja auch logisch :-)
Von den internen Links gehen aber nur die verloren (bzw. werden auf neue
Ziele verbogen), die über die Teilgrenze gehen. Die Bookmarks gehen AFAIK
komplett verloren. Wenn ich mich recht erinnere werden die bei dump_data
aber mit in den dump geschrieben. Was dann passiert, wenn man die nach dem
Wiederzusammenfügen mit update_info wieder einliest, habe ich aber nie
getestet.
Gruß
Markus
Die Operation update_info schreibt leider nur Metadaten, keine
Bookmarks. Kann man testen:
stefan2@platon:~/test/java> pdftk sect.pdf dump_data
InfoKey: Creator
InfoValue: LaTeX with hyperref package
InfoKey: Producer
InfoValue: pdfTeX-1.10b
InfoKey: CreationDate
InfoValue: D:20050811114800
NumberOfPages: 3
BookmarkTitle: Ein Test
BookmarkLevel: 1
BookmarkPageNumber: 2
BookmarkTitle: Noch ein Test
BookmarkLevel: 1
BookmarkPageNumber: 3
stefan2@platon:~/test/java> pdftk sect.pdf burst
stefan2@platon:~/test/java> ls -1 pg_000*.pdf
pg_0001.pdf
pg_0002.pdf
pg_0003.pdf
stefan2@platon:~/test/java> pdftk pg*.pdf cat output sect2.pdf
stefan2@platon:~/test/java> pdftk sect2.pdf dump_data
InfoKey: Creator
InfoValue: pdftk 1.12 - www.pdftk.com
InfoKey: Producer
InfoValue: itext-paulo (lowagie.com)[JDK1.1] - build 132
InfoKey: ModDate
InfoValue: D:20050811085051-01'00'
InfoKey: CreationDate
InfoValue: D:20050811085051-01'00'
PdfID0: f38799e92f4ad1e017b3b44e3d8c5117
PdfID1: f38799e92f4ad1e017b3b44e3d8c5117
# sect2.pdf hat keine Bookmarks.
# jetzt speichere ich die Informationen aus sect.pdf in eine Textdatei
# (darin stehen Bookmarks, siehe oben)
pdftk sect.pdf dump_data output info.txt
# und wende update_info an:
pdftk sect2.pdf update_info info.txt output sect3.pdf
# Ergebnis:
stefan2@platon:~/test/java> pdftk sect3.pdf dump_data
InfoKey: Creator
InfoValue: LaTeX with hyperref package
InfoKey: Producer
InfoValue: pdfTeX-1.10b
InfoKey: ModDate
InfoValue: D:20050811085051-01'00'
InfoKey: CreationDate
InfoValue: D:20050811114800
NumberOfPages: 3
# HTH, Stefan
Man kann einen Page-Range angeben:
http://www.hschober.de/pdf/AcroBatch.tif
Ich nehme an, Seite 1-1 sollte gehen.
> [...]
> Stefan
> Die Operation update_info schreibt leider nur Metadaten, keine
> Bookmarks.
Schade. Denn eigentlich sind in den Bookmark-Informationen aus dem Dump
AFAIK alle Informationen enthalten, um wieder Bookmarks zu erzeugen - wenn
auch nur auf die entsprechenden Seiten und nicht direkt auf die
entsprechenden Überschriften.
Vor langer Zeit hatte ich aber mal ein Programm gesehen, das Bookmarks
nachträglich zu einem PDF hinzufügen kann. Ich glaube, das war zu der Zeit,
als ich noch mit pdcat (--> www.pdf-tools.com) experimentiert habe.
Gruß
Markus
Bei Bookmarks ist mir das sogar lieber, ich muss nicht unbedingt auf
die Überschrift der dritten Ebene springen, die erkenne ich in einem
ordentlich mit KOMA-Script gesetzten Dokument auch so :-)
> Vor langer Zeit hatte ich aber mal ein Programm gesehen, das Bookmarks
> nachträglich zu einem PDF hinzufügen kann. Ich glaube, das war zu der Zeit,
> als ich noch mit pdcat (--> www.pdf-tools.com) experimentiert habe.
Doch, es gibt mindestens noch eins. Es hat einen etwas
gewöhnungsbedürftigen Namen: mbtPdfAsm:
http://thierry.schmit.free.fr/dev/mbtPdfAsm/enMbtPdfAsm2.html
Man gibt eine Textdatei mit Bookmarks vor und das Programm setzt sie
dann ein. Klappt ganz gut, wenn man an commandline-Programme gewöhnt
ist.
Beim direkten Bearbeiten (Stempeln) der ersten Seite mit iText gehen die
Links übrigens auch nicht verloren. Ich habe es zwar nicht versucht,
aber man kann sicher auch mit iText und etwas Java selbst ein Programm
schreiben, das Bookmarks setzt. Ich bin sowieso begeistert von dieser
Bibliothek.
Stefan
.
>Wenn der Stempel also auf *alle* Seiten soll, dann kannst Du
>wirklich einfach pdftk anwenden
>
>pdftk testdokument.pdf background stempel01.pdf output alles_gestempelt.pdf
Funktioniert prima, wenn die PDF mit Textprogramm erstellt wurde. Bei
eingescannten PDFs ist der im Hintergrund erstellte Stempel nicht
sichtbar.
Ein
pdftk testdokument.pdf _fore_ground ...
scheint es nicht zu geben.
Ensteht hierdurch der Stempel im Vordergrund?
>java -classpath ./itext-paulo-154.jar:. stamp_top_1 testdokument.pdf
>stempel01.pdf testdokument_gestempelt.pdf
Ah, wahrscheinlich doch:
>Mit Java und der iText-Bibliothek geht es jedenfalls. Man kann das
>Wasserzeichen unter die erste Seite oder einen Stempel über die erste
>Seite legen.
Na, mal sehen, ob nicht doch iText.
Nein, leider nicht. Ich sende dem Autor mal meinen Quelltext
und den Vorschlag, wie man es einbauen könnte. Zeitraubender
dürfte die Arbeit sein, das Benutzerinterface dafür zur Verfügung
zu stellen.
Stefan
.
--
pdftk-Seite mit Beispielen und Übersetzung der Hilfetexte:
http://www.lagotzki.de/pdftk/index.html