my Top page便利な大福帳ドジ話の目次前のドジ話|次のドジ話

Canon BJC-400J でカラー印刷まで出来た!

  1999年06月14日(月)・・・・(11月7日更新:画像を追加)

  ここ2週間程、Canon BJC-400J プリンターの設定に苦戦していました。テキストファイル
は以前から印刷はできていたのですが、どうしても Ghostscript を使った Postscript ファ
イルの印刷が出来ずにいました。今日、ようやくその印刷に成功しました。
テストページの印刷をしましたが、

           綺麗!綺麗!綺麗!

の一言です。これまで MS-Windows xx でも印刷を行ってきましたが、これほど綺麗な印刷が
出来たことはありませんでした。本当に綺麗な印刷結果です。
colorcir.psgolfer.pstiger.ps
dora# cd /usr/local/lib/ghostscript;ls
Fontmap         font2c.ps       gs_init.ps      landscap.ps     quit.ps
README          fonts           gs_lev2.ps      level1.ps       showpage.ps
bdftops.ps      gamma15.ps      gs_statd.ps     mirrorA4.ps     testpage.ps
decrypt.ps      gamma20.ps      gs_sym_e.ps     prfont.ps       type1ops.ps
dmp_init.ps     gamma30.ps      gs_type0.ps     ps2ascii.ps     uglyr.gsf
dmp_site.ps     gs_dbt_e.ps     gslp.ps         ps2epsi.ps      wrfont.ps
doc             gs_dps1.ps      impath.ps       ps2image.ps
examples        gs_fonts.ps     kanji           pstoppm.ps
dora# lpr -P ps testpage.ps
dora# 
で印刷できました。
そして遂に、今日はカラー印刷までできました。乾杯です!
一点突破ができると後は速いものですね。
昨年、偶然印刷ができることが判ってから、ほぼ1年かかりましたが、ようやくここまで来ました。

dora# cd /usr/local/lib/ghostscript/examples ; ls
cheq.ps         colorcir.ps     golfer.ps       tiger.ps
chess.ps        escher.ps       snowflak.ps
dora# lpr -P psc colorcir.ps
dora# 

で綺麗なカラーのテストページを印刷することができました。プリンターより次第に紙が排出されてき、
カラーのリングが見えた時は嬉しさ一杯になりました。

カラーのサークルと
Red Green Blue Yellow Pink Cyan White
の各色が綺麗に印刷されています。
又、GIMP(通称 Photoshop killer) を使ってこの Webにある子どものJPG 写真を
 ps ファイルに変換し、

> lpr -P psc fishjpg.ps
>

と印刷しました。綺麗な写真に印刷できています。マシンがだんだん答えてくれ
るようになると嬉しいものですね。 v(^ ^)v

プリンター設定として、
    Ghostscript file 用には GNU の ja-vfghostscript-2.6.2 
    Txt file 用には ja-escpf-0.4b2
をパッケージよりインストールしています。
Canon BJC-400J 用のデバイスドライバーとしては、
  モノクロ:bjc600j
  カラー  :bjc600jc
を使っています。これらのデバイスドライバーを知るには、次のように
> gs -h
Ghostscript version 2.6.2 (4/19/95)
Copyright (C) 1990-1995 Aladdin Enterprises, Menlo Park, CA.
Usage: gs [switches] [file1.ps file2.ps ...]
Available devices:
    x11 bj10v bj10vh bjc600j bjc600jc cdj500 cdj550 dj505j
    dj505jc dmprt epag300 epag600 epag jj100 lips3 lips4
    lips4c mag16 mag256 mjc180 mjc360 mjc720 mj500c pr150
    pr201 pr1000_4 pr1000 tiffg3 pbm pbmraw pgm pgmraw
    ppm ppmraw bit
Most frequently used switches: (you can use # in place of =)
    @              treat file like part of the command line
                           (to get around DOS command line limit)
    -d[=]   define name as token, or null if no token given
    -f             read this file even if its name begins with - or @
    -gx   set width and height (`geometry'), in pixels
    -I           add prefix to search path
    -q                   `quiet' mode, suppress most messages
    -r              set resolution, in pixels per inch
    -s=    define name as string
    -sDEVICE=   select initial device
    -sOutputFile=  select output file: embed %d for page #,
                           - means stdout, use |command to pipe
`-' alone as a file name means read from stdin non-interactively.
For more complete information, please read the use.doc file.
> 
で判ります。
# このファイルに作成しないといけない *.sh ファイルの記述の仕方も書かれています。

そして、次のように /etc/printcap と、
                   /usr/local/libexec/psprint.sh
                   /usr/local/libexec/pscprint.sh
を記述・作成しています。

-------------- /etc/printcap  ----------------------

#       @(#)printcap    5.3 (Berkeley) 6/30/90
# $Id: printcap,v 1.9 1998/02/04 12:09:06 ache Exp $

#
# This enables a simple local "raw" printer, hooked up to the first
# parallel port.  No kind of filtering is done, so everything you
# pass to the "lpr" command will be printed unmodified.
#
# Remember, for further print queues you're going to add, you have to
# chose different spool directories (the "sd" capability below),
# otherwise you will greatly confuse lpd.
#
# For some advanced printing, have a look at the "apsfilter" package.
# It plugs into the lpd system, allowing you to print a variety of
# different file types by converting everything to PostScript(tm)
# format.  If you don't have a PostScript(tm) printer, don't panic,
# but do also install the "ghostscript" package.
#
# Do also refer to section 7 (Printing) of the handbook.  A local copy
# can be found under /usr/share/doc/handbook/handbook.{html,latin1}.
#
# Banner pages are now suppressed by default.  Remove the :sh:
# capability to turn them back on.
#
# -------------- /etc/printcap  ----------------------
#
# /etc/printcap for Canon BJC-400J
#
canon|local line printer as TEXT printer(Canon BJC-400J):\
                :lp=/dev/lpt0:\
                :sd=/var/spool/output/bjc400j:\
                :if=/usr/local/libexec/escpf:\
                :lf=/var/log/lpd-errs:\
                :sh:\
                :mx#0:

# for Postscript file printing

ps|local line printer as PS printer(Canon BJC-400J):\
                :lp=/dev/lpt0:\
                :sd=/var/spool/output/ps:\
                :if=/usr/local/libexec/psprint.sh:\
                :lf=/var/log/lpd-errs:\
                :sh:\
                :mx#0:

# for Postscript color file printing

psc|local line printer as PS printer(Canon BJC-400J):\
                :lp=/dev/lpt0:\
                :sd=/var/spool/output/psc:\
                :if=/usr/local/libexec/pscprint.sh:\
                :lf=/var/log/lpd-errs:\
                :sh:\
                :mx#0:

# -------------- end of /etc/printcap  ----------------------
lp|local line printer:\
        :sh:\
        :lp=/dev/lpt0:\
        :sd=/var/spool/output/lpd:\
        :lf=/var/log/lpd-errs:

# Sample remote printer.  The physical printer is on machine "lphost".
# NB: you cannot perform any kind of local filtering directly.  If
# you need local filters (e.g. LF -> CR-LF conversion for HP printers),
# create a filter script that recursively calls lpd with another -P
# argument after filtering.
#
#remote|sample remote printer:\
#       :sh:\
#       :rm=lphost:sd=/var/spool/output/lphost:lf=/var/log/lpd-errs:
#
# Simple Russian printer with hardware CP866 character set, output filter
# used for KOI8-R -> CP866 conversion
#
#lp|Russian local line printer:\
#       :sh:of=/usr/libexec/lpr/ru/koi2alt:\
#       :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
------------------------------------------------------------------------------------


--------------------- /usr/local/libexec/psprint.sh  for mono -----------------------
#!/bin/sh
/usr/local/bin/gs -q -r360 -dNOPAUSE -sDEVICE=bjc600j -sOutputFile=- - quit.ps
exit 0
-------------------------------------------------------------------------------------
-------------------  /usr/local/libexec/pscprint.sh for color ---------------------
#!/bin/sh
/usr/local/bin/gs -q -r360 -dNOPAUSE -sDEVICE=bjc600jc -sOutputFile=- - quit.ps
exit 0
-----------------------------------------------------------------------------------

ただ、作成した後、*.sh ファイルには次のように実行権をつけるのを忘れないように。

-rwxr-xr-x  1 root  wheel      97 Jun 14 22:43 pscprint.sh*
-rwxr-xr-x  1 root  wheel      96 Jun 14 00:18 psprint.sh*

あと、それぞれのデバイス用のスプールディレクトリとして、次のものを作ります。
/var/spool/output/bjc400j/
/var/spool/output/ps/
/var/spool/output/psc/

ここまでの準備が済めば、lpc コマンドで各エントリーが働いているのを確かめます。

lpc> restart all
canon:
        no daemon to abort
canon:
        daemon started
ps:
        no daemon to abort
ps:
        daemon started
psc:
        no daemon to abort
psc:
        daemon started
lp:
        no daemon to abort
lp:
        daemon started
lpc> quit
> 

これで、印刷できるようになります。
テスト用の *.ps ファイルは、

# find /usr -name "*.ps"

でいくつも捜せます。

印刷は、

> lpr -P ps tiger.ps
> lpr -P psc colorcir.ps
> lpr -P canon signature

というコマンドで行っております。
私のシグネチュア、虎の顔、雪の結晶、女性ゴルファー、蝶のモザイク、カラー印刷見本、
テストページ見本等がこれで印刷できました。

# PS ファイルってこんなんだったんだなあというのが朧ろげに判りかけてきました。
# PS ファイルのソースからこうした画像が出るなんて印刷するまで想像だに出来ません
# でした。


my Top page便利な大福帳ドジ話の目次前のドジ話|次のドジ話