Я работаю в рутине для PDF урожая и импортирую их в шаблон PDF. Я использую GhostScript, вызывается с exec()
из PHP-скрипта и FPDI. Все работает на стороне сервера.PDF урожай четных страниц с PHP + GhostScript
До сих пор я мог обрезать документы PDF с помощью GhostScript, используя процедуру, описанную в this post (установка CropBox
).
Следующий шаг - обрезать по-разному четные и нечетные страницы документа. Так что я попробовал метод, описанный в this other post в суперпользователем файловой системы сайта, минуя пользовательский код PostScript в -c параметра GhostScript:
-c "<< /CurrPageNum 1 def /Install { /CurrPageNum CurrPageNum 1 add def
CurrPageNum 2 mod 1 eq {28 0 translate} {} ifelse } bind >> setpagedevice"
Этот метод сдвига нечетных страниц 28 пт, и не делать ни для четных страниц. Таким образом, я попытался изменить это, проходя CropBox (ов) (в% S заполнители заменяются соответствующими координатами в sprintf
предложении):
-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"
Вот полная команда выполняется над PDF-файл с 4-страницы:
"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, я получаю сообщение об ошибке, потому что [/CropBox...
не правильный код PS.
Error: /typecheck in --.postinstall--
EDIT для уточнения:
Итак, мой вопрос: как я могу передать эквивалент два CropBox (ов) -для нечетного и даже pages- к коду PostScript показано выше? Или существует другой способ для достижения этого с GhostScript из командной строки?
Очевидно, что CropBox не является допустимым кодом PostScript, но какие альтернативы?
Я опустил, чтобы сосредоточиться на моем вопросе. Конечно, когда я сказал, что могу установить CropBox, я использовал: '' C: \ Program Files (x86) \ gs \ gs9.07 \ bin \ gswin32c.exe "-sDEVICE = pdfwrite -o C: \ inetpub \ wwwroot \ ledrail \ tmp \ output.pdf -c "[/CropBox[89.28 126.252 505.92 715.428]/СТРАНИЦЫ pdfmark" -f C: \ inetpub \ wwwroot \ ledrail \ documentacio \ pdf \ documentacio_15.pdf' – Laura
Вам нужен/PAGE pdfmark не a/PAGES pdfmark. СТРАНИЦЫ затрагивают * все * страницы – KenS
Спасибо, KenS. Итак, есть ли другой способ - используя GhostScript - определять диапазон страниц, кроме параметров -f и '-l', которые определяют последовательные страницы? И в команде из моего последнего комментария, на какой странице будет применяться '/ PAGE'? – Laura