*CUPSを使用したネットワークプリンタ [#ke8446a2]

RIGHT:更新日&lastmod();

**Vine4.x [#f799bddb]

Vine4.xではEpson LP-8900がデフォルトではない(Vine4.0でも全てをインストールでは入った)のでVine3.2から/usr/share/cups/model/にEpson-LP-8900-lp8900-cups.ppd.gzをコピーする。エプソンコーワからのファイルではなぜかうまく動作しなかった。
Vine4.xではEpson LP-8900がデフォルトではない(&color(red){Vine4.0でも全てをインストールでは入った};)のでVine3.2から/usr/share/cups/model/にEpson-LP-8900-lp8900-cups.ppd.gzをコピーする。エプソンコーワからのファイルではなぜかうまく動作しなかった。

/etc/cups/cupsd.confの

 ##LogLevel info
 LogLevel debug2

あたりを変更すると/var/log/cups/に詳しいlogが出力される

**以前のバージョン [#z536c6a7]

Vine3.0でLP-8900をネットワークで利用する。3.0からプリンタシステムが
LPRing から CUPSになった。幸い、LP-8900はVine3.0では対応しているため
特に新規にドライバやghostscriptはインストールする必要がない。

**プリンタの設定 [#f6bee51a]
URL http://localhost:631にアクセス

管理画面が現れるので、プリンタの追加を選択

プリンタ名:lp-8900 を入れ「続ける」

デバイス名Internet Printing Protocol(http)を選択して「続ける」

URI http://10.3.4.64:631/EPSON_IPP_Printer

この値は、WindowsXPでのテスト印字におけるInternet Portのテスト印字のポート名

ベンダー名は「Epson」機種は「LP-8900」を選択

その後テスト印字を行い。

ホームページの印刷で日本語の確認を行う

LP-8900はモノクロプリンタなので印刷のプリンタのプロパティで
グレースケールを選択する。カラーのままだと
日本語は表示されたが、jpgの画像が横に間延びしてうまく表示されない。

プリンタの設定は/etc/cups/printers.confにある
 # Printer configuration file for CUPS v1.1.21rc1
 # Written by cupsd on 2004年08月19日 08時30分13秒
 <DefaultPrinter lp-8900-1>
 Info
 Location
 DeviceURI http://10.3.4.64:631/EPSON_IPP_Printer
 State Idle
 Accepting Yes
 JobSheets none none
 QuotaPeriod 0
 PageLimit 0
 KLimit 0
 </Printer>

/etc/printcapは以下のように書き換えられた。
 # This file was automatically generated by cupsd(8) from the
 # /etc/cups/printers.conf file.  All changes to this file
 # will be lost.
 lp-8900|:rm=vvine30.ism.co.jp:rp=lp-8900:

/etc/cups/ppdというディレクトリの指定したプリンタ名の設定ファイルがあるので
同じプリンタを使用する場合はこのファイルを名前をプリンタ名にリネームまたは
コピーする

注)Vine3.1ではについてなぜか,EpsonコーワからDownloadしたppdファイルではうまく印刷できない。

デフォルトでインストールされているppdファイルを使用する.
またOpenOffice1.1.4ではデフォルト日本語フォントでは印刷されないので[[ここ:https://wwwism.dyndns.org/hp/linux/opoffice.htm#OpenOffice1.1.4]]を参考にする。 

**コマンド [#v62613d6]

・プリンタの状態(lpstat -p)
 $ lpstat -p
 printer f850 is idle.  enabled since Jan 01 00:00

・プリンタのオプションと現在の設定を確認(lpoptions -p [プリンタ名] -l)
 $lpoptions -p f850 -l
 ProcessColorModel/Color Model: *CMYK Greyscale RGB
 BitsPerPixel/Ghostscript Bits Per Pixel: 1 8 16 *24 32
 MediaType/Media Type: *plain coated transparency
 MediaWeight/Media Weight: *Normal Thick
 PageSize/Page Size: Letter *A4 11x17 A3 A5 B5 Env10 EnvC5 EnvDL EnvISOB5  EnvMonarch Executive Legal
 PageRegion/PageRegion: Letter A4 11x17 A3 A5 B5 Env10 EnvC5 EnvDL EnvISOB5 EnvMonarch Executive Legal
 PrintQuality/Print Quality: Draft *Normal High Low
 Resolution/Resolution: 90x90dpi 180x180dpi *360x360dpi 720x720dpi
 Manual/Sheet Feeder: True *False
 PrintColors/Colours to be used: C CK CM CMK CMY *CMYK CY CYK K KKKK M MK MY MYK
Y YK

・印刷(lpr -P [プリンタ名] [印刷ファイル名])
 $ lpr -P f850 mozilla.ps
または(lp -d [プリンタ名] [印刷ファイル名])
 $ lp -d f850 mozilla.ps
渡すデータはps以外のpdf,jpg,gifでもOK。

・プリンタの状態の確認(lpq -P [プリンタ名])
 $ lpq -P f850
 f850 is ready and printing
 Rank    Owner   Job     File(s)                         Total Size
 active  okada   33      mozilla.ps                      401408 bytes

・Jobキャンセル(lprm [Job番号])
 $ lpr -P f850 mozilla.ps
 $ lpq -P f850
 f850 is ready and printing
 Rank    Owner   Job     File(s)                         Total Size
 active  okada   34      mozilla.ps                      401408 bytes
 $ lprm 34
 $ lpq -P f850
 f850 is ready
 no entries

**CUPSのプリントの流れ [#mcbef47b]

              ---------------------
              |                   |
              | アプリケーション  |
              |                   |
              ---------------------
                        |
                        |ps,pdf,jpg.gif等のデータ
                        |
            ------------------ CUPS ------------------------------
            |           |                                         |
            |    ------------------                               |
            |    |                |   pstops                      |
            |    | Filter1(to ps) |   imagetops                   |
            |    |                |   pdftops                     |
            |    ------------------                               |
            |          |                                          |
 ------     |          |psデータ                                  |
 |    |----------------                                           |
 | gs | RIP(Raster Image Processor)                               |
 |    |----------------                                           |
 ------     |          |Raster画像データ                          |
            |          |                                          |
            |    --------------------------                       |
            |    |                        |    ---------------    |
            |    |  Filter2               |====| PPDファイル |    |
            |    |  (to プリンタデータ)   |    ---------------    |
            |    |                        |                       |
            |    --------------------------                       |
            |          |                                          |
            -------------------------------------------------------
                       |
                       |プリンタデータ
              -----------------------
              |                     |
              |   プリンタ          |
              |                     |
              -----------------------

CUPSの大体の流れは、アプリケーションから、ps,pdf,image等のデータを渡されると
Filter1に通される。ここで、渡されたデータから、PSデータが作成される。次に、
ghostscriptにPIPコマンドで渡され、Raster画像データが作成される。
その後Filter2で、使用するプリンタデータをPPDファイルを参照して作成され、
プリンタに渡される。
CUPSはこれら印刷データ以外にもプリンタの状態をモニタしたり、印刷jobを制御する
スケジュール機能も有している。

**プリンタが未対応の場合 [#q1c75695]

もし、対応していないときは
[[エプソンコーワ:http://avasys.jp/hp/menu000000800/hpg000000738.htm]] からeplaser-cups-ppd-3.1.4.tgz をDownloadする。 

 $ tar zxvf eplaser-cups-ppd-3.1.4.tgz
 $ su
 # cp -a eplaser /usr/share/cups/model/

さらにghostscriptもインストールする必要がある。

ところで、Vine3.0ではインストール時にX関係の開発環境がインストールされない
そこでghostscriptをインストールする前に開発環境をインストールしておく

 VFlib-devel-2.25.2-0vl2.i386.rpm        libart_lgpl-devel-2.3.16-0vl1.i386.rpm
 XOrg-devel-6.7.0-0vl5.i386.rpm          libpng-devel-1.2.5-0vl4.i386.rpm
 XOrg-gl-devel-6.7.0-0vl5.i386.rpm       librsvg2-devel-2.4.0-0vl4.i386.rpm
 Xaw3d-devel-1.5-17vl2.i386.rpm          libungif-devel-4.1.0-13vl1.i386.rpm
 atk-devel-1.6.1-0vl1.i386.rpm           libxml2-devel-2.6.9-0vl1.i386.rpm
 freetype2-devel-2.1.7-0vl4.i386.rpm     pango-devel-1.4.0-0vl1.i386.rpm
 glib2-devel-2.4.4-0vl1.i386.rpm         xmms-devel-1.2.10-0vl2.i386.rpm
 gtk2-devel-2.4.4-0vl2.i386.rpm          zlib-devel-1.1.4-0vl3.i386.rpm
 libtiff-devel-3.5.7-6vl2.i386.rpm

などをインストール。

これらはVine3.0のRPMS.develにある。

***CUPSを再起動 [#pa8fbc6a]
 # /etc/rc.d/init.d/cups restart

**ESP Ghostscriptのインストール [#ae7bceaa]

ESP GhostscriptはCUPSとの連携を考慮したGNU GSの拡張版であり、
“gimp-print”や“cups”といった独自のデバイス・ドライバを含むことに
特徴がある
[[ここ:http://www.cups.org/software.php]]から ESP Ghostscriptを選択してdownload. 

 cups-devel-1.1.21-0vl0.0rc1.i386.rpm
 openssl-devel-0.9.7d-0vl3.i386.rpm
 glib-devel-1.2.10-0vl5.i386.rpm
もインストールしておく。

 $ tar jxvf espgs-7.07.1-source.tar.bz2
 $ cd espgs-7.07.1
 $ configure --with-ijs --with-gimp-print --with-omni --with-x

このままではmake時以下のようなエラーが出る

 ./obj/icc.o(.text+0x2bb): In function `icmAllocStd_malloc':
 icclib/icc.c:400: undefined reference to `rpl_malloc'
 ./obj/gdevifno.o(.text+0xcbd): In function `initwriteimage':
 src/gdevifno.c:650: undefined reference to `rpl_malloc'
 ./obj/dscparse.o(.text+0x11): In function `dsc_init':
 src/dscparse.c:206: undefined reference to `rpl_malloc'
 ./obj/dscparse.o(.text+0xb9c6): In function `dsc_parse_process_colours':
 src/dscparse.c:3995: undefined reference to `rpl_malloc'
 ./obj/dscparse.o(.text+0xbcb2): In function `dsc_parse_custom_colours':
 src/dscparse.c:4050: undefined reference to `rpl_malloc'
 ./obj/dscparse.o(.text+0xbfe1):src/dscparse.c:4122: more undefined references to
  `rpl_malloc' follow
 collect2: ld はステータス 1 で終了しました
 make: *** [bin/gs] エラー 1

そこでsrc/dscparse.cの最終行に

     return CDSC_OK;
 }
  
 以下が追加部分
 
 void *rpl_malloc (size_t __size)
 {
   if (__size == 0) {
     __size++;
   }
   return malloc(__size);
 }

を追加する。

 $ make
 
 $ bin/gs --help
 ESP Ghostscript 7.07.1 (2003-07-12)
 (略)
 Available devices:
    alc2000 alc4000 alc8500 alc8600 ap3250 appledmp atx23 atx24 atx38 bbox
    bff bit bitcmyk bitrgb bj10e bj10v bj10vh bj200 bjc600 bjc800 bjc880j
    bjccmyk bjccolor bjcgray bjcmono bmp16 bmp16m bmp256 bmp32b bmpa16
    bmpa16m bmpa256 bmpa32b bmpamono bmpasep1 bmpasep8 bmpgray bmpmono
    bmpsep1 bmpsep8 ccr cdeskjet cdj1600 cdj500 cdj550 cdj670 cdj850 cdj880
    cdj890 cdj970 cdjcolor cdjmono cfax cgm24 cgm8 cgmmono chp2200 cif cljet5
    cljet5c cljet5pr coslw2p coslwxl cp50 cups declj250 deskjet dfaxhigh
                                          ^^^^CUPSを確認する
 (略)
 
 $ su
 # make install

''gsとESP gsとを区別するために''

 # cd /usr/local/bin
 # mv gs esp-gs
 # cd /usr/bin
 # mv gs gs.org
 # ln -s /usr/local/bin/esp-gs gs

としておく。
それ以外Font関係等は[[GNU GS:https://wwwism.dyndns.org/hp/linux/gs7x.htm]]と同じようにインストールする。 

ただし、このままでは/usr/local/share/ghostscript/7.07/lib/CIDFnmapに日本語
の指定をしても表示されない。そこで

ghostscript/7.07/lib/gs_res.psの248行付近の
  /FontResourceDir (/usr/local/share/ghostscript/fonts/) readonly .forcedef %  pssys'params is r-o
 を
   /FontResourceDir (/Resource/Font/) readonly .forcedef % pssys'params is r-o
                    ^^^^^^^^^^^^^^^変更箇所
 に
 
   /GenericResourceDir (/usr/local/share/ghostscript/) readonly .forcedef    % pssys'params is r-o
 を
   /GenericResourceDir (/Resource/) readonly .forcedef   % pssys'params is r-o
                       ^^^^^^^^^^^変更箇所
に変更する。

これで、

 $ gs article9.ps

等で日本語の確認をする。
**Canon F850+coregaのプリンタサーバ(PServer) [#y3b9223f]

プリンタ環境がF850+PServerなので、CUPSで印刷できるか試してみる
F850は対応ppdがないので、bjc-800でトライする。
上記のLP-8900と同じようにhttp://localhost:631にアクセスして設定する.

PServerはネットワーク環境は
 socket://192.168.10.11:9100を選択する。

よって/etc/cups/printers.confは
 # Printer configuration file for CUPS v1.1.21rc1
 # Written by cupsd on Sat Aug 21 17:18:33 2004
 <DefaultPrinter f850>
 Info
 Location
 DeviceURI socket://192.168.10.11:9100
 State Idle
 Accepting Yes
 JobSheets none none
 QuotaPeriod 0
 PageLimit 0
 KLimit 0
 </Printer>

となる。

このままでは小さくしか印刷されないので
/etc/cups/ppd/f850.ppdファイルの
gsのオプションでresolutionを指定する、また用紙サイズもA4を指定する

63行あたりを変更する。
 *FoomaticRIPCommandLine: "gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPA&&
 USE -sDEVICE=bjc800%A%Z -r600x600 -sPAPERSIZE=a4 -sOutputFile=- -"
                         ^^^^^^^^^^^^^^^^^^^^^^^^追加
一応CUPSを再起動

 /etc/rc.d/init.d/cups restart

http://localhost:631で、プリンタのテストページ印刷で
Imageable Areaの
 PageSize: 8.0x11.3in
 Resolution: 600x600dpi
を確認する。

これでだいたいA4に印刷されるが若干下が切れる。またjpeg画像がうまく印刷されない
これらは、f850用のppdではなくbjc800を利用したので・・・(^^ゞ
***設定ページアクセス制御 [#x467341d]

/etc/cups/cupsd.confの750行あたりに許可ネットワーク、ホストを追加する
 <Location />
 Order Deny,Allow
 Deny From All
 Allow From 127.0.0.1
 Allow From 192.168.10  <---追加
 </Location>

アクセスポートもこのファイルで指定できる。

変更したらCUPSを再起動

2004/08   DE JE2ISM

***参考1(PSプリンタ) [#w3117cc5]

ちなみに、プリンタがPSプリンタだった場合はどのように動作するか確かめてみた。
職場にはLBP-2260PSというプリンタがあるので接続した。古いプリンタなのでプロトコルは
lpdを使用した。
設定は

デバイス:LPD/LPR  URL: lpd://10.2.1.1:515/xjprint

ポート名等は、WindowsXPのプリンタのプロパティのポートの構成にあるものを使用した。

ドライバ:Raw Raw Queue

設定後ppdファイルは作成されず、またgsは当然使用していないと思い、/usr/bin/gsをリネームしたが
問題なく動作した。

***参考2(用語) [#o33db673]

 OMNI:
 OMNIプリンタドライバは、Ghostscript対応の300以上のプリンタをサポートしたLinux上 
 のプリンタドライバです。対応プリンタの一例としてCanon BJC、Epson MJ、
 HP LaserJet、Brother、Okidata ML、Panasonic KX、Star NX、SAMSUNG SPなどがあり ます。

 IJS:
 これは、プロセス間通信を利用して、プリンタ・コマンドを生成するためのAPI案で
 あり、全体は「IJS Client」と「IJS Server」という2種のAPIから成る。換言すれば、
 IJS対応のプログラムは、これら2つのAPIに沿って作られた2つのプログラム
 (IJS ClientプログラムとIJS Serverプログラム)で構成されるわけだ。このうち、
 IJS Serverプログラムは、パイプを通じてIJS Clientプログラムと通信し、
 プリンタ・コマンドを生成する。また、IJS Clientと同じAPIに沿って記述された 
 アプリケーションは、IJS Serverプログラムと直接通信することができる。なお、
 IJS Clientをサポートしたツールとしては、Ghostscriptが挙げられる。

 PDC:
 IJSと同様に、PDCもサーバ用とクライアント用の2つのAPIから構成される。このAPI案
 は、Omniプロジェクトが提供するOmniドライバのAPIをベースにしたものである。
 また、先のIJSは、ラスタ・プリンタへの対応を前提にしたAPIであり、提供する機能は
 非常にシンプルなものとなっている。対するPDCは、PostScript対応プリンタを
 サポートするための高度な機能を提供している。

 PPDファイル:
 PostScript出力機の解像度など、機種依存の情報を記述したファイル

--------------------------------------------------------------------------------
RIGHT:[[元ページ:https://wwwism.dyndns.org/hp/linux/cups.htm]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS