wewa schrieb:
Nicht geklärt ist hingegen folgende Frage.
Wie kann man das Wasserzeichen nur auf der ersten Seite einfügen?
Mit PDFtk geht es nicht direkt. Die Funktionen background
und stamp
verpassen allen Seiten ein Wasserzeichen. Aber man könnte die erste Seite des Dokuments im Skript extrahieren, mit Wasserzeichen versehen, und anschließend alle Seiten wieder zusammenführen. Das ist keine schöne Lösung, aber mir fällt spontan keine Alternative ein.
Aus deinem Skript schließe ich, dass du CUPS-PDF ausschließlich für diesen Anwendungsfall einsetzt. Also alle deine PDFs, die du über diesen Drucker schickst, mit einem Wasserzeichen versehen möchtest. Mit PPD und benutzerdefinierter Filterkette bin ich bislang gescheitert, aber CUPS-PDF verfügt selber über eine Möglichkeit in der Konfiguration ein Skript für die Nachbearbeitung einer erzeugten PDF anzugeben. Das würde dir dann die Überwachung der Verzeichnis ersparen und dein Skript entsprechend nach jedem Druckauftrag ausgeführt werden. Das wäre halt unkomfortabel, wenn das Wasserzeichen nur auf bestimmte PDFs angewendet werden soll, was aber bei dir scheinbar nicht zutrifft.
Für das Skript übergibt CUPS-PDF automatisch den Dateinamen in $1
und den Benutzernamen in $2
. Den Hinweis darauf, sowie die notwendige Zeile für das Skript findet man in der /etc/cups/cups-pdf.conf. Zu ändern wäre also:
#PostProcessing
In:
PostProcessing /pfad/zu/deinem/skript
Und in dem Skript könnte dann bspw. etwas stehen wie:
| #!/bin/bash
datei="$1"
benutzer="$2"
pdftk "$datei" background /home/"$benutzer"/PDF/wasserzeichen.pdf output "${datei%.pdf}_.pdf"
|
Da CUPS von AppArmor überwacht wird, muss die Vorlage wasserzeichen.pdf ebenso wie das Skript selber in der Konfiguration mit den entsprechenden Rechten hinterlegt sein. Da ~/PDF dort bereits mit Lese- und Schreibrechten eingetragen ist, liegt die Vorlage dort schon nicht verkehrt. Aber das Skript muss man in der Datei /etc/apparmor.d/usr.sbin.cupsd noch zusätzlich im Block für CUPS-PDF mit den entsprechenden Rechten nachtragen:
/pfad/zu/deinem/skript Pxr,
Danach AppArmor und CUPS einmal neu starten:
sudo service apparmor restart ; sudo service cups restart
Ich hoffe, die Angaben stimmen so. Ich hatte das vergangene Tage zwar bereits erfolgreich ausprobiert, sitze aber gerade nicht an einem Linux-Gerät um das nochmal gegenzuprüfen.