Ist es in Ghostscript möglich, Wasserzeichen zu jeder Seite in PDF hinzuzufügen?

8

Ich konvertiere PDF - & gt; viele JPEG und viele JPEG - & gt; viele PDF mit ghostscript . Ich muss Wasserzeichen Text auf jeder konvertierten JPEG (PDF) Seite hinzufügen. Ist es möglich, nur Ghostscript und PostScript zu verwenden?

Der einzige Weg, den ich gefunden habe:

  

gswin32c -q -sDEVICE = pdfwrite -dBATCH -dNOPAUSE -sOutputFile = Ausgabe.pdf watermark.ps input.pdf

Aber dies wird watermark.ps Wasserzeichen auf der ersten separaten Seite in output.pdf einfügen.

Kann ich dies direkt auf ausgegebenen PDF-Seiten tun?

Kann ich dies direkt auf Ausgabe-JPEG-Seiten tun?

%Vor%

Wenn ich /EndPage anstelle von /BeginPage verwende - sagt es setpagedevice ist nicht anwendbar ...

Wie man dieses Skript für /EndPage neu erstellt?

    
radistao 03.09.2012, 06:38
quelle

3 Antworten

8

Etwas zu groß für einen Kommentar, also habe ich eine neue Antwort hinzugefügt. Die EndPage-Prozedur (siehe Seite 441 des PostScript-Referenzhandbuchs) benötigt zwei zusätzliche Parameter auf dem Stapel, eine Anzahl der bisher ausgegebenen Seiten und einen Ursachencode.

Sie können die Anzahl der Seiten verwenden, um interessante Dinge wie Duplexing zu tun oder nur gerade Seiten oder was auch immer zu markieren, aber ich nehme an, dass Sie es in diesem Fall nicht wollen, also einfach vom Stapel "knallen" / p>

Der Ursachencode sagt Ihnen, warum die Seite ausgegeben wird. Auch hier ist es wahrscheinlich nicht wichtig, dass Sie einfach den Wert aufheben.

Schließlich muss die EndPage einen booleschen Wert an den Interpreter zurückgeben, der angibt, ob die Seite übertragen werden soll oder nicht (dadurch können Sie andere interessante Dinge tun, wie zum Beispiel nur die ersten 10 Seiten drucken).

Sie müssen also zunächst zwei Werte entfernen, Ihren Code ausführen und einen booleschen Wert zurückgeben. Ziemlich trivial:

%Vor%     
KenS 26.09.2012, 07:26
quelle
4

Die angenommene Antwort war das Einfügen von Seiten für mich. Die Seiten waren leer neben dem Wasserzeichen. Wenn Sie dazu stoßen, versuchen Sie, das 2eq-Bit hier hinzuzufügen.

%Vor%

Ich habe die folgende Seite gefunden, die mich in die richtige Richtung weist.

Ссылка

Hier ist die aufrufende Syntax, bei der die obige Datei als watermark.ps gespeichert wird und gswin32c auf die Ghostscript-Exe verweist

%Vor%     
Reid Evans 07.08.2014 16:25
quelle
1

Ich weiß nicht, was Sie mit "direkt" meinen. Es ist möglich, wie Sie herausgefunden haben, einen PostScript-Interpreter zu haben, der viele Dinge pro Seite ausführt. PostScript ist schließlich eine Programmiersprache.

Ich würde vorschlagen, dass die / BeginPage- und / oder / EndPage-Prozeduren im Seitengerätewörterbuch der richtige Startort sind. Damit können Sie am Anfang oder Ende jeder Seite beliebiges PostScript ausführen.

Wenn Sie eine / BeginPage-Prozedur definieren, wird sie vor beliebigen Markierungsoperationen aus dem Eingabeprogramm ausgeführt. Wenn Sie eine / EndPage definieren, wird sie nach ausgeführt die Markierungsoperationen aus dem Eingabeprogramm (seitenweise (.

Damit können Sie Ihre eigenen Marken "unter" oder "über" den Marken aus dem Programm liegen lassen.

    
KenS 03.09.2012 07:11
quelle