本文需要的AlivePDF.SWC请到http://code.google.com/p/alivepdf/downloads/list下载
请注意:AlivePDF.SWC无法处理中文,中文乱码,正在寻求解决办法
Main.MXML
-------------------------------
<mx:Script>
<!--[CDATA[
import org.alivepdf.saving.Download;
import org.alivepdf.pages.Page;
import org.alivepdf.pdf.PDF;
import org.alivepdf.layout.Orientation;
import org.alivepdf.layout.Size;
import org.alivepdf.layout.Unit;
import org.alivepdf.display.Display;
import org.alivepdf.saving.Method;
import org.alivepdf.fonts.FontFamily;
import org.alivepdf.fonts.Style;
import org.alivepdf.colors.RGBColor;
import mx.utils.UIDUtil;
protected var claimPDF:PDF;
[Embed(source="img/05.jpg", mimeType="application/octet-stream" )]
protected var jpgBytes:Class;
protected function savePDF(e:MouseEvent):void
{
claimPDF = new PDF(Orientation.LANDSCAPE, Unit.MM, Size.LETTER);//创建PDF实例
claimPDF.setDisplayMode (Display.FULL_WIDTH);//设置整个页面
claimPDF.addPage();//添加一页(默认第一页)
//添加图片流
claimPDF.addImageStream(new jpgBytes() as ByteArray, 5, 5, 0, 0, 1);
claimPDF.setFont(FontFamily.ARIAL , Style.NORMAL, 12);//设置字体样式、大小
/* 添加文本 */
claimPDF.addText("Name: " + this.firstName.text + " " + lastName.text,10,100);
claimPDF.addText("Date: " + this.date.text,10,110);
claimPDF.addTextNote(48,115,100,2,"Claim Filed on: " + this.date.text + " today's date: " + new Date());
claimPDF.addText("Policy #: " + this.policyNum.text,10,120);
claimPDF.addText("Contact #: " + this.contact.text,10,130);
claimPDF.addText(this.claimNum.text,10,140);
claimPDF.addText("Description:",10,150);
claimPDF.setXY(10,150);
claimPDF.addMultiCell(100,5,desc.text);//添加多行
/* 添加第二页 */
var pg:Page=new Page(Orientation.LANDSCAPE,Unit.MM,Size.A4);
claimPDF.addPage(pg);
//添加图片
claimPDF.addImageStream(new jpgBytes() as ByteArray, 5, 5, 0, 0, 1);
//保存pdf,请求到servelt
claimPDF.save(Method.REMOTE,"/WebTest/PDFServlet",Download.ATTACHMENT,"aaa.pdf");
}
protected function submitClaimNum():void
{
claimNum.text='Claim # Assigned: '+ UIDUtil.createUID();//just generate a random id for sample purposes
this.savePDFBtn.visible=true;
}
]]-->
</mx:Script>
<mx:Style>
FormItem, Label, Button {
color: #FFFFFF;
}
TextInput, DateField {
color: #000000;
}
</mx:Style>
<mx:Label top="10" left="10" text="Input information and press 'File Claim' to get assigned claim #, then press Save to PDF." color="0xCCCCCC"/>
<mx:Label fontSize="18" text="Insurance Claim Form" left="10" top="30"/>
<mx:HBox width="100%" height="100%" top="40" left="10" color="0x000000">
<mx:Form id="form1" width="283" height="300">
<mx:FormItem label="First Name:">
<mx:TextInput id="firstName"/>
</mx:FormItem>
<mx:FormItem label="Last Name:">
<mx:TextInput id="lastName"/>
</mx:FormItem>
<mx:FormItem label="Date:">
<mx:DateField id="date" />
</mx:FormItem>
<mx:FormItem label="Policy #:">
<mx:TextInput id="policyNum" />
</mx:FormItem>
<mx:FormItem label="Contact #:">
<mx:TextInput id="contact" maxChars="12"/>
</mx:FormItem>
</mx:Form>
<mx:Canvas top="10" left="10" width="300" height="100%">
<mx:Label text="Description:" y="2"/>
<mx:TextArea id="desc" y="18" height="133" width="205"/>
</mx:Canvas>
</mx:HBox>
<mx:HBox top="205" left="185">
<mx:Button label="File Claim" click="submitClaimNum()"/>
<mx:Button horizontalCenter="0" click="savePDF(event)" label="Save to PDF" id="savePDFBtn" visible="false"/>
</mx:HBox>
<mx:Label id="claimNum" top="238" left="83"/>
</mx:Application>
PDFServlet.java
--------------------------------------