Corte PDF em páginas ímpares com PHP + GhostScript
Estou trabalhando em uma rotina para cortar PDFs e importá-los para um modelo PDF. Estou usando o GhostScript, chamado comexec()
de um script PHP e FPDI. Tudo em execução no lado do servidor.
Até agora, sou capaz de cortar documentos PDF com o GhostScript usando o procedimento explicado emesta postagem (configuraçãoCropBox
)
O próximo passo é cortar de maneira diferente as páginas pares e ímpares de um documento. Então, eu tentei o método explicado emeste outro post no site SuperUser, passando o código PostScript personalizado para o parâmetro -c no GhostScript:
-c "<< /CurrPageNum 1 def /Install { /CurrPageNum CurrPageNum 1 add def
CurrPageNum 2 mod 1 eq {28 0 translate} {} ifelse } bind >> setpagedevice"
Esse método muda as páginas ímpares de 28 pt e não faz nenhum para as páginas pares. Portanto, tentei modificar isso, passando CropBox (s) (os espaços reservados% s são substituídos por coordenadas apropriadas em umsprintf
frase):
-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"
Aqui está o comando completo executado em um arquivo pdf de 4 páginas:
"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, eu recebo um erro, porque[/CropBox...
não é um código PS válido.
Error: /typecheck in --.postinstall--
EDIT para esclarecer:
Então, minha pergunta é: como posso passaro equivalente a duas CropBox (s) - para páginas ímpares e pares - para o código PostScript mostrado acima? Ou, existe outro método para conseguir issocom o GhostScript da linha de comando?
Obviamente, eu sei que o CropBox não é um código válido PostScript, mas o que são alternativas?