▼ [Perl] PDFJの使い方
2007/07/19 0:44
Perl用のフリーな日本語PDF生成モジュールとしては PDFJ がある。 組版ルールは JIS X 4051 (日本語文書の組版方法) に準拠しているので、日本語を取り扱うには非常に便利である。
以下、このモジュールを使用してPDFファイルを生成する方法について簡単に記載する。このプログラムでは省略しているが、段落を指定の高さごとに分割してページ処理をすることも可能である。なお、このまま利用するためには、ソースのエンコードを utf-8 とすること。
- 文書オブジェクトの生成。
# プラグマとかモジュールとか use utf8; use strict; use warnings; use PDFJ qw[UTF8]; # 文書オブジェクトの生成 # PDFのバージョンは迷ったら1.3を指定するのが無難。(Acrobat 4以上に対応) # 幅と高さはポイントで指定する。 my $paperWidth = 595; my $paperHeight = 842; my $doc = new PDFJ::Doc(1.3, $paperWidth, $paperHeight);
- ページオブジェクトの生成。
# ページオブジェクトの生成; 文書の最後にページを追加する。 my $page = $doc->new_page();
- フォントとテキストスタイルの定義。ここでは、和文フォントを Ryumin-Light (エンコードはUniJIS-UCS2-HW-H)、英文フォントを Times-Roman としている。
# フォント my $font = $doc->new_font("Ryumin-Light", "UniJIS-UCS2-HW-H", "Times-Roman", undef); my $fontSize = 16; my $textStyle = TStyle(font => $font, fontsize => $fontSize); - 単純にテキストを配置する。(折り返し無し)
# テキストオブジェクト my $text = Text("はにゃーん", $textStyle); # (100, 100) にテキストを配置。 $text->show($page, 100, 100); - 段落を作成 (自動的に折り返される) して、配置する。
# 今度は段落を作成する。 my $haahaa = Text("ハァハァ"x100, $textStyle); # $fontSize*20 ポイント (20文字分) で折り返し。 # 実際には 20.01 くらいにしておくと最後の1文字が行末に来る場合、 # 余計な空行が入らなくてよさげ。 my $pageStyle = PStyle(size => $fontSize*20, linefeed => $fontSize + 10, align => "b"); my $para = Paragraph($haahaa, $pageStyle); $para->show($page, 100, 800); - ファイルに出力。
# pdfj.pdf に書き出し。stdoutへ出力することも可能。 $doc->print("pdfj.pdf");
▼ コメント(0件)
- TB-URL(確認後に公開) http://diary.asuka.net/010/tb/
