iPadから印刷できたので、当初の要求は満たしたのだけれど、一応FreeBSDからも印刷したくていろいろ試してみたが、日本語がことごとく駄目。
日本語を試すのに、テキストファイルと、TeXのdviファイルを利用したくて 、ちょっと見てみたら今の環境にはTeXが入っていなかった。
昔は、ASCII版のplatexがports/japaneseにあったのだけれど、最近はどうも違うらしい。
そこで、ports/japanese/teTeXと言うmetaportがあったのでそれを入れてみた。
teTeXをインストールするとplatexコマンドが使えるようになったので、むかーし書いたtexファイルをかけてみると、「Entering LaTeX 2.09 COMPATIBILITY MODE」とか出て警告がぞろぞろ出た。
最近のLaTeXがどうなってるのか全然わからないので、勉強しないと駄目だなあ。
とりあえず、dvipsも入っているので dvipsをかけると psファイルができる。
こいつをcupsの/usr/local/bin/lpr で印刷してみると、日本語部分が文字化け。
dviファイルがおかしいのか、psファイルがおかしいのか、印刷部分がおかしいのか判断がつかなかったので、順番に切り分けることに。
まずは、xdviでdviファイルを見てみると、文字化けせずに表示されたのでdviファイルは問題なさそう。
続いて、ps ファイルをgs で見ようとすると、gsが落ちてしまう。
そこで、ghostscriptとか、gsfontsとか関係しそうなportsを最新にして、japanese/font-ipa をインストールしたら、無事にgsでpsファイルが見られるようになった。
これで、psファイルも問題なし。
どこで入れたのかわからないけど、dvipdfと言うコマンドもあったので、試してみたところ、生成されたpdfを/usr/local/bin/lpr で印刷すると文字化けせずに印刷された。
???
とりあえず、bannertopsとtexttopsは日本語が駄目らしいと言う情報があったので、pstopsもまずいのではないかと疑ったりしたが、pstopsを通したpsファイルもgsで表示できたので違うようだ。
次に疑ったのが pstorasterで、こいつは ports/print/cups-pstoraster でインストールされるもの。
cups-pstorasterのMakefileを読むと、WITH_CJKと言うオプションがあるらしいのでそれを有効にしてみた。
すると、今まで文字化けして印刷されていたのがエラーが出て印刷できなくなった。
Set job-printer-state-message to "/rangecheck in --string--", current level=ERROR
Operand stack:
Fa   256   --nostringval--   --nostringval--   0   79.8851   Ryumin-Light-H   Font   Ryumin-Light-H   H   --nostringval--   FDepVector   --nostringval--   0   Ryumin-Light   CIDFont   true   Ryumin-Light   Ryumin-Light   --nostringval--   --dict:15/18(L)--   --nostringval--   236166   236166
Execution stack:
%interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1   3   %oparray_pop   1   3   %oparray_pop   1   3   %oparray_pop   1   3   %oparray_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   7   4   %oparray_pop   8   4   %oparray_pop   --nostringval--   --nostringval--   --nostringval--   11   5   %oparray_pop   --nostringval--   1   1   0   --nostringval--   %for_pos_int_continue   --nostringval--   16   6   %oparray_pop   --nostringval--   --nostringval--   --nostringval--   --nostringval--   --nostringval--   --nostringval--   --nostringval--   --nostringval--   --nostringval--   --nostringval--   %array_continue   --nostringval--   --nostringval--   --nostringval--
Dictionary stack:
--dict:1089/1123(ro)(G)--   --dict:0/20(G)--   --dict:103/200(L)--   --dict:85/300(L)--   --dict:47/65(ro)(G)--   --dict:3/10(L)--   --dict:38/50(ro)(G)--   --dict:28/50(ro)(G)--   --dict:15/40(L)--
Current allocation mode is local
ESP Ghostscript 815.04: Unrecoverable error, exit code 1
何が悪いかさっぱりわからなかったけど、どうせgsもインストールされているのだからとそちらを試してみることにした。
/usr/local/libexec/cups/filter/pstoraster をエディタで開き、espgs を呼び出しているところを gs に変更する。
--- pstoraster.ORIG     2010-11-27 16:18:35.000000000 +0900
+++ pstoraster  2010-11-27 20:45:50.000000000 +0900
@@ -52,10 +52,10 @@
 fi

 echo INFO: Starting GNU/GPL Ghostscript...  1>&2
-echo DEBUG: Running $bindir/espgs $gsopts -sOUTPUTFILE="%stdout" -c"$profile" "$ifile" 1>&2
+echo DEBUG: Running $bindir/gs $gsopts -sOUTPUTFILE="%stdout" -c"$profile" "$ifile" 1>&2

 # Now run Ghostscript...
-exec $bindir/espgs $gsopts -sOUTPUTFILE="%stdout" -c"$profile" "$ifile"
+exec $bindir/gs $gsopts -sOUTPUTFILE="%stdout" -c"$profile" "$ifile"

 #
 # End of "$Id: pstoraster.in,v 1.3.2.4 2004/06/29 13:15:10 mike Exp $".
すると、無事に印刷され、日本語も化けずに印字できた。
ならばと思ってテストページを印刷してみたが、こちらは化けたまま。やはりbannertopsが悪いのだろうか。

ちなみに、テキストファイルについては texttops が使えないので、t2psをインストールして texttops を置き換えるような対応ができるようだ。
追記
ESP版である必要はないのか?との突っ込みを受けたので、ESPってなんじゃろ?と調べたところ、CUPSのサブプロジェクトで、CUPSの追加サポートがあるらしい。
ESP Ghostscript
ESP Ghostscript is an up-to-date GNU Ghostscript distribution including bug fixes, new drivers, and additional support for CUPS.
と、思ってそこにあるリンク先を見るとcups.orgでリンク切れになっていて、espgsで検索すると
ESP Ghostscript 8.15.4
THIS PROJECT IS DISCONTINUED AND ALL ADDITIONS HAVE BEEN MERGED INTO GPL GHOSTSCRIPT.

ESP Ghostscript was a customized version of Ghostscript based off GPL Ghostscript 8.15. All changes from ESP Ghostscript were merged into GPL Ghostscript 8.60.
なんて書いてあるので、8.60以降を使っているのであればESP版を使う必要はないらしい。portsの cups-pstoraster のメンテが追いついてないってことかな。

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: CUPSで日本語

このブログ記事に対するトラックバックURL: http://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/2514

コメントする

このブログ記事について

このページは、falseが2010年11月27日 20:14に書いたブログ記事です。

ひとつ前のブログ記事は「iPadから印刷したい」です。

次のブログ記事は「emacs23の設定を見直す」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

広告

Powered by Movable Type 6.1.1