Perl スクリプトで RTF ファイルを出力する

rtf_test.jpg
現在提案中の Webシステムの話。

入力した内容を反映させた書類を出力する必要があったので、PDF ファイルを出力する仕様で見積もっていたのだが、MS-Word 用の ファイルを出力してほしいとの要望あり。
Perl での開発を考えていたので、RTF::Writer モジュールを入れて RTF(Rich Text Format)ファイル出力のテストをしてみた。

RTF::Writer モジュールは、CPAN モジュールを使ったインストールで一発OK。
何か、CPAN モジュールできれいにインストール出来る Perl モジュールに出会ったのが久しぶりなので妙に嬉しい。(笑)何かと Test で失敗する事が多いからなあ。(^^;

で、早速、Writer.pod に載っているサンプルを元に、日本語がうまく扱えるかテスト用のスクリプトを書いてみた。

use RTF::Writer;

my $rtf = RTF::Writer->new_to_file("test.rtf");
$rtf->prolog('title' => "テスト帳票", 'fonts' => ["MS Pゴシック"]);
$rtf->number_pages;
$rtf->paragraph(
  \'\fs40\b\i',  # 20pt, bold, italic
  "これは RTF 出力のテストです"
);
$rtf->close;

実行結果は上の画像のとおり。ちゃんと、RTF フォーマットのファイルが作られて、Windows2000 上の Microsoft Word 2000 で読み込むことが出来た。
RTF ファイルで良いということなら何とかなりそうだ。

ちなみに、日本語の含まれたファイルは Shift_JIS で出力されるようだ。
なので、セットする文字列自体も Shift_JIS でないと文字化けする。今回は、テストということで、スクリプト自体を Shift_JIS で書いて対処した。
本番プログラムを Shift_JIS で書くわけにはいかんので、その時は Jcode とか使って Shift_JIS に変換してやる必要がありますな。

ま、問題無し。

でも、エンドユーザさんとこで、「RTF って何?DOC ファイルじゃなきゃ嫌だ!」とか言い出したら面倒だなあ。(^^;

俺が直接エンドユーザ折衝してたら、思わず「はぁ?今時 DOC ファイルじゃないと駄目って、何?DOC ファイルじゃないと表現できない部分ってありましたっけ?まさか、拡張子が rtf じゃ Word 用のファイルってわからないから?みんなちゃんとした社会人なんだから、一回説明すれば大丈夫でしょ?」くらいの厭みは口走っちゃいそうで怖いけど。(笑)

どうしても DOC でなきゃ嫌だということになれば、Java で Jakarta POI 使ってほげほげか。

トラックバック(0)

このブログ記事を参照しているブログ一覧: Perl スクリプトで RTF ファイルを出力する

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/691

コメントする

このブログ記事について

このページは、shinodaが2009年7月10日 14:36に書いたブログ記事です。

ひとつ前のブログ記事は「Firefox3 で JavaScript が動かない件」です。

次のブログ記事は「「フラガール」けっこう良かった」です。

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


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら