プリンタ設定


プリンタ設定について

  • FreeBSDでプリンタを使うのはLinuxに比べると結構大変でした。やっとpsファイルとテキスト(英語のみ)を印刷できる様になりました。psファイルはあまり使わないのでありがたみは無いのですが・・。ブラウザの表示をそのまま印刷したいのですが、どうしたらいいのか研究中です。
  • 「パワーアップBSD(平成13年4月発行)」の記事「FreeBSDによるプリンタ環境のセットアップ」を参考にしました。


lpdの起動

  • FreeBSD4.2ではデフォルトではlpdは起動時に実行されない様になっています。そこで、/etc/rc.confに以下の様に設定を追加して、lpdが起動時に実行される様にします。

    【/etc/rc.conf】
    (下記の行を追加)
    lpd_enable="YES"
    


Ghostscriptによる確認

  • 私の場合、既に「Ghostscript 6.01」がインストールされていました。特に意識していませんでしたが、FreeBSD4.2のインストールオプションの選択時点で選ばれていた様です。

  • Ghostscriptのヘルプでサポートされているプリンタを確認します。

    %gs -h
    Aladdin Ghostscript 6.01 (2000-03-17)
    Copyright (C) 2000 Aladdin Enterprises, Menlo Park, CA.  All rights reserved.
    Usage: gs [switches] [file1.ps file2.ps ...]
    Most frequently used switches: (you can use # in place of =)
     -dNOPAUSE           no pause after page   | -q       `quiet', fewer messages
     -gx  page size in pixels   | -r  pixels/inch resolution
     -sDEVICE=  select device         | -dBATCH  exit after last file
     -sOutputFile= select output file: - for stdout, |command for pipe,
                                             embed %d or %ld for page #
    Input formats: PostScript PostScriptLevel1 PostScriptLevel2 PDF
    Available devices:
       appledmp iwhi iwlo iwlq hl7x0 bj10e bj200 bjc600 bjc800 lbp8 lips3 m8510
       coslw2p coslwxl uniprint lj250 declj250 ap3250 epson eps9mid eps9high
       lp8000 lq850 epsonc st800 stcolor lp2563 dnj650c deskjet djet500 cdeskjet
       djet500c cdjcolor cdjmono cdj500 cdj550 cdj670 cdj850 cdj880 cdj890
       cdj1600 laserjet ljetplus ljet2p ljet3 ljet3d ljet4 ljet4d lj4dith cljet5
       cljet5c cljet5pr lj5mono lj5gray pj pjetxl pjxl paintjet pjxl300 pxlmono
       bbox pxlcolor ibmpro jetp3852 imagen fs600 lxm5700m cp50 necp6 oce9050
       oki182 okiibm r4081 sj48 bmpmono bmpgray bmp16 bmp256 bmp16m bmp32b
       bmpsep1 bmpsep8 ccr cgmmono cgm8 cgm24 cif dfaxhigh dfaxlow faxg3 faxg32d
       faxg4 miff24 inferno jpeg jpeggray mgrmono mgrgray2 mgrgray4 mgrgray8
       mgr4 mgr8 pcxmono pcxgray pcx16 pcx256 pcx24b pcxcmyk pdfwrite bit bitrgb
       bitcmyk plan9bm pbm pbmraw pgm pgmraw pgnm pgnmraw pnm pnmraw ppm ppmraw
       pkm pkmraw pksm pksmraw pngmono pnggray png16 png256 png16m psmono psgray
       psrgb pswrite epswrite sgirgb sunhmono t4693d2 t4693d4 t4693d8 tek4696
       tiffcrle tiffg3 tiffg32d tiffg4 tiff12nc tiff24nc tifflzw tiffpack x11
       x11alpha x11cmyk x11cmyk2 x11cmyk4 x11cmyk8 x11gray2 x11gray4 x11mono
       x11rg16x x11rg32x hpdj nullpage
    Search path:
       . : /usr/local/share/ghostscript/6.01/lib :
       /usr/local/share/ghostscript/fonts
    For more information, see /usr/local/share/ghostscript/6.01/doc/Use.htm.
    Report bugs to bug-gs@aladdin.com, using the form in Bug-form.htm.
    

  • NEC製「PICTY700」そのものはありませんが、HPからのOEMなので、とりあえずHPの「cdj670」で動きました。以下では、cdj670ドライバの確認にため、「/usr/local/share/ghostscript/6.01/examples」にある虎の絵「tiger.ps」を「picty.out」と言うファイルに変換し、プリントしてみました。
    %cp /usr/local/share/ghostscript/6.01/examples/tiger.ps /tmp
    %cd /tmp
    %gs -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=cdj670 -sOutputFile=picty.out tiger.ps
    %lpr picty.out
    


ja-a2psのインストール

  • テキストファイルを印刷するために、ja-a2psをインストールします。
  • 「/stand/sysinstall」を起動し、ja-a2ps-1.44[/usr/ports/japanese/a2ps]をインストールします。


フィルタの作成について

  • PostScriptファイル(*.ps)とテキストファイルを自動的に認識してプリントデータを作成するフィルタスクリプトを準備します。

    【/usr/local/libexec/gsfilter】
    #! /bin/sh
    
    GS='/usr/local/bin/gs -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=cdj670 -sOutputFile=/dev/fd/3 - 3>&1 1>&2'
    
    magic=`/bin/dd ibs=1 count=2`
    
    if [ X"$magic" = 'X%!' ]; then
     (echo -n $magic; /bin/cat) | eval $GS
     status=$?
    else
      (echo -n $magic; /bin/cat) | /usr/local/bin/a2ps-j | eval $GS
     status=$?
    fi
    
    if [ $status -ne 0 ]; then
     exit 2
    fi
    exit 0
    


設定ファイル(/etc/printcap)について

  • 設定ファイル(/etc/printcap)は以下の様になります。
    エントリ「picty」は、Sambaによる共有プリンタ用でフィルタ設定の無いものです。このエントリを追加した経緯は、こちらを参照して下さい。

    【/etc/printcap】
    # 2001.6.24 Hiroshi Nakamura
    # 2001.9.19 add picty
    #
    lp|local line printer:\
    	:sh:sf:mx#0:\
    	:if=/usr/local/libexec/gsfilter:\   <--Ghostscriptフィルタ
    	:lp=/dev/lpt0:\
    	:sd=/var/spool/output/lpd:\
    	:lf=/var/log/lpd-errs:
    
    picty|raw printer:\         <--Sambaによる共有プリンタ用でフィルタ無しとする
    	:sh:sf:mx#0:\
    	:lp=/dev/lpt0:\
    	:sd=/var/spool/output/picty:\
    	:lf=/var/log/lpd-errs:
    

トップへもどる


Copyright (c) 2001 Hiroshi Nakamura. All rights reserved.