PDF mit Wasserzeichen versehen

  Ralf Hersel   Lesezeit: 8 Minuten  🗪 7 Kommentare

Mehrere Versuche, um unter eine PDF-Datei ein Wasserzeichen zu legen.

pdf mit wasserzeichen versehen

Gestern gab es eine Anfrage in unserem TALK-Raum, wie man denn PDF-Dateien mit einem Wasserzeichen auf allen Seiten versieht. Solche Anforderungen nehme ich gerne als Herausforderung an, wenn ich selbst nicht weiss, wie die Lösung lautet. Als prompte Vorschläge wurden ImageMagick oder PDFTK genannt. Wie sich in diesem Artikel zeigt, ist die Lösung nicht so einfach, wie vermutet wurde.

Oft ist es richtig, eine Anforderung zu analysieren, bevor man sich mit möglichen Lösungen beschäftigt. Also, worum geht es hier? Man hat eine PDF-Datei, die man auf allen Seiten mit einem Wasserzeichen versehen möchte. Das Wasserzeichen ist ein diagonal verlaufender Text. Dabei soll das Wasserzeichen im Hintergrund liegen, damit die PDF-Datei nicht vom Wasserzeichen verdeckt wird. Somit muss die PDF-Datei transparent sein, damit das darunterliegende Wasserzeichen nicht von der PDF-Datei verdeckt wird.

Nachdem die Anforderung verstanden wurde, kann man nach möglichen Lösungen suchen.

Beginnen möchte ich mit einem Versuch, der sehr einfach ist und funktioniert.

Versuch 1 - LibreOffice

Man öffne die PDF-Datei in LibreOffice Draw. Dann exportiert man die Datei als PDF-Datei mit dem Menüpunkt Datei, Exportieren als, Als PDF exportieren. Bei den Exportoptionen wählt man den Punkt Mit Wasserzeichen versehen und gibt einen Text ein. Das Ergebnis sieht so aus:

Der Wasserzeichen-Text wird vertikal, mit fester Grösse und Farbe als Hintergrund eingefügt. Auf die Ausrichtung, Grösse und Farbe hat man keinen Einfluss. Lediglich der Text kann bestimmt werden.

Versuch 2 - PDFTK (background)

Während der erste Versuch einfach ist und augenscheinlich funktioniert, erfüllt er nicht ganz die Anforderungen. Diese verlangten einen diagonalen Text im Hintergrund. Das PDF-Toolkit (pdftk) bietet zwei Optionen, die für eine Lösung taugen könnten: background und stamp. Für meine Beispiele gibt es zwei Dateien: Statuten.pdf und Wasserzeichen.pdf. Das Wasserzeichen soll unten liegen und von den Statuten transparent überdeckt werden. Und genau dort liegt das Problem. Dieser naheliegende Befehl führt nicht zum gewünschten Ergebnis:

pdftk Statuten.pdf background Wasserzeichen.pdf output Statuten_mit_Wasserzeichen.pdf

Als Ergebnis erhält man eine Datei, die genau der Statuten.pdf entspricht, weil ebendiese nicht transparent ist und somit das Wasserzeichen vollständig abdeckt. Man könnte den Befehl herumdrehen, was jedoch aus denselben Gründen nicht zum gewünschten Resultat führt, weil die Datei Wasserzeichen.pdf auch nicht transparent ist. Nun stellt sich die Frage, wie man eine PDF-Datei transparent macht. Dazu habe ich keine Lösung gefunden (obwohl es sie bestimmt gibt).

Versuch 3 - PDFTK (stamp)

Bei diesem Versuch probiere ich es mit stamp:

Ihr seht es: stamp bügelt das Wasserzeichen über die PDF-Datei. Da die Wasserzeichen.pdf auch nicht transparent ist, werden Teile des Orignals überdeckt. Das Wasserzeichen habe ich in LibreOffice Writer erzeugt, indem ich einen Fontwork-Text eingefügt und gedreht habe. Leider gibt es beim PDF-Export keine Möglichkeit, die Datei mit transparentem Hintergrund zu speichern.

Versuch 4 - Transparentes Wasserzeichen

Die Stossrichtung ist jetzt klar; entweder muss das Wasserzeichen oder die Statuten.pdf transparent sein. In diesem Versuch machen wir das Wasserzeichen transparent. Dazu speichern wir die Wasserzeichen-Datei, die wir mit LibreOffice Writer erstellt haben, als PNG-Datei ab. Wie schon in der Einleitung angekündigt, kommt nun ImageMagick zum Einsatz:

convert Wasserzeichen.png -transparent white -background none Wasserzeichen.pdf
pdftk Statuten.pdf stamp Wasserzeichen.pdf output Statuten_mit_Wasserzeichen.pdf

Die erste Zeile erzeugt aus dem PNG eine PDF-Datei mit transparentem Hintergrund. Der zweite Befehl stempelt das nun transparente Wasserzeichen über die Statuten.pdf. So sieht das Ergebnis aus:

Das sieht brauchbar aus, obwohl es noch nicht optimal ist. Das Wasserzeichen ist in seinen weissen Bereichen transparent, wodurch man den darunterliegenden Text lesen kann. Die Umrandungen des Wasserzeichens sind nicht transparent und überdecken den Text darunter. Das kann erwünscht sein, weil damit die Entfernung des Wasserzeichens, bzw. das Scannen der Statuten erschwert wird.

Um eine optimale Lösung zu erzielen, müsste der Statuten-Text transparent sein und das Wasserzeichen mit pdftk background eingefügt werden. Wie das gehen soll, weiss ich nicht.

Fazit

Die vier Versuche haben zwei brauchbare Lösungen hervorgebracht. Wer es einfach haben möchte, öffnet die PDF-Datei in LibreOffice Draw und speichert diese mit einem Wasserzeichen ab. Als Alternative dient der vierte Versuch, bei dem eine transparente Wasserzeichen.png über die PDF-Datei gestempelt wird. Dabei ist darauf zu achten, dass der Wasserzeichen-Text nur aus dünnen Konturlinien besteht (LibreOffice Fontwork), weil sonst zu viel des darunterliegenden Textes überdeckt wird.

Vielleicht finden unsere Leser und Leserinnen eine bessere Lösung.

Update

Ja, die Community hat bessere Lösungen gefunden. Herzlichen Dank an alle Kommentatoren, hier und auf Mastodon. Ich möchte diesen Artikel mit zwei Lösungsvorschlägen abrunden. Der erste kommt von Roland (siehe Kommentare) und der zweite von Cristal Pixel.

Rolands Lösung

Falls die Datei als ODT (LibreOffice Writer) vorliegt, geht man dort auf den Menüpunkt: Format, Seitenvorlage, Transparenz und stellt diese auf 100 % ein:

Dann speichert man die ODT-Datei als PDF ab. Nun kann man, wie bei Versuch 2 beschrieben, den Text über das Wasserzeichen legen. Das Ergebnis sieht so aus:

Da die Statuten jetzt transparent sind, ist das darunterliegende Wasserzeichen vollständig sichtbar.

Cristal Pixels Lösung

Diese Variante eignet sich, wenn man keine Originaldatei des Textes, sondern nur eine PDF-Datei hat. Diese öffnet man in LibreOffice-Writer, wobei beim Öffnen der Dateifilter "PDF - Portable Document Format (Writer)" gewählt werden muss. Macht man das nicht, wird die Datei in LO-Draw geöffnet. In LO-Writer öffnet man den Menüpunkt: Format, Wasserzeichen und stellt die gewünschten Parameter ein:

Nachdem die Datei mit den Änderungen wieder als PDF-Datei gespeichert wurde, präsentiert sich das Ergebnis so:

Damit wäre das Thema ausführlich und abschliessend behandelt und bleibt für alle im GNU/Linux.ch-Nachschlagewerk erhalten. Vielen Dank an alle Beteiligten.

Quelle: https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

Tags

PDF, Wasserzeichen, pdftk, ImageMagick

Jens
Geschrieben von Jens am 15. März 2023 um 09:22

Hallo Ralf,

vielen Dank für die schnelle Umsetzung als Artikel.

Ich habe es mit PDFTK inzwischen geschafft, nachdem du eine Antwort von Superuser geschickt hast: https://superuser.com/questions/449130/how-to-add-text-at-bottom-of-pages-using-pdftk/451289#451289

1) Ich habe mir bei http://svgeditoronline.com/ ein Wasserzeichen in der Auflösung 1920 x 1440 erstellt. Damit es bei A3 Blättern nicht so verwaschen aussieht.

2) Man kann im Editor die Transparenz einstellen. Dazu klickt man links auf den Schieberegler unter der Farbe. Da erscheint R G B A. Bei A stelle ich 0,2 ein. Damit habe ich dann 20% Deckung.

3) Das ganze kann man auf der Seite als PNG exportieren.

4) Da es bei mir für die Arbeit ist, habe ich in Word ein neues Dokument geöffnet und ein leeres Blatt mit dem Bild erstellt.

5) Export über Word durch den integrierten Exporter. Damit blieb die Transparenz bestehen. Beim Druck mit FreePDF ist ein weißes Blatt mit dem Schriftzug entstanden.

6) PDFTK öffnen und deinen Schritt 3 durchführen. Das Gute daran, ich kann unterschiedlich große Dokumente (A3, A4) verwenden. Es wird immer vollflächig von PDFTK "aufgebügelt".

7) Der schwierigste Schritt: Den Kollegen erklären, wie es funktioniert und dass sie die Batch ausführen müssen.

Vielen Dank für den Stupser in die richtige Richtung.

y1n
Geschrieben von y1n am 15. März 2023 um 10:46

Hab im Moment keine Zeit es zu probieren, aber ich wuerde es in in Inkscape versuchen, sollte einfach sein, lg

Roland
Geschrieben von Roland am 15. März 2023 um 11:36

Hallo, falls Statuten.pdf auch mit LO erzeugt wurde, solltest Du dort unter Format -> Seitenvorlage auf den Reiter Transparenz gehen und dort die Transparenz auf 100% setzen. Danach als PDF exportieren und dann über pdftk ein Wasserzeichen drunter packen. Das wasserzeichen sollte dann allerdings nicht als Outline-Text definiert werden sondern komplett grau, sonst sieht man es u.U. nicht so gut. Mache ich im Büro schon seit Jahren so.

Grüße Roland

Klaus
Geschrieben von Klaus am 15. März 2023 um 14:21

Dank für den Artikel und für die guten Kommentare. Wieder was dazugelernt dank Euch.

Ralf Hersel
Geschrieben von Ralf Hersel am 15. März 2023 um 18:48

Herzlichen Dank an alle Kommentatoren. Ich habe den Artikel mit den Lösungen von Roland und Cristal Pixel ergänzt.

Dani
Geschrieben von Dani am 16. März 2023 um 06:35

Bei einer Kundin läuft das schon seit zehn Jahren. Imagemagick hinter einer Nautilus Action. Ein Einzeiler. Sie musste beliebige PDF wasserzeichnen und wollte eigens dafür AA anschaffen. Man bedenke nebst Kosten den Aufwand für Dutzende von Dokumenten pro Woche. zz.

Wie oben festgestellt kommt das Wasserzeichen - unerwartet - über das Originaldokument. Das WZ soll dann transparent und halbdurchsichtig sein.

Fertig.

NB: Das Konstrukt PDF lässt zu, das WZ wieder zu entfernen. Damals half PDFEdit, für geübte Postscript Freaks tuts auch ein Texteditor. Um das zu umgehen muss man letztlich PDF zu Bilddateien aufblasen und verwaschen (JPG Komprimierung). Drum bitte NIE eine gescannte Unterschrift an ein PDF pflastern.

Matthias
Geschrieben von Matthias am 17. März 2023 um 13:31

Wenn es schnell gehen soll, nutze ich jpdf Tweak. (https://jpdftweak.sourceforge.net/) Damit hat man sehr viele Möglichkeiten. Beim Wasserzeichen kann ich den Text frei eingeben, die Transparenz einstellen und auf welchen Seiten es erscheinen soll. Hier ein Screenshot:https://myprivatecloud.dedyn.io/s/cmW2s6zcby5QKKL Danke für dieses schöne Stück freier Software.