1

ghostscriptを使用して、大きな図面(A0まで、場合によってはそれ以上)をA3プリンターに印刷したいと思います。

gs -o - -sDEVICE=pdfwrite -r1200x1200 -sPAPERSIZE=a3 -f
/S/tmp/SamplePDFnewStamp.pdf | gs -o resized.pcl -sDEVICE=ljet4
-g7012x4961 -dPDFFitPage -

A3ポートレートペーパーでA4ランドスケープを取得します。私も回転しようとしました:

gs -sOutputFile="-" -sDEVICE=pdfwrite -r1200x1200 -sPAPERSIZE=a3 -d
-dBATCH -dNOPAUSE -dAutoRotatePages=/None -dPDFFitPage -c "<</Orientation 1>> setpagedevice 90 rotate 0 -595 translate" -f
/S/tmp/SamplePDFnewStamp.pdf -c quit | gs -o resized.pcl
-sDEVICE=ljet4 -g7012x4961 -dPDFFitPage -

同じ結果が得られます。

4

2 に答える 2

1

PDFファイルを見ずにコメントすることは実際には不可能ですが、そこで使用しているコマンドラインオプションの多くは、現在の組み合わせでは意味がありません。

私が最初にすることは、少なくとも問題を調査している間は、そのようなコマンドのパイプを停止することです。あなた(そして他の人)が中間のPDFファイルを見ることができるようにする2つの段階としてそれをしてください。

第二に、私はあなたがあなたがやろうとしているように見えることをあなたができるとは思わない。gsの最初の呼び出しによって生成されたPDFを2番目の呼び出しにパイプしようとしているようです。動作する方法がわかりません。pdfwriteデバイスは、外部参照テーブルを作成するためにファイルを検索する必要があります。少なくとも現在のバージョンでは、stdoutを使用できません。どのバージョンのGhostscriptを使用していますか?

また、このポイントがわかりません。なぜPDFを取得し、そこから新しいPDFを作成してから、2番目のPDFをレンダリングするのでしょうか。オリジナルをレンダリングしてみませんか?

メディアサイズが固定されていることをGhostscriptに通知していないため(-dFIXEDMEDIAを使用)、指定しているメディアサイズスイッチはいずれも効果がありません。その結果、PDFインタープリターは、メディアサイズをPDFファイルのMediaBoxと同じになるように設定します。同様の問題は、PostScriptを送信し、PDFファイルをレンダリングするときにGhostscriptの動作を変更することを期待する場合にも当てはまります。

pdfwriteの解像度を設定することはお勧めできません。また、一般的には効果がありません。効果がある場合でも、デバイスの解像度に設定したくない場合があります(-g値は、これも1200 dpiデバイスではないことを示しているようです)。解像度が持つ唯一の効果は、PDFで表現できないため、オブジェクトを画像にレンダリングする必要がある場合です。プリンタの解像度で画像を作成する必要はありません。通常、解像度の4分の1から2分の1で十分です。

サンプルのPDFファイルを共有したい場合は、向きの問題を解決する方法を説明できる場合があります。PCLに進む前に、なぜpdfwriteを実行しているのかを説明する必要がありますが、その理由はわかりません。

これ:

gs -sDEVICE=pdfwrite -sOutputFile=\temp\out.pdf -dDEVICEHEIGHTPOINTS=2386.08 -dDEVICEWIDTHPOINTS=1685.7600 -dFIXEDMEDIA -dPDFFitPage SamplePDFnewStamp.pdf

元のPDFファイルを取得し、90度回転したPDFファイルを生成します。私がそうするなら:

gs -sDEVICE=ljet4 -sOutputFile=\temp\out.pcl \temp\out.pdf

適切なメディアサイズでGhostPDLによって処理されると、希望どおりに動作するように見えるPCLファイルを取得します。

印刷する実際のデバイスがないため、試していませんが、次のことを期待しています。

gs -sDEVICE=ljet4 -sOutputFile=\temp\out.pcl -dDEVICEHEIGHTPOINTS=2386.08 -dDEVICEWIDTHPOINTS=1685.7600 -dFIXEDMEDIA -dPDFFitPage SamplePDFnewStamp.pdf

1つのステップで同じファイルを生成します。

これが結果です

于 2012-11-27T08:31:49.360 に答える
0

私は解決策を見つけました:


gs -q -sDEVICE = ljet4 -sOutputFile = out.pcl -dFIXEDMEDIA -dPDFFitPage -sPAPERSIZE = a3 \
-c " <</Install {-1 -1 scale -843 -1192 translate}>>setpagedevice"
-f SamplePDFnewStamp.pdf -c quit

于 2012-11-29T16:45:42.950 に答える