お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2007-05-28 16:48:43

mizuno
管理者
From: Kyoto
登録日: 2007-02-28

Emacs から日本語を印刷する

水野です。Emacs の日本語がらみのトピックは既にいくつかあるのですが、印刷の話題ということで新規に投稿させて頂きます。

目的:
Emacs から日本語を含む文書を印刷したい。

環境:
IBM ThinkPad T42
Ubuntu 7.04
EPSON LP-9500C(ネットワークプリンタ)
Emacs 21.4.1

現状:
EPSON の LP-9500C をネットワークプリンタ(LPD)として接続している。Firefox や Openoffice からは正常に印刷ができている。
この状態で M-x ps-print-buffer を実行すると ascii 文字は正常に印刷されるが、マルチバイト文字が $"$!$c というように化けてしまう。
C-u M-x ps-print-buffer を実行して ps ファイルを作成し、Gnome 上でダブルクリックして表示させようとすると、ビューアが正常に読み込めず応答がなくなってしまう。(正しい ps ファイルを作成できていない?)

設定:
同一の環境で正常に印刷が行える Vinelinux のデフォルト設定を参考に、.emacs に以下の設定を追記した。

コード:

(setq-default lpr-switches '("-2P"))
(setq-default lpr-command "mpage")

(setq ps-print-header 'nil)
(setq ps-multibyte-buffer 'non-latin-printer)
(require 'ps-mule)
(defalias 'ps-mule-header-string-charsets 'ignore)

結果:
問題は解決せず、日本語文字は正常に出力されない。

考えたこと:
他のアプリからは正常に印刷できることから、Emacs あるいは Postscript の問題だと思う。
豆腐文字ではなく、$"$! などと表示されることから、文字コードの問題ではないかと思う。

印刷関連の質問
http://forum.ubuntulinux.jp/viewtopic.php?id=214

上記トピックが関係あるような気がするけれど、具体的な問題(そして解決方法)の見当がつかない。
(mpage を使ってみたけれど、文字化けの状況は変わらず)

--- 追記 ---
上記トピックにあるように u2ps をインストールし
u2ps -o dest src
とすると、Evince で読める ps ファイルが出来ました。印刷も問題ありません。
--- 追記ここまで ---


# /usr/share/doc/emacs-env-ja/dot.emacs.example にも印刷関連の設定はないようです。

Ubuntu 7.04 で Emacs から日本語印刷が出来ている方がいましたら、アドバイスを頂きたいと思います。
よろしくお願いします。

最後の編集者: mizuno (2007-05-28 17:32:33)

オフライン

 

#2 2007-05-29 23:29:20

RxOrca
メンバ
登録日: 2007-03-02

Re: Emacs から日本語を印刷する

Emacsから lpr経由で印刷したいってことでしょーか。
(Emacsで印刷したりしたことないので, Emacsとかその辺のことは分からないけど)
んで, u2ps単体だと PostScriptを吐き出せるけど, Emacsからテキストを印刷しようとすると日本語が化けるってことでしょーか?

だとしたら, Ubuntuの CUPSが (特別に手を加えていない) 普通のものカモなので, 日本語テキストを印刷するためにはフィルターを作る必要があるです。
u2psを呼び出すスクリプトでよいと思うけど … ちょいと時間が必要かも :)

オフライン

 

#3 2007-05-30 12:39:01

mizuno
管理者
From: Kyoto
登録日: 2007-02-28

Re: Emacs から日本語を印刷する

リプライありがとうございます。

RxOrca による投稿:

Emacsから lpr経由で印刷したいってことでしょーか。
(Emacsで印刷したりしたことないので, Emacsとかその辺のことは分からないけど)
んで, u2ps単体だと PostScriptを吐き出せるけど, Emacsからテキストを印刷しようとすると日本語が化けるってことでしょーか?

はい、その通りです。Emacs から印刷を行うと文字が化けてしまいます。
ですが lpr 経由、というのはどういう意味でしょう?
単に LPR プロトコルを使用して印刷する、という意味か、Emacs が内部的に lpr コマンドを呼び出す、という意味だと思うのですがどうでしょうか。

前者だとすると、プリンタの設定は Gnome のシステム管理からネットワークプリンタを LPD プリンタとして追加していますので、今現在 LPR で通信しているということになると思います。そして Emacs から印刷を実行すると、文字は化けますが印刷そのものは行えるので、プロトコル的には問題がないように思えます。
後者だとすると、u2ps で作成した ps ファイルを lpr コマンドに渡すと正常に日本語が印刷できることから、lpr コマンドそのものにも問題がないように思えます。

最初の書き込みに書きましたが、Emacs から C-u M-x ps-print-buffer で作成した ps ファイルがビューアで開けないことから、印刷に至る前段階で Emacs が作成している ps ファイル自体に問題があるのではと考えています。

http://lists.debian.or.jp/debian-users/199902/msg00702.html
Debian のアーカイブから、このようなものを見つけました。
私は

コード:

 (require 'ps-mule)
 (setq ps-multibyte-buffer 'non-latin-printer)

の設定を行っていますし、このメール自体がかなり古いものですから違う問題なのかもしれませんが、現象としては同じだと思います。
(リンク先の ps-print を試そうとしたのですが、リンク切れでした)

実際のところ、印刷をするだけなら gedit を使ったり、コマンドラインから u2ps を使えばよいのでそれほどの問題ではないのですが……もしも Ubuntu の Emacs の印刷に問題があるのだとしたら、修正したいところではあります。
(と言っても Lisp は全く解からないわけですが)

オフライン

 

#4 2007-05-30 13:50:56

hito
管理者
登録日: 2007-03-18

Re: Emacs から日本語を印刷する

確実性はないのですが、

gs-esp                     :これは多分installされている筈
gs-cjk-resource            :?
cmap-adobe-japan1          :?

あたりのパッケージはインストールされているでしょうか。
ちょっと手元にUbuntu標準状態のシステムがないので、標準構成で
あればインストールされているかもしれません。

これらの一部はmultiverseにあります。

Emacsより外の世界で、かつGNOMEとも違う次元のどこかに問題が
ありそうな気がするので、Ghostscript周りが怪しいように思えます。

オフライン

 

#5 2007-05-30 16:23:41

RxOrca
メンバ
登録日: 2007-03-02

Re: Emacs から日本語を印刷する

mizuno による投稿:

RxOrca による投稿:

Emacsから lpr経由で印刷したいってことでしょーか。
(Emacsで印刷したりしたことないので, Emacsとかその辺のことは分からないけど)
んで, u2ps単体だと PostScriptを吐き出せるけど, Emacsからテキストを印刷しようとすると日本語が化けるってことでしょーか?

はい、その通りです。Emacs から印刷を行うと文字が化けてしまいます。
ですが lpr 経由、というのはどういう意味でしょう?

Emacsが lprを呼び出してるのでは? と思ったからです。(↓) の部分。

コード:

(setq-default lpr-switches '("-2P"))
(setq-default lpr-command "mpage")
…

んで, lprへ印刷ブツを渡してるとすると, text/plainで渡してるよーならフィルターを作る必要があるです。一般的な CUPSでは 日本語のプレーンテキストには対応していないはずなので。
PostScriptを作って lprへ渡してるよーならその部分に問題があると思うけど … Emacsは分からないです。
この "mpage"を指定してる部分を u2psに置き換えるのではダメでしょーか?
(オプションもそれなりに変更して)


hito による投稿:

確実性はないのですが、

gs-esp                     :これは多分installされている筈
gs-cjk-resource            :?
cmap-adobe-japan1          :?

他の方法で日本語印刷できてるっぽいので大丈夫なのかもです。

オフライン

 

#6 2007-05-30 16:35:31

mizuno
管理者
From: Kyoto
登録日: 2007-02-28

Re: Emacs から日本語を印刷する

水野です。結論から言いますと、hito さんのやり方で正常に日本語の印刷ができるようになりました。
そこに至るまでの流れを(少し冗長ですが)お知らせします。

hito による投稿:

gs-esp                     :これは多分installされている筈
gs-cjk-resource            :?
cmap-adobe-japan1          :?

あたりのパッケージはインストールされているでしょうか。

アドバイスありがとうございます。

gs-esp はインストールされていました。
gs-cjk-resource と cmap-adobe-japan1 はインストールされていませんでしたのでインストールしたのですが、cmap-adobe-japan1 のインストール時に以下のメッセージが出ていました

コード:

(略)
No CIDSupplement specified for IPAUIGothic-Regular, defaulting to 0.
No CIDSupplement specified for IPAPGothic-Regular, defaulting to 0.
No CIDSupplement specified for IPAMonaMincho-Regular, defaulting to 0.
Can't exec "/usr/bin/mkcfm": No such file or directory at /var/lib/defoma/scripts/x-ttcidfont-conf.defoma line 791.

スクリプトの該当行を見てみると、

コード:

system('/usr/bin/mkcfm', "$PkgDir/dirs/CID");

とありました。
apt-cache search mkcfm を実行すると x-ttcidfont-conf というパッケージが見付かるのですが、このパッケージをインストールしても /usr/bin 以下に mkcfm が存在しません。

参考 URL
http://jody.sci.hokudai.ac.jp/~ike/blog/2007/05/mkcfmubutnu.html

そこで Debian sarge から mkcfm をもらってきて /usr/bin に配置。再度 cmap 関係のパッケージをインストールしました。
(こういう事はしちゃいけないのかもしれませんが……該当エラーは消えました)

その後 Emacs から印刷を行ってみたのですが、ジョブが途中で停止してしまい、プリンタからは以下のような Postscript エラーが打ち出されました。

コード:

# ERROR: undefinedresource
# OFFENDING COMMAND: findresource

# STACK:

/UniJIS-UCS2-H
-dictionary-
/Japan1.Unicode
false
/CIDDecoding
/Japan1.Unicode
-dictionary-
/KochiMincho-Regular
/KochiMincho-Regular
true
/Ryumin-Light
/Ryumin-Light
true
/CIDFont
/Ryumin-Light
0
-mark-
/FDepVector
[/Ryumin-Light]
/H
/Ryumin-Light-H
/Font
/Ryumin-Light-H
8.5
/f92-0

C-u M-x ps-print-buffer でファイルに書き出して見ると、1ページ目に上記のエラーが書き込まれておりました。ps ファイル作成時にエラーが発生しているようです。

undefinedresource で検索してみたところ、以下のページがヒットしました。
http://kondou.comic.to/nobuo_Web/zyukai_two03.html
http://bbs.fedora.jp/read.php?FID=9&TID=4755

/usr/share/ghostscript/CMap 以下にフォントへのリンクがあるようですが、エラーから察するに、ここに何かが足りないようです。

検索したところ、メーリングリストの過去ログから以下の情報を見つけました。
http://mlog.euqset.org/archives/ubuntu-ja-users/0369.html

cmap-adobe-japan1 のインストール時に「標準」しか設定がされないのが問題のようです。
$ dpkg-reconfigure cmap-adobe-japan1
を行い、全てにチェックをつけたところ、正常に印刷ができるようになりました。

手順をまとめると
・ gs-cjk-resource と cmap-adobe-japan1 をインストール
・ dpkg-reconfigure cmap-adobe-japan1 を実行し、全てにチェックを入れる
で大丈夫そうです。
RxOrca さん、hito さん、どうもありがとうございました。

# 自分も含め Emacs の質問は沢山ありますし、解決方法も複雑だったりするので、新 wiki が立ち上がったら Tips 集のようなものを作りたいなと考えております

オフライン

 

#7 2007-05-30 20:27:46

hiro
メンバ
登録日: 2006-11-06

Re: Emacs から日本語を印刷する

http://forum.ubuntulinux.jp/viewtopic.php?id=214

で投稿したものですが、u2psでは確かにutf8のものをポストスクリプトへ変換できるのですが(日本語の文字化けなしに)、
a2psのような綺麗さがありません。a2psだとデフォルトで2段でみたいな感じに綺麗になるんですが・・・。

u2psでもa2psのような感じの綺麗なスタイルで印刷することが可能なのでしょうか?
可能ならそこらへんの印刷方法をお教えお願いします。

もしくはa2psをubuntuの開発グループでutf8対応へ改良していただきたい所存でございます。

オフライン

 

#8 2007-05-30 21:56:07

ikuya
モデレータ
From: Osaka
登録日: 2006-10-20

Re: Emacs から日本語を印刷する

hiro による投稿:

もしくはa2psをubuntuの開発グループでutf8対応へ改良していただきたい所存でございます。

a2ps-perl-jaに含まれるa2psjはいかがです?

オフライン

 

#9 2007-05-30 22:24:40

RxOrca
メンバ
登録日: 2007-03-02

Re: Emacs から日本語を印刷する

「綺麗」とゆーのが二段組のことを指してるのなら, psnup てゆーのもあるです。=)
psnup -2 [元の PostScript]

オフライン

 

#10 2007-05-31 19:00:10

hiro
メンバ
登録日: 2006-11-06

Re: Emacs から日本語を印刷する

みなさん返信ありがとうございます。

>a2ps-perl-jaに含まれるa2psjはいかがです?

記憶が古いので確かではありませんが、utf8の環境では文字化けを起こしました。

>「綺麗」とゆーのが二段組のことを指してるのなら, psnup てゆーのもあるです。

是非、試してみます。できれば、既存のa2psをしようして使いたいですけど・・・。

>もしくはa2psをubuntuの開発グループでutf8対応へ改良していただきたい所存でございます。
このような要望とかは実際、どのようにすれば開発グループの方とかに伝わるのでしょうか?

># 自分も含め Emacs の質問は沢山ありますし、解決方法も複雑だったりするので、新 wiki が立ち上がったら Tips 集のようなものを作りたいなと考えております
是非、賛成です。正直、emacsは初心者にとって設定するのにとても敷居が高いので、そのようなものがあると助かります。
また、非公式 Ubuntu 6.04 初心者用ガイドの7.04バージョンができあがれば幸いです。

オフライン

 

#11 2007-06-01 01:25:47

anoir
モデレータ
From: Berkeley, CA
登録日: 2007-01-13

Re: Emacs から日本語を印刷する

また、非公式 Ubuntu 6.04 初心者用ガイドの7.04バージョンができあがれば幸いです。

http://ubuntuguide.org/wiki/Ubuntu:Feisty

のことでしょうか?

オフライン

 

Board footer

Powered by FluxBB