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
を変更すると
印刷されるテストページの内容が変わる。
特に困っていないのでここまで。
0 件のコメント:
コメントを投稿