>>
To Be Continue
|
FreeBSD On ThinkPad X60
Epson Printer |
従来の lpr を利用して Epson LP-7000C プリンタから印刷する方法。
印刷には Epson Avasys が公開している
Linux 用のドライバを利用する。
必要なソフトウェアのインストール
ports/packages を利用して以下のソフトウェアをインストールする。
- shells/bash
- print/ghostscript-gnu
- print/ghostscript-gnu-commfont
- japanese/ghostscript-gnu-jpnfont
- print/psutils-a4
- japanese/nkf
- japanese/a2ps
Linux 用ドライバの取得
Epson Avasys のペイジより Linux 用のドライバ一式をダウンロードし展開する。
取得したドライバの修正
取得したドライバに含まれる lp7000c_lprwrapper.sh、
pstolp7000c.sh の以下の内容を修正する。
- shell パスの修正 同梱されている shell script ファイルは bash 独自の機能を使用した shell script なのだが、 Linux 用の wrapper script なので 1行目の shell のパスが/bin/shとなっているために /usr/local/bin/bash に変更する。
- コマンドのパス変更 script 内部で実行しているコマンドのパスをフルパスに変更する。
- ghostscript の実行オプション変更 script 内部で実行している gs (1) のオプションのうち、 -dPARANOIDSAFER を指定するとエラーとなるので、 -dSAFER に変更する。
- プリントオプションを指定するファイルのパス名変更 プリントオプションを指定するオプションを格納したファイルのパスを FreeBSD の流儀に合わせるために、 /etc/epkowa/lp7000c から /usr/local/etc/lp7000c.conf に変更する。
*** lp7000c_lprwrapper.sh.ORIG Mon Nov 1 17:14:39 2004 --- lp7000c_lprwrapper.sh Fri Aug 11 21:14:56 2006 *************** *** 1,4 **** ! #!/bin/sh # lp7000c_lprwrapper.sh -- LPR(ng) wrapper filter for lp7000c-ESC/PageS-filter # Copyright (C) SEIKO EPSON CORPORATION 2004. # --- 1,4 ---- ! #!/usr/local/bin/bash # lp7000c_lprwrapper.sh -- LPR(ng) wrapper filter for lp7000c-ESC/PageS-filter # Copyright (C) SEIKO EPSON CORPORATION 2004. # *************** *** 170,180 **** tee0="" && test "$DEBUG" = "on" && tee0="tee /tmp/lp7000c_lprwrapper.ps | " ! sizeadjust="psresize -q $adjust_args | " && test x"$THROUGH" = x"on" && sizeadjust="" ! filtercmd="pstolp7000c.sh $filter_args" cmd="$tee0 $sizeadjust $filtercmd" ! sh -c "$cmd" msglog "$cmd" --- 172,182 ---- tee0="" && test "$DEBUG" = "on" && tee0="tee /tmp/lp7000c_lprwrapper.ps | " ! sizeadjust="/usr/local/bin/psresize -q $adjust_args | " && test x"$THROUGH" = x"on" && sizeadjust="" ! filtercmd="/usr/local/bin/pstolp7000c.sh $filter_args" cmd="$tee0 $sizeadjust $filtercmd" ! /usr/local/bin/bash -c "$cmd" msglog "$cmd" *** pstolp7000c.sh.ORIG Mon Nov 1 17:14:39 2004 --- pstolp7000c.sh Fri Aug 11 21:14:46 2006 *************** *** 1,4 **** ! #!/bin/sh # pstolp7000c.sh -- PostScript to lp7000c-ESC/PageS-filter # Copyright (C) SEIKO EPSON CORPORATION 2004. # --- 1,4 ---- ! #!/usr/local/bin/bash # pstolp7000c.sh -- PostScript to lp7000c-ESC/PageS-filter # Copyright (C) SEIKO EPSON CORPORATION 2004. # *************** *** 204,212 **** msglog "collatefile=$collatefile" msglog "numcopies=$numcopies" ! rotator="" && test "$useRotator" = "on" && rotator="| pstops -q $pstops1 $pstops2" ! rasterizer="| gs -q -dBATCH -dPARANOIDSAFER -dNOPAUSE $gs1 $gs2 -sOutputFile=- -" ! escpagesfilter="| lp7000c $lp7000c" && test "$PSOUT" = "on" && escpagesfilter="" cmd="\ cat $collatefile \ --- 204,213 ---- msglog "collatefile=$collatefile" msglog "numcopies=$numcopies" ! rotator="" && test "$useRotator" = "on" && rotator="| /usr/local/bin/pstops -q $pstops1 $pstops2" ! #rasterizer="| /usr/local/bin/gs -q -dBATCH -dPARANOIDSAFER -dNOPAUSE $gs1 $gs2 -sOutputFile=- -" ! rasterizer="| /usr/local/bin/gs -q -dBATCH -dSAFER -dNOPAUSE $gs1 $gs2 -sOutputFile=- -" ! escpagesfilter="| /usr/local/bin/lp7000c $lp7000c" && test "$PSOUT" = "on" && escpagesfilter="" cmd="\ cat $collatefile \
必要なファイルのコピー
印刷に必要な以下のファイルをコピーする。
- /usr/local/bin/lp7000c_lprwrapper.sh
- /usr/local/bin/pstolp7000c.sh
- /usr/local/bin/lp7000c
- /usr/local/etc/lp7000c.conf
マジックフィルタを準備する
Epson Avasys から提供されている script は PostScript ファイルの印刷しか対応していないので、 通常のテキストファイルを印刷するために a2ps(1) コマンドを 自動で実行するためのマジックフィルタを作成し、 /usr/local/bin/ps2escf という名称で保存する。
#!/bin/sh /usr/bin/expand -t 4 | /usr/local/bin/nkf -e | /usr/bin/tr '\015' '\012' | /usr/bin/awk '{ if(NR == 1) if(match($1, /^\%\!/)) filter = "/bin/cat"; else filter = "/usr/local/bin/a2ps-j -mcp"; print | filter; }' 2> /dev/null | /usr/local/bin/lp7000c_lprwrapper.sh
printcap の設定
マジックフィルタをフィルタプログラムに指定した
/etc/printcap を作成して lpd (8) を再起動する。
ここでは TCP/IP 接続されたリモートプリンタを想定しているが、
USB やパラレルポートに直接接続されている場合も基本は同様である。
lp|lp-7000c|EPSON LP-7000C:\ :lp=/dev/null:\ :rm=プリンタの FQDN/IP アドレス :sd=/var/spool/lpd:\ :lf=/var/spool/lpd/lpd-errs:\ :if=/usr/local/bin/ps2escf:\ :rp=raw:\ :sh:以上で Epson LP-7000C から高品質のカラー印刷が可能となる。
Copyright © 2007-2010 Mitzyuki IMAIZUMI,
All Rights Reserved.
Last Update: 4 Feb. 2010