AlivePDF 1.49でFlash Player10だけでPDFを作る

AlivePDFをFlash Player10で使えば、すべてswfだけでPDFを作り保存することができます。
create.phpを使わずに出来るというのはスゴい便利。

使い方はこんなかんじ。
ここではAlivePDFを拡張したMBPDFを使ってますが書き方は同じ。

var myPDF:MBPDF = new MBPDF( Orientation.PORTRAIT, Unit.POINT, Size.A4 );
myPDF.charSet = MBPDF.SHIFT_JIS;
myPDF.addMBFont(MBFontFamily.GOTHIC,MBPDF.CMap_SJIS);
myPDF.setDisplayMode ( Display.REAL );
myPDF.addPage();
myPDF.addMultiCell ( 210, 5, "いろはにほへとちりぬるをわかよたれそつねならむ",null,"L" )

よく使うのはこのメソッド。

addMultiCell(width,line-height,text,border,align)

borderはobject指定になってますが「1」をつければいいだけ。
alignは”L”,”C”,”R”で。

myPDF.drawRect(new Rectangle(10,120, 170, 61));

みたいなメソッドもあり、あんまり複雑な図形を使ったりしなければ、swfを作る感覚でPDFを作れる。

フォント問題

フォントはTimes,Arial,Courier,Helveticaなどが選択可能。
通常では日本語を使えない。
日本語を使うには、MBPDFを使う。MBPDF開発者のブログ(harhid-labo.com/PDF作成その2)では記事が削除されてる?(404だった)ので、Flashから日本語PDFを生成(AlivePDF+MBPDF)を見て真似してみました。

MBPDFを使えば、MSゴシックだけ使える。いちおうMBFontFamilyクラスにはPGOTHICやPMINCHOなどあるけど、MSゴシックだけ。

ちなみに、AlivePDFのFontFamilyとMBFontFamilyが1ファイルに混在するとAdobe Readerで読めなくなる。
(英数にArial、日本語にGOTHIC、というふうに使い分けることができない、ということ。macのプレビューでは混在していても読めるけど)

ちなみに、alivePDF1.5では、マルチバイトフォントがサポートされつつあります。
でもフォントファミリーが「Arial Unicode MS」しか使えず、かなり文字が汚い。外人さんが左手で書き写したひらがなみたいな文字です。
Arial Unicode MS

結論

文字がMSゴシックだけでいいのなら、AlivePDF1.49は十分実用できる。
今後バージョンが上がって、メイリオやヒラギノが使えたら神ライブラリ認定ですね。

フォントの埋め込み方がよくわからなかったですが、簡単に埋め込んで使えるなら、このままでもいいのかも。

サンプル

うそ履歴書を作るPDFメーカーをさくっと作ってみました。

ソースはFlexプロジェクト。mxml1枚なので中身見てもらえればFlashでもOK。
ダウンロードはこちら(zip)

この記事には、カテゴリ flex タグは , , がつけられています。

AlivePDF 1.49でFlash Player10だけでPDFを作る への2件のフィードバック