J'utilise Ghostscript pour convertir des documents PDF en PCL pour l'impression. Récemment, j'ai l'exigence supplémentaire que toutes les pages doivent être tournés vers Portrait avant l'impression. J'ai trouvé un moyen de le faire en utilisant Ghostscript avec la commande suivante et la fonction postscript.Ghostscript rotate pages
"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"
Contenu 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
Le problème est que cette fonction remplace toutes les tailles de page avec la taille de la lettre. Mes documents sont parfois légaux ou A4. J'ai essayé de modifier cette fonction pour remplacer les tailles de paysage avec leur contrepartie portrait, mais je n'ai pas réussi à produire postscript fonctionnel. J'ai besoin d'être pointé dans la bonne direction pour produire l'équivalent postscript du pseudo code suivant.
for(each page)
{
if(PageSize == [792 612])
PageSize = [612 792];
}
Je suis conscient qu'il existe des moyens non-Ghostscript de rotation des pages, mais si je peux obtenir ce travail il cadrerait bien dans mon processus et ne serait pas réduire les performances.
Voici un échantillon d'un de mes fichiers pdf: Sample1.pdf
J'ai essayé ce script et il n'a pas produit d'erreur, mais il n'a pas non plus fait pivoter les pages. Voici un exemple d'un fichier pdf d'entrée. [https://docs.google.com/open?id=0B2LzHaZ9pUynWXc2X0J3M0RvN28](https://docs.google.com/open?id=0B2LzHaZ9pUynWXc2X0J3M0RvN28) – Zig158