2011年6月17日金曜日

wineとcups-pdfとMS Office ファイルたち

MS OfficeのファイルをLinuxの上だけで、pdfにかえてしまう方法がわかったのでまとめておく。

まず、wineをインストールし、winecfgを起動させる。そしたら、

wine notepad

として, notepadを起動し, 編集→フォントとして, フォントを適当に変更させておく.

効果があるかはわからないけど, .wine/drive_c/windows/Fonts/の中に適当にフォントのシンボリックリンクをいれておいた(ipaフォントとか).

次に, MS Office viewer (Word viewer, Excel viewer, Powerpoint viewer)とかをダウンロードして, たとえば

wine PowerPointViewer.exe

などとして, インストールする. 文字化けしてたりするが, 気にしないことにする.

そしたら, 例えば .wine/drive_c/Program Files/Microsoft Office/OFFICE11 の中にWORDVIEW.EXEがあるから

wine WORDVIEW.EXE

とすれば, word ファイルが読める.

debianではxournalがあるから, pdfファイルに何かを書き込むのは, 簡単にできる. だから, 読みこんだファイルをpdfで書き出してしまえばよい. これはmatsumoto さんのアイデアをちょっと考えていたら, pdfに出力する仮想プリンタを用意すればいいじゃないかということに気がついて, やってみたら, うまくいったというお話.

実際, Linuxは比較的pdfと相性がよい. というよりは, よくなったというのが正しい言い方. 最近のguiのプログラムは印刷するときに, pdfファイルとして書き出すことができる. しかし, windowsはそうもいかない. なら, 仮想プリンタを用意すればよいので, cups-pdfをインストールすればよい.

追記: cups-pdfでppdファイルをこちらで指定すると, 文字の認識も日本語こみでうまくいくみたい. 例えば, Brotherのポストスクリプトプリンタのppdファイルを使ったらうまくいった. おそらく, デフォルトのppdファイルは日本語の面倒を見てくれない様子. そして, cups-pdfの実装については, この記事が詳しい.

# つまり, psファイルの時点で, 文字情報が残っていれば, pdfでも文字情報が残ってくれるだろうという気がする.

ちょっと疑問に感じたことをひとつ. Linux上でcups-pdfは何のために使うのだろう.

4 件のコメント:

  1. Ubuntuのある日々の松本です。
    BrotherのpsプリンタがどれだかわからなかったのでAppleの LaserWriter 16/600を指定したら、うまくいきました。Wineで動くPowerPoint Viewerで、日本語文字を文字として認識しています。ただ、日本語をコピーした場合、エンコーディングの関係か文字化けるようですね。あと、部分的に歯抜けになるような感じでもあるのですが、これは元データの作り方かもしれません。

    返信削除
  2. > 松本 様

    文字化けは困りますね。私はfirefox から印刷させてcups-pdf 経由で印刷させて、firefox に貼り付けてみました
    firefox が文字コードを処理してしまっているかもしれないです。

    ghostscript が日本語を処理できていないんじゃないかと予想しています。思いつくこととして

    ・文字コードに問題がある(私はeucjpをデフォルトにしている)ため、wineを立ち上げるときに、文字コードを一時的に変える(LANG=ja_JP,eucjp)
    ・gs-cjk-resource などをインストールする(http://debian.fam.cx/index.php?Japanese が参考になりそうです。私はインストールしてあります)

    gs やps ははまるとズブズブと沼にはまりそうなので、あまり深入りしない方針で(汗

    返信削除
  3. > 松本 様

    すみません。私のも、文字化けしていました。
    adobe readerだと文字コードすらわからず。
    evinceやokular, pdftotextは、たまに文字抜けしていますが、eucjpで文字列埋め込みされているようです。

    Error: Illegal entry in bfrange block in ToUnicode CMap

    が大量にでているので、gsでちょっとした設定が必要そうな気がしますが、それなりに使えるので気にしないことにしています(汗

    返信削除
  4. サジェストいただいたことを参考にちょっと手探りしてみましたが、基礎知識の無さが露呈してしまい、収穫はありませんでした。ghostscriptは果てしないという話を以前別の方からも伺っていますので、当面、この辺りでよしとしておくのが私にはよさそうです。いろいろとありがとうございました。

    返信削除