ラベル Gutenprint の投稿を表示しています。 すべての投稿を表示
ラベル Gutenprint の投稿を表示しています。 すべての投稿を表示

2010年2月23日火曜日

CUPS のテストプリントで豆腐が印刷される件

CUPS のテストプリントで豆腐が印刷される件について、軽く調べてみた。

印刷データを生成するのは、 /usr/sbin/cupsd から起動される /usr/lib/cups/cgi-bin/printers.cgi。

Printer Test Page の元ネタは /usr/share/cups/data/testprint。 どのような形式か調べていないけど、 表示されている内容や図が実際に印刷されているものと一致している。

$ cat /usr/share/cups/data/testprint
#CUPS-BANNER
Show printer-name printer-info printer-location printer-make-and-model printer-driver-name printer-driver-version paper-size imageable-area
Header Printer Test Page
Footer Printer Test Page
Notice This test page was produced by CUPS 1.4.2.
Image images/cups.png
Image images/color-wheel.png

/usr/share/locale/ja/cups_ja.po を参照しているのだけれど、 このファイルは壊れている。 行の先頭の引用符が、二カ所抜けている。

$ diff -u /usr/share/locale/ja/cups_ja.po{.orig,}
--- /usr/share/locale/ja/cups_ja.po.orig 水 12月  2 16:26:40 2009
+++ /usr/share/locale/ja/cups_ja.po 火  2月 23 16:40:26 2010
@@ -4391,7 +4391,7 @@
 "  -p filename.ppd  Set PPD file\n"
 "  -t title         Set title\n"
 msgstr ""
-使い方: cupsfilter -m mime/type [ options ] filename\n"
+"使い方: cupsfilter -m mime/type [ options ] filename\n"
 "\n"
 "Options:\n"
 "\n"
@@ -4436,7 +4436,7 @@
 "    -v                   Be slightly verbose\n"
 "    -vv                  Be very verbose\n"
 msgstr ""
-使い方: cupstestppd [オプション] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
+"使い方: cupstestppd [オプション] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
 "       program | cupstestppd [オプション] -\n"
 "\n"
 "オプション:\n"

/usr/lib/locale/ja.UTF8/ja.UTF8.so.3 や /usr/lib/locale/ja.UTF8/LC_MESSAGES/SUNW_OST_OSLIB.mo といった 誤ったパスを参照している。

/usr/lib/cups/filter/bannertops、 /usr/lib/cups/filter/pstops、 /usr/lib/cups/filter/pstoraster、 /usr/bin/gs、 /usr/lib/cups/backend/hal、 /usr/lib/cups/filter/rastertogutenprint.5.2 といったプログラムが起動されていく。

/usr/lib/cups/filter/bannertops、 /usr/lib/cups/filter/pstops、 /usr/lib/cups/filter/pstoraster、 /usr/lib/cups/filter/rastertogutenprint.5.2 は /usr/lib/locale/ja.UTF-8/ja.UTF-8.so.3 を読み込む。 これもまた誤ったパス。

/usr/share/locale/ja/cups_ja.po を修正し、 ja.UTF-8 や ja.UTF8 を捏造しても、 豆腐は解消しなかった。

/usr/share/locale/ja/cups_ja.po を変更すると 印刷されるテストページの内容が変わる。

特に困っていないのでここまで。

2010年2月22日月曜日

印刷の設定

以前から Gutenprint を自前でコンパイルして使用していました。 b127 で Gutenprint がリポジトリに追加されましたので、 こちらに切り替えることにします。 OpenSolaris は今日更新したので b133。 プリンタは昨年春先に量販店で購入した Canon PIXUS iP4600。 購入理由は、店頭にあって、そこそこ安かったから。

準備

現状の関連ファイルは ZFS の snapshot で保存し、万が一に備えます。
$ pfexec zfs snapshot rpool/ROOT/opensolaris-8@20100222-pre-rm-gutenprint
$ pfexec zfs snapshot rpool/export/opt@20100222-pre-rm-gutenprint

削除

CUPS の管理用のWebインタフェースで見るとこんな感じ。「システム」->「システム管理」->「Print Manager」を使わないのは、特に意味はないと主張しておきます。

プリンタを選択すると詳細が出てきます。

以前は Gutenprint を明示的に指定できるような箇所があったように記憶しているのですが、 インタフェースが変わったせいか今はそれを見つけられません。 今使っている設定を削除し、Gutenprint を入れ直すことにします。
削除は「管理」から「プリンターの削除」を選択。


寂しい画面です。

自分で Gutenprint を導入したときに、 DESTDIR= で gutenprint-dist を指定してイメージを保存しておいたので、 それを参照して削除するファイルを決定。 
/etc/cups/command.types は、 システム標準のものと有意な差がなかったので、更新しませんでした。 従って戻す必要なし。

導入

パッケージマネージャーを使用して、Gutenprint を導入します。 Gutenprint を検索すると、 SUNWgutenprint と print/filter/gutenprint の二つが表示されます。 メイリングリストによると、b133 でパッケージの命名規則が変わったようで、 後者が新しい規則によるもののようです。 選択して「インストール/更新」。
CUPS の管理画面より、「新しいプリンターの検索」

なぜかプリンターが二回表示されています。 大事なことだからでしょうか… ともかく、最初のもので追加。

正しいドライバを見つけてきたようです。 ただ、名前としては「_series」はよけいだと思うので削除。「続ける」。

メーカーが選択されていないので、「Canon」を選択。「続ける」。

「Canon PIXMA iP4600 - CUPS+Gutenprint v5.2.4 (en)」を選択。 「Simplified」との差は知りません。「プリンターの追加」。

「プリンターオプションの設定」画面に遷移しました。 Media Source は度々問題になっているのですが、とりあえずは放置。

とりあえずテストページを印刷してみます。

予定通り、プリンターがエラーになりました。 手差しで給紙されることを要求しているようです。 やはり、「Media Source」の 「Automatic Papter Source Switching」はうまく動いていないようです。
仕方ないので「Cassette」に変更。 無事、テストページは印刷されました。

余談

ところで、以前の OpenSolaris に載っていたCUPS 1.3.x と、 b133 に載っている CUPS 1.4.2 では、 テストページが変わっています。 以前のは情報量が多い感じで、新しいのはすっきりとしています。 あと、新しい方では文字化けではないかと思われる豆腐が印刷されているのが気になります。