AlivePDFを試してみた(2)

| | コメント(3) | トラックバック(0)
前回エントリのサンプルでも一部使用していますが、AlivePDFにはページ要素を追加するための
メソッドが色々用意されています。今回はその一部を紹介したいと思います。

テキスト関係(今のところ日本語対応には対応していないようです ※埋め込みフォントの対応は実装予定にある模様)
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で全画面再生すると、画面効果も確認できるかと思います。

トラックバック(0)

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

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

コメント(3)

What a great rseoucre this text is.

bDNHOS lwghlpfwiqlq

F0G1Sz natuojjigtwd

コメントする


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