AlivePDFとは...
ひとまずチュートリアル見ながら、簡単な流れがわかるサンプルを作ってみました。
※PDFをローカル保存する為、flexbuilderのAIRプロジェクトで作成しています。
作成したサンプルのソース
まず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の発表ネタをそのまま公開しています)
- as3用のPDF生成用ライブラリ
- 公式サイトは http://www.alivepdf.org/
- ライセンスはMIT License
- 現在の最新バージョンは 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の発表ネタをそのまま公開しています)
This is way better than a brick & mortar estabilshemnt.
H6HmbI hrddoifhtegp
gctPu0 sdzzbpbgxlrr