Uso Ghostscript para convertir documentos PDF a PCL para imprimir. Recientemente, tengo el requisito adicional de que todas las páginas se deben rotar a Vertical antes de imprimir. He encontrado una manera de hacerlo usando Ghostscript con el siguiente comando y la función PostScript.Ghostscript rotar páginas
"C:\Program Files (x86)\gs\bin\gswin32c.exe" "-dNOPAUSE" "-dNOPROMPT" "-dBATCH" "-sDEVICE=pxlmono" "-Ic:\Program Files (x86)\gs\fonts\;c:\Program Files (x86)\gs\lib\;c:\Program Files (x86)\gs\lib\;" "-r300" "-sOutputFile=C:\EXPORTFILE_e542e04f-5e84-4c8e-9b41-55480cd5ec52.cache" "rotate612x792.ps" "C:\EXPORTFILE_3a5de9da-d9ca-4562-8cb6-10fb8715385a.cache"
Contenido de rotate612x792.ps
%! Rotate Pages
<< /Policies << /PageSize 5 >>
/PageSize [612 792]
/InputAttributes currentpagedevice
/InputAttributes get mark exch {1 index /Priority eq not {pop << /PageSize [612 792] >>} if } forall >>
>> setpagedevice
El problema es que esta función sustituye a todos los tamaños de página con tamaño de letra. Mis documentos son a veces legales o A4. He intentado modificar esta función para reemplazar los tamaños de paisaje con su contraparte vertical, pero no he podido producir una posdata funcional. Necesito apuntar en la dirección correcta para producir el equivalente postscript del siguiente pseudo código.
for(each page)
{
if(PageSize == [792 612])
PageSize = [612 792];
}
Soy consciente de que hay maneras no Ghostscript de páginas de rotación, pero si puedo conseguir que esto funcione que encajaría muy bien en mi proceso y no reduciría el rendimiento.
Este es un ejemplo de uno de mis archivos pdf: Sample1.pdf
Intenté esta secuencia de comandos y no produjo un error, pero tampoco rotó las páginas. Aquí hay una muestra de un archivo pdf de entrada. [https://docs.google.com/open?id=0B2LzHaZ9pUynWXc2X0J3M0RvN28](https://docs.google.com/open?id=0B2LzHaZ9pUynWXc2X0J3M0RvN28) – Zig158