LANDISK (HDL-160U) には USB ポートが付いていて, プリンタを接続・共有が出来るわけですが, 私はそういう物をもっていません. そこで考えたのですが, Acrobat もそれなりの値段がしますし, 各 Windows マシンに Ghostscript を入れるのも大変だし, Ghostscript による pdf プリンタを作って共有すると便利かなと思い作って見ました.
なお, うまくいってから思い出しながら書いているので, もしかして必要だったけど書き忘れた何かの手順等があるかもしれません. その際は適当に補間してください.
まず仮想ルート上で Ghostscript をコンパイル・インストールします. こことか, ここを を参考にしたら特に問題なくできちゃいました.
続いて, 本来のルート上に移動させるわけですが, /usr/local/share ディレクトリを掘り, 仮想ルートの /usr/local/share/ghostscript へのシンボリックリンクを置くだけで, gs が単純に動きました. ただ, 私の LANDISK は以前からいろいろツールを入れているので, もしかしたらライブラリが足りないと起動できないかもしれません. その際は, 仮想ルートから必要なライブラリをコピーすればいいと思います.
一応, コンパイルできないという方のために一式を こちらに置いておきます. 使い方は適当な所 (仮に /mnt/hda3/bin/usr/local/share にします) に展開し上記のようにシンボリックリンクを張るだけです.
# mkdir /mnt/hda3/bin # mkdir /mnt/hda3/bin/usr # mkdir /mnt/hda3/bin/usr/local # mkdir /mnt/hda3/bin/usr/local/share # mv gsset.tar.gz /mnt/hda3/bin/usr/local/share # cd /mnt/hda3/bin/usr/local/share # zcat gsset.tar.gz | tar xvf - # rm gsset.tar.gz # mount -o rw,remount / # mkdir /usr/local/share # ln -s /mnt/hda3/bin/usr/local/share/ghostscript /usr/local/share/ghostscript # mount -o ro,remount / |
続いて LANDISK 内に仮想プリンタを作ります.
pdf:\ :sd=/mnt/hda3/spool/lpd/pdf:\ :mx#0:\ :sh:\ :lp=/dev/null:\ :if=/usr/local/share/ghostscript/pdffilter: |
# mkdir /mnt/hda3/spool/lpd/pdf # chown lp /mnt/hda3/spool/lpd/pdf # chgrp lp /mnt/hda3/spool/lpd/pdf # chmod 770 /mnt/hda3/spool/lpd/pdf |
#!/bin/sh outputdir=/mnt/hda3/share/disk/PdfPrinter/ t=$outputdir"tmp.$$" f=$outputdir`date +%y%m%d%H%M%S.pdf` /usr/local/share/ghostscript/gs -dCompatibilityLevel=1.4 -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite "-sOutputFile=$t" -dCompatibilityLevel=1.4 -c .setpdfwrite - mv $t $f /bin/chmod 666 $f |
# mkdir /mnt/hda3/share/disk/PdfPrinter # chmod 777 /mnt/hda3/share/disk/PdfPrinter |
# /etc/rc.d/init.d/S60lpd start |
これを sample.ps という名でダウンロードし,
# lpr -Ppdf sample.ps |
続いて, このプリンタをネットワークプリンタとして見えるように設定します.
/etc/samba.d/smb.conf に以下のフレーズを追加します.
[pdf] comment = PDF Printer printable = yes path = /mnt/hda3/spool/samba/lp print command = /usr/bin/lpr -r -Ppdf %s lpq command = /usr/bin/lpq -Ppdf postscript = yes guest ok = no read only = yes |
こちらの知見からこのフレーズは /var/lock/ の下のどこかに書いておかないと web による管理を行うと 消えるかもしれません (私は web 管理機能は切ってますので分かりません).
# /etc/rc.d/init.d/S91samba restart |
さて, 最後に各 Windows マシンでプリンタの設定を行う番です. WinXp として話を進めます.
正直言って pdf ファイルの質はイマイチです. Distiller が吐く pdf ファイルに比べて, 1.5 倍程大きいですし, 字も汚く, フォントによっては表示されず, さらに日本語選択がおかしい物に なります.
その辺はいろいろ設定を工夫したり, 便利なツール を使うとある程度改善できると思いますが, 無いよりマシ程度の物と考えていた方がいいでしょう.