% a2ps text file | lpr
% a2ps text file > outfile.ps
% psnup -2 ps file | lpr
% psnup -2 ps file > outfile.ps
gs -q -sDEVICE=pswrite -dNOPAUSE -dBATCH -sOutputFile=ファイル名 PSfile1 PSfile2 ...
psmultiを使う。 psmulti-dna 1.0 を使用すれば、perl5でも普通に使うことができる。
psmulti input1.ps input2.ps ... -o output.ps
-nodecor | 枠をつけない |
-pages (1,2,4..) | 1枚に何ページ入れるか。 |
-o | 出力ファイル名 |
-p | 縦長にする(portrait) |
-l | 横長にする(landscape) |
-select | 出力するページを指定する。 |
-reverse | 逆順にする。 |
ただし、そのままではperl5で使えないので、少し手を加えなければならない。
パッチを当てるか、以下の変更をする。
/usr/bin/perl が perl5 になってしまって psmulti が動かなくなったけど、 /usr/local/lib/psmulti/pspp-util.pl の 91 行と 104 行の @ の前に \ を入れれば一応動いているようだ。
パッチを当てる場合、 うにっくす ちっぷす 出紹介されているパッチを当てましょう。
ただ、研究室の環境では正常に印刷されなかった。
両面印刷をしたい。
ということでツールをつくりましょう。 それぞれ、Postscriptのコマンドを、psファイルの先頭に書き込みます。
縦長の紙の場合は、
%! << /Duplex true /Tumble false >> setpagedevice
%! << /Duplex true /Tumble true >> setpagedevice
これにしたがってperlで書いてみると、 横長の場合のスクリプト、 縦長の場合のスクリプトとなる。 もっとうまくかけるでしょう。私に教えてください。
オプションで縦長、横長を切り替えられるようにしても良いかもしれない。 そこいらはご自分でお願いします。
できるだろう。 今まで確認したところでは、
%%BeginDocument: figures/geom-v2.ps
.
.
.
%%EndDocument
などのように囲まれている部分を取り出すことができれば 画像として再利用することができる。 ただ、そのままでは大きさなどの情報が足りていないので、 ps2epsiなどを利用して整形してやる必要がある。
詳しくは、pscut.plを参照のこと。
psnupはpsutilsという、PostScriptファイルを扱うツール群の一つで、 psutilsに覚え書きを書いた。