[HOME] > PC-UNIX Tips > PostscriptPrinterの設定
Created: 2000.01.23
PC-UNIX Tips
今年最初の取り組みですが、昨年購入したプリンタに、 Postscript形式ファイルを印刷する設定です。ただ、はっきり言って 今回もちょっと無茶なことををやっています:-)皆さんは、ちゃんと 確認してからやってください....。
昨年、やっとプリンタを購入しました。当初は、「印刷なんか、せーへん。 紙ももったいないし、データはファイルを直接見たらええんじゃ。」と、 プリンタは買いませんでした。
しかし、年賀状印刷、また携帯には、やはり紙ベースが一番ってことで、
あっさりポリシーを翻し(私は朝令暮改のB型:-)、購入の運びとなりました。
「印刷スピードは遅くてもええけど、カラーがええなあ。でも、やっぱり安い
やつ。」ってことで、Canon BJC-430J Liteを購入しました。
# 最近は、印刷スピードがあまりにも遅いので、ちょっと後悔していますが...。
また、Linuxで利用するプリンタを購入する場合は、 パラレルポートプリンタの対応デバイス情報がまとめられている、 LinuxPralellPortHomePageを参考にしてください。
本体との接続は、パラレルケーブルで接続してます。環境をまとめておきます。
Linuxでプリンタを利用する場合には、場合によってはカーネルを再構築する 必要があります。私の場合は、カーネルを再構築しました。以下に手順を まとめます。
Pararellプリンタを利用できるようにカーネルを再構築する。
# cd /usr/src/linux
# make config
...............
*
* Character devices
*
...............................
Parallel printer support (CONFIG_PRINTER) [Y/m/n/?]
...............................
# make depend
# make clean
# make zlilo
# rdev -R /vmlinuz 1
# reboot
/etc/rc.d/rc.inet2でlpdを起動するように設定。
.........
IN_SERV="lpd"
.........
変更後に、dmesg出力確認。
Serial driver version 4.13 with no serial options enabled
tty00 at 0x03f8 (irq = 4) is a 16550A
tty01 at 0x02f8 (irq = 3) is a 16550A
lp1 at 0x0378, (polling)
PS/2 auxiliary pointing device detected -- driver installed.
Japanese Printing mini HOWTOが非常に参考なりますが、 プリンタに印刷する場合、プリンタがもつプリンタ制御コードと呼ばれる コード体系に変換してやる必要があります。テキストファイルをそのまま 印刷すると、日本語などが文字化けして印刷されてしまいます。
そこで、プリンタ設定で、テキストファイルの文字コードを利用するプリンタ にあったプリンタ制御コードに変換するフィルタを設定する必要があります。 フィルタが、日本語(EUC,JISなど)文字コードをプリンタ制御コードに変換して くれます。
/etc/printcapでプリンタに関する様々な設定(フィルタ設定など)を 記述します。 今回は、Canon BJC-430J-Liteですので、フィルタに/usr/lib/lpfを 利用しています。 以下に、/etc/printcapを示します。
# 実は、このプリンタ制御コードがわからず、最初はEpson製プリンタで
# 採用されれている/usr/lib/escpfを使用していました....。
# でも、/usr/lib/lpfで本当にええのか、ちょっと自信ないです....。
lp|Canon BJC-430J Lite:\
:lp=/dev/lp1:\
:sh:mx#0:\
:if=/usr/sbin/lpf:\
:of=/usr/sbin/lpf:\
:sd=/var/spool/lpd/lp1:\
:lf=/var/spool/lpd/lp1/lp-err:
プリンタデーモン(lpd)が利用するスプール用ディレクトリを 作成します。
# mkdir -p /var/spool/lpd/lp1
# chown -R root.lp /var/spool/lpd
# chmod -R 755 /var/spool/lpd
/etc/printcapを修正した後は、設定を反映させるために、プリンタ デーモンを再起動します。
# lpc restart all
% lpr test.txt
これが一番苦労しましたX-) やはり、知識不足が原因でしたが、特に gsでPostscript形式ファイルにフィルタをかける点、フォント設定(VFlib)に ついて、理解に苦しみました。
# 実は、まだ完全には理解できてません...。
今回、もっともあぶない作業が、この作業です。
次以降で説明する作業をやってみたのですが、どーも参考にしている書籍や HOWTOの説明とファイルパスなどが異なったりしていて設定がやりにくかったの で、手元にあったPJE-0.1のCD-ROMからgs,gv,vflibなどを手動で(おいおい)、 インストールしてしまいました(自爆)。要は、単にgunzip + tarでコピーしただ けでですが、必要なライブラリなど泥縄的にインストールしています。ですんで、 環境がむちゃくちゃになった可能性があります。真似しないでください...。
GhostScript(gs)が使用する日本語フォントに、ベクトルフォントを ビットマップデータに変換するVFlibを設定します。 今回は、VFlibが使用するフォントにTrueTypeフォントなどは利用してい ません。利用する場合は、/etc/vfontcapを設定する必要があるそーです。
# cd /usr/local/share/ghostscript/3.33/kanji
# ln -s vflib.ps kconfig.ps
とりあえず、ここで gs で日本語を含むPoscscriptファイルを 表示してテストしてみます。
% /usr/local/bin/gs /usr/local/share/ghostscript/3.33/kanji/article9.ps
プリンタドライバ(たぶん....)の設定を、 /usr/local/share/ghostscript/3.33/dmp_site.psファイルに記述 します。
BeginConfig
%%%%%%%%%%%%%%%%%%%%%% Standard user cusomizations %%%%%%%%%%%%%%%%%%%%%
%%% Modified by kabada for PS Print (2000.01.23) %%%
%/printer (escp_24.src)
/printer (/usr/local/lib/prtcfg/src/bj_10v48.src)
/margin [ 3.675 mm 12.7 mm 0.0 mm 0.0 mm ]
/offset [ 0.0 mm -4.0 mm ]
%%% END %%%
% horizontal / vertical
% /resolution [ 180.0 180.0 ]
% horizontal / vertical
% /offset [ 0.0 0.0 ]
% width / height
% /defaultsize [ 8.0 in 11.0 in ]
% width / height
% /maxsize [ 8.0 -1 ]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
EndConfig
PSファイルをプリンタ制御コードに変換するフィルタをシェルで 作成します。/usr/local/lib/gsf(755)として作成しています。
#!/bin/sh
/usr/local/bin/gs -q -dNOPAUSE -sDEVICE=dmprt -r360 \
-sPAPERSIZE=a4 -SOutputFile=- -
exit 0
テキストファイル印刷設定と同様に、/etc/printcapに設定を 追加します。
# PS printer entry
ps|gs|GhostScript printer:\
:sh:mx#0:lp=/dev/lp1:\
:if=/usr/local/lib/gsf:\
:sd=/var/spool/lpd/ps:\
:lf=/var/spool/lpd/ps/error-log:
こちらも、テキストファイル印刷設定と同様に、プリンタデーモン (lpd)が利用するスプール用ディレクトリを作成します。
# mkdir /var/spool/lpd/ps
# chown root.lp /var/spool/lpd/ps
# chmod 755 /var/spool/lpd/ps
/etc/printcapを修正した後は、設定を反映させるために、プリンタ デーモンを再起動します。
# lpc restart all
% lpr -Pps article9.ps
今回は、フォントやプリンタに関する知識が貧弱で、苦労しました。また、 現在の環境がむちゃくちゃになった可能性もあります:-)いずれは、最新の パッケージで再構築するつもりなので、今回はよしとしてますが......。
まっ、何はともあれ、テキストファイル、Postscriptファイルともちゃんと 印刷できています。NetscapeNavigatorはPS形式でプリンタにデータを渡す ので便利に使ってます。
PC-UNIX Tips
Written by kabada