Hin und wieder benötigt man Wasserzeichen in Bildern und möchte dies möglichst automatisiert ablaufen lassen, da es sich entweder um einige Bilder oder um eine sich wiederholende Tätigkeit handelt. Da ich immer versuche Aufgaben zu automatisieren habe ich mich an folgendem Artikel entlang gehangelt und stelle Euch kurz mein Skript vor welches automatisiert Wasserzeichen in Bildern unter Linux hinzufügt:

#!/bin/bash

mkdir -p done

region=$1
#SouthEast
#SouthWest

for filename in ./*.jpg; do
    echo "Füge Watermark in Datei $filename ein"
    composite -gravity $region -geometry x200+75+75 logo.png $filename ./done/$filename
done

Das Skript liegt bei mir im Ordner der Bilder dabei, das kann gegebenenfalls also noch mal angepasst werden. Ansonsten ist die Option -gravity noch interessant, die ich als ersten Inputparameter im Skriptaufruf mitgebe. Damit lässt sich steuern wo das Wasserzeichen hinzugefügt wird. Bei mir eigentlich immer „SouthEast“ oder „SouthWest“ also links unten oder rechts unten. Mit -geometry wird einerseits die Größe des Wasserzeichens angegeben (x200 = Breite des Wasserzeichens) und andererseits die x und y Position (75+75) vom jeweiligen Rand weg. Ich habe mit der Einstellung sehr gute Erfahrungen gemacht. logo.png beinhaltet bei mir das Wasserzeichen.

Auftrag ist recht schnell erklärt: ein mehrseitiges PDF in JPEGs zerlegen / konvertieren. Unter SuperUser.com habe ich sogar noch gelernt, wie man führende Nullen an den Zähler hängt. Voraussetzung ist ImageMagick, was zu jeder besseren Installation von Linux gehört.

convert -density 600 foo.pdf foo-%02d.jpg

Aufgabenstellung: mehrere PDF-Dateien zu einer PDF-Datei zusammenfassen. Ausgerechnet im Imagemagick-Forum habe ich die Lösung mit einem Ghostscript-Snippet bekommen:

user@pc:$ gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=Zusammengefasst.pdf -dBATCH Income1.pdf Income2.pdf
GPL Ghostscript 9.15 (2014-09-22)
Copyright (C) 2014 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 4.
Page 1
Page 2
Page 3
Page 4
Processing pages 1 through 4.
Page 1
Page 2
Page 3
Page 4
user@pc:$

Wobei „Zusammengefasst.pdf“ die Ausgangsdatei und „IncomeX.pdf“ beliebig zusammenfassende PDFs darstellen. Habt Ihr noch Alternativen wie man PDF-Dateien zusammenfassen kann? Mit Convert habe ich ein schlechtes Ergebnis erzielt und habe deswegen andere Wege gesucht.