Ghostscriptを使用してPDFドキュメントを印刷用のPCLに変換します。最近、印刷する前にすべてのページを縦向きに回転させる必要があるという追加の要件があります。次のコマンドとpostscript関数でGhostscriptを使用してこれを行う方法を見つけました。
"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"
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
問題は、この関数がすべてのページサイズを文字サイズに置き換えることです。私の文書は時々合法またはA4です。この関数を変更して、横向きのサイズを対応する縦向きのサイズに置き換えようとしましたが、機能するポストスクリプトを作成できませんでした。次の擬似コードに相当する追記を作成するには、正しい方向を指す必要があります。
for(each page)
{
if(PageSize == [792 612])
PageSize = [612 792];
}
ページを回転させるGhostscript以外の方法があることは承知していますが、これを機能させることができれば、プロセスにうまく適合し、パフォーマンスが低下することはありません。
これが私のPDFファイルの1つのサンプルです: Sample1.pdf