前回エントリのサンプルでも一部使用していますが、AlivePDFにはページ要素を追加するための
メソッドが色々用意されています。今回はその一部を紹介したいと思います。
テキスト関係(今のところ日本語対応には対応していないようです ※埋め込みフォントの対応は実装予定にある模様)
addText() - テキストの追加
addTextNote() - 注釈の追加
addMultiCell() - マルチセルの追加 ※マルチセルって日本語でいうとなんだろ...
setFont() - fontの指定 ※今のところ使えるフォントが数種類に制限されています
図形関係(Graphicsの各種メソッドと似ているものも多いです)
beginFill() - 塗りの色指定
drawCircle() - 円描画
drawPolygone() - 多角形描画
etc...
色指定
RGBColor, CMYKColor
画像
addImageStream() - 画像描画 ※引数でbyteArrayを指定します
画面効果(フルスクリーン時の画面効果)
addTransition() - 画面効果の追加
効果の種類の指定
Transition.WIPE, Transition.DISSOLVE, Transition.BOX, などなど
適当にページ・ページの要素が確認できるようなサンプルを作ってみました。
前回と同様AIRプロジェクトとして作成しています。
今回のサンプル
こちらが実際に生成されたPDFファイルです。Adobe Readerで全画面再生すると、画面効果も確認できるかと思います。
メソッドが色々用意されています。今回はその一部を紹介したいと思います。
テキスト関係(今のところ日本語対応には対応していないようです ※埋め込みフォントの対応は実装予定にある模様)
addText() - テキストの追加
addTextNote() - 注釈の追加
addMultiCell() - マルチセルの追加 ※マルチセルって日本語でいうとなんだろ...
setFont() - fontの指定 ※今のところ使えるフォントが数種類に制限されています
図形関係(Graphicsの各種メソッドと似ているものも多いです)
beginFill() - 塗りの色指定
drawCircle() - 円描画
drawPolygone() - 多角形描画
etc...
色指定
RGBColor, CMYKColor
画像
addImageStream() - 画像描画 ※引数でbyteArrayを指定します
画面効果(フルスクリーン時の画面効果)
addTransition() - 画面効果の追加
効果の種類の指定
Transition.WIPE, Transition.DISSOLVE, Transition.BOX, などなど
適当にページ・ページの要素が確認できるようなサンプルを作ってみました。
前回と同様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.fonts.Style; import org.alivepdf.transitions.MotionDirection; import org.alivepdf.transitions.TransitionDirection; import org.alivepdf.transitions.Dimension; import org.alivepdf.transitions.Transition; import org.alivepdf.colors.RGBColor; 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, Style.BOLD, 18); myPDF.addPage(); myPDF.addText("page 1", 20, 20); myPDF.addText("PDF generation test!", 20, 40); myPDF.addTextNote(170, 20, 50, 30, "Note!"); myPDF.addTransition(Transition.FLY, 1, Dimension.HORIZONTAL); myPDF.addPage(); myPDF.addText("page 2", 20, 20); myPDF.setFont(FontFamily.COURIER); myPDF.addMultiCell(100, 80, "multicell", 1); myPDF.addImageStream(new Jpg01() as ByteArray, 20, 160); myPDF.addTransition(Transition.GLITTER, 1, Dimension.HORIZONTAL); myPDF.addPage(); myPDF.setFont(FontFamily.ARIAL, Style.BOLD, 18); myPDF.addText("page 3", 20, 20); myPDF.beginFill(new RGBColor(0xffcc00)); myPDF.drawRect(new Rectangle(50, 50, 60, 110)); myPDF.endFill(); myPDF.addTransition(Transition.COVER, 1, Dimension.HORIZONTAL); myPDF.addPage(); myPDF.addText("page 4", 20, 20); myPDF.beginFill(new RGBColor(0xccff00)); myPDF.drawCircle(105, 148, 85); myPDF.endFill(); myPDF.addTransition(Transition.SPLIT, 1, Dimension.HORIZONTAL); try { var stream:FileStream = new FileStream(); var file:File = File.desktopDirectory.resolvePath("pdf/generate3.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>
こちらが実際に生成されたPDFファイルです。Adobe Readerで全画面再生すると、画面効果も確認できるかと思います。
What a great rseoucre this text is.
bDNHOS lwghlpfwiqlq
F0G1Sz natuojjigtwd