PDF schneidet gerade und ungerade Seiten mit PHP + GhostScript
Ich arbeite in einer Routine zum Zuschneiden von PDFs und importiere sie in eine PDF-Vorlage. Ich verwende GhostScript, das mit @ aufgerufen wirexec()
aus einem PHP-Skript und FPDI. Alle laufen serverseitig.
Bisher kann ich mit GhostScript PDF-Dokumente zuschneiden, indem ich die in @ beschriebene Prozedur verwenddieser Beitra (EinstellungCropBox
).
Der nächste Schritt besteht darin, die geraden und ungeraden Seiten eines Dokuments unterschiedlich zuzuschneiden. Also habe ich die Methode ausprobiert, die in @ erklärt wurddieser andere Beitrag Übergeben von benutzerdefiniertem PostScript-Code in der SuperUser-Site in den Parameter -c an GhostScript:
-c "<< /CurrPageNum 1 def /Install { /CurrPageNum CurrPageNum 1 add def
CurrPageNum 2 mod 1 eq {28 0 translate} {} ifelse } bind >> setpagedevice"
Diese Methode verschiebt ungerade Seiten um 28 Punkte und macht keine für gerade Seiten. Also habe ich versucht, dies zu ändern, indem ich CropBox (s) übergeben habe (die% s-Platzhalter werden durch die entsprechenden Koordinaten in einem @ ersetzsprintf
satz):
-c "<< /CurrPageNum 1 def /Install { /CurrPageNum CurrPageNum 1 add def
CurrPageNum 2 mod 1 eq {[/CropBox [%s %s %s %s]} {[/CropBox [%s %s %s %s]}
ifelse } bind >> setpagedevice"
Hier ist der vollständige Befehl, der über eine 4-seitige PDF-Datei ausgeführt wird:
"C:\Program Files (x86)\gs\gs9.07\bin\gswin32c.exe" -sDEVICE=pdfwrite
-o C:\inetpub\wwwroot\ledrail\tmp\output.pdf
-c "<< /CurrPageNum 1 def /Install { /CurrPageNum CurrPageNum 1 add def
CurrPageNum 2 mod 1 eq {[/CropBox [119.04 168.336 505.92 715.428]}
{[/CropBox [59.52 84.168 505.92 715.428]} ifelse } bind >> setpagedevice"
-f C:\inetpub\wwwroot\ledrail\documentacio\pdf\documentacio_15.pdf
Ovbiously, ich bekomme eine Fehlermeldung, weil[/CropBox...
ist kein gültiger PS-Code.
Error: /typecheck in --.postinstall--
EDIT zur Klärung:
Also, meine Frage ist: Wie kann ich @ übergebdas Äquivalent zu zwei CropBox (s) - für gerade und ungerade Seiten - an den oben gezeigten PostScript-Code? Oder es gibt eine andere Methode, um dies zu erreichenmit GhostScript von der Kommandozeile?
Natürlich weiß ich, dass CropBox kein für PostScript gültiger Code ist, aber welche Alternativen gibt es?