AlivePDFを試してみた

| | コメント(3) | トラックバック(0)
AlivePDFとは...
  • as3用のPDF生成用ライブラリ
  • 公式サイトは http://www.alivepdf.org/
  • ライセンスはMIT License
  • 現在の最新バージョンは 0.1.4.3
公式サイトにビデオチュートリアルがあってすごい親切です。※ ただ、0.1.4.3だと一部書き換えないとコンパイル失敗しますが.

ひとまずチュートリアル見ながら、簡単な流れがわかるサンプルを作ってみました。
※PDFをローカル保存する為、flexbuilderのAIRプロジェクトで作成しています。

作成したサンプルのソース
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Text id="txt" x="10" y="10" width="200"/>
    <mx:Button label="Generate PDF" click="generatePDF(event)" x="10" y="30"/>
    <mx:Script>
        <![CDATA[
            import org.alivepdf.images.ImageFormat;
            import org.alivepdf.pages.Page;
            import org.alivepdf.events.ProcessingEvent;
            import org.alivepdf.fonts.FontFamily;
            import org.alivepdf.saving.Method;
            import org.alivepdf.layout.Size;
            import org.alivepdf.layout.Unit;
            import org.alivepdf.layout.Orientation;
            import org.alivepdf.pdf.PDF;
            [Embed( source="01.jpg", mimeType="application/octet-stream" )]
            private var Jpg01:Class;
            private var myPDF:PDF;
            public function generatePDF(event:MouseEvent):void {
                myPDF = new PDF(Orientation.PORTRAIT, Unit.MM, Size.A4);
                myPDF.addEventListener(ProcessingEvent.COMPLETE, completeHandler);
                myPDF.setFont(FontFamily.ARIAL);
                myPDF.addPage();
                myPDF.addText("PDF generation test!", 20, 20);
                myPDF.addPage(new Page(Orientation.LANDSCAPE, Unit.MM, Size.A4));
                myPDF.addText("page 2", 20, 20);
                myPDF.addImageStream(new Jpg01() as ByteArray, 20, 60);
                try {
                    var stream:FileStream = new FileStream();
                    var file:File = File.desktopDirectory.resolvePath("pdf/generate2.pdf");
                    stream.open(file, FileMode.WRITE);
                    var bytes:ByteArray = myPDF.save(Method.LOCAL);
                    stream.writeBytes(bytes);
                } catch(e:Error) {
                    txt.text = "ファイルをオープン出来ません"
                } finally {
                    stream.close();
                }
            }
            private function completeHandler(event:ProcessingEvent):void {
                txt.text = "PDF生成終了";
            }
           
        ]]>
    </mx:Script>
</mx:WindowedApplication>
サンプルの流れ
まずnew PDF()でPDFクラスのインスタンス作成。
引数で用紙方向、サイズなどを指定します。

Orientation - 用紙方向
PORTRAIT - 縦長
LANDSCAPE - 横長

Unit - 単位
CM, INCH, MM, POINT

Size - サイズ(まんま)
A4, A5, etc...

addEventListner してあげるとpage追加や生成終了などのイベントを拾えます
 -> ProcessingEvent

addPage() でページを追加
addText(),addImageStream()などでページの要素を追加していきます

save()でバイナリデータ化して
filestreame.writeBytes()でファイルへの書き込み処理をします

割と簡単ですね!

(今回のエントリーはちょい絶vol.4の発表ネタをそのまま公開しています)

トラックバック(0)

このブログ記事を参照しているブログ一覧: AlivePDFを試してみた

このブログ記事に対するトラックバックURL: http://connect2.jp/mt/mt-trackback.cgi/87

コメント(3)

This is way better than a brick & mortar estabilshemnt.

H6HmbI hrddoifhtegp

gctPu0 sdzzbpbgxlrr

コメントする


画像の中に見える文字を入力してください。