`
Blackbaby
  • 浏览: 183900 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

AlivePDF本地生成PDF

阅读更多

直接上例子吧,本来想用html布局生成pdf的,没成功。。。

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
	xmlns:s="library://ns.adobe.com/flex/spark"
	xmlns:mx="library://ns.adobe.com/flex/mx"
	xmlns:groe_org="org.groe.html.*"
	minWidth="955"
	minHeight="600">
	<fx:Declarations>
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import flash.display.*;
			import flash.events.*;
			import flash.net.*;
			import flash.text.*;
			
			import mx.core.UIComponent;
			
			import org.alivepdf.colors.RGBColor;
			import org.alivepdf.data.Grid;
			import org.alivepdf.data.GridColumn;
			import org.alivepdf.display.Display;
			import org.alivepdf.drawing.Joint;
			import org.alivepdf.fonts.CoreFont;
			import org.alivepdf.fonts.FontFamily;
			import org.alivepdf.fonts.Style;
			import org.alivepdf.layout.Layout;
			import org.alivepdf.layout.Orientation;
			import org.alivepdf.layout.Position;
			import org.alivepdf.layout.Resize;
			import org.alivepdf.layout.Size;
			import org.alivepdf.layout.Unit;
			import org.alivepdf.pdf.PDF;
			import org.alivepdf.saving.Method;
			import org.groe.html.FlashHtmlRenderer;
			import org.groe.html.HtmlParser;
			
			import spark.components.ResizeMode;

			protected var frPDF:PDF;

			[Bindable]
			private var str:String = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"><html><head><title>groe.org AS3 Html Parser Test</title><div style='border: 1px red solid;'>Hello</div></body></html>";
			
			private function onSave(e:Event):void
			{
				var pdf:PDF=new PDF(Orientation.PORTRAIT, Unit.MM, Size.LETTER);
				pdf.setDisplayMode(Display.FULL_WIDTH, Layout.SINGLE_PAGE);
				pdf.addPage();

				var gridColumnParcel:GridColumn=new GridColumn("Parcel ID", "Cls_Name", 100);
				var gridColumnAcreage:GridColumn=new GridColumn("Parcel Acreage", "Area_Acre", 100);
				var columns:Array=new Array(gridColumnParcel, gridColumnAcreage);

				var arr:Array=[{Cls_Name: "Bob", Area_Acre: "Groove"}, {Cls_Name: "Bob", Area_Acre: "Wise", city: "Paris"}];

				pdf.setMargins(10, 10, 10, 10);
				pdf.textStyle(new RGBColor(0xCCCCCC), 1);
				pdf.setFont(new CoreFont());

				var grid:Grid=new Grid(arr, 500, 1200, new RGBColor(0x0038FF), new RGBColor(0x00CCFF), true, new RGBColor(0x0), .1);
				grid.columns=columns;
				pdf.addGrid(grid);

				
				
				pdf.setFont( new CoreFont(FontFamily.COURIER),14 );
				pdf.textStyle ( new RGBColor ( 0x990000 ) );
				pdf.addMultiCell ( 70, 12, "AAAAAAAAAAAAAAAAAAAAAAAa multicell :)", 1);
				pdf.addMultiCell ( 70, 12, "A multicell :)", 1,"J",1);
				pdf.newLine(2);
				pdf.addPage();
				pdf.addCell(70, 12, "BBBBBBBBBBBBBBBBBBBBBBB cell :)", 1);
				pdf.addCell(70, 12, "B cell :)", 1);
				pdf.writeText ( 5, "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.");
				
				var bytes:ByteArray=pdf.save(Method.LOCAL);
				var f:FileReference=new FileReference();
				f.save(bytes, "pdf.pdf");

			}


			private function printScreenShot(e:Event):void
			{
				var whatToPrint:UIComponent=this;
				var printPDF:PDF=new PDF(Orientation.LANDSCAPE, Unit.MM, Size.A4);
				printPDF.setDisplayMode(Display.FULL_WIDTH, Layout.SINGLE_PAGE);
				printPDF.addPage();
				printPDF.addImage(whatToPrint, new Resize(ResizeMode.SCALE, Position.CENTERED), 0, 0, 100, 100);
//				printPDF.save(Method.REMOTE, serverScript, howToOutput, "alivePDFExample.pdf");
				var bytes:ByteArray=printPDF.save(Method.LOCAL);
				var f:FileReference=new FileReference();
				f.save(bytes, "screenshot.pdf");


			}


			private function htmlForPDF(e:Event):void
			{
				var whatToPrint:UIComponent=this;
				var printPDF:PDF=new PDF(Orientation.LANDSCAPE, Unit.MM, Size.A4);
				printPDF.setDisplayMode(Display.FULL_PAGE, Layout.SINGLE_PAGE);
				printPDF.addPage();
				
				
				//printPDF.writeFlashHtmlText(20, "<div style='border: 1px silver solid;'>Hello</div>");
				//whatToPrint = FlashHtmlRenderer.render(HtmlParser.parse("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"><html><head><title>groe.org AS3 Html Parser Test</title><div style='border: 1px red solid;'>Hello</div></body></html>"));
				
				printPDF.addImage(whatToPrint);
				var bytes:ByteArray=printPDF.save(Method.LOCAL);
				var f:FileReference=new FileReference();
				f.save(bytes, "html.pdf");


			}
		]]>
	</fx:Script>
	<s:layout>
		<s:HorizontalLayout verticalAlign="middle"  horizontalAlign="center"/>
	</s:layout>
	
	<s:Button label="pdf"      click="onSave(event)"/>
	<s:Button label="html"    click="htmlForPDF(event)"/>
	<s:Button label="printScreenShot"   click="printScreenShot(event)"/>
</s:Application>

 

   如果你想用一张图片做背景,你可以这样做:

 

[Embed( source="/assets/images/pdf/option3.jpg", mimeType="application/octet-stream" )]
private var jpg3Bytes:Class;
var resize:Resize = new Resize(Mode.RESIZE_PAGE, Position.CENTERED);
pdf.addImageStream( new jpg3Bytes() as ByteArray, ColorSpace.DEVICE_RGB, resize);

 

分享到:
评论
2 楼 Blackbaby 2011-10-21  
fq_jeid 写道
请问本地生成pdf中文问题解决了没.?\

这个没注意啊,之前没有弄到有中文的情况
1 楼 fq_jeid 2011-09-21  
请问本地生成pdf中文问题解决了没.?\

相关推荐

    flex通过AlivePDF生成PDF文档

    ### flex通过AlivePDF生成PDF文档 #### 知识点概览 本文将详细介绍如何使用Flex框架结合AlivePDF库来生成PDF文档。主要内容包括:AlivePDF的基本介绍、Flex环境搭建、AlivePDF类库详解以及实际代码示例分析。 ###...

    AlivePDF生成pdf技术文档[参照].pdf

    如果目标用户群使用的是Flash Player 10或更高版本,可以直接在本地生成PDF。 在服务器端,AlivePDF提供了PHP、Java和C#的示例代码,便于开发者集成到自己的服务端环境。对于AIR应用,由于可以直接访问本地文件系统...

    flex生成pdf全套

    本资源“flex生成pdf全套”提供了一个解决方案,通过AlivePDF库来实现这一目标。 AlivePDF是Flex中一个轻量级的库,它允许开发者在Flex应用中直接创建和导出PDF文件。这个库并不依赖Adobe AIR,因此可以在Flash ...

    jasperreports+alivepdf+Flex解决打印和导出PDF问题

    4. **使用alivepdf**:在Flex应用中引入alivepdf库,接收服务器返回的PDF二进制流,将其转化为PDF文件并显示在用户界面上,或者提供一个下载链接让用户保存到本地。 5. **打印功能**:利用Flex的printJob类,可以...

    PDF生成例子,AIR

    在提供的压缩包文件中,"AlivePDF 0.1.4.8"很可能就是这样一个库,它是一个开源的ActionScript库,用于在Adobe Flex或AIR项目中生成PDF文档。 AlivePDF库提供了API接口,允许开发者在ActionScript代码中创建、编辑...

    AlivePDF中文补丁

    解决alivepdf中文乱码问题 解决alivepdf中文乱码问题

    FLEX alive pdf 打印pdf

    AlivePDF是Flex的一个库,它允许开发人员在客户端生成、读取和修改PDF文档。 在Flex应用中,AlivePDF库提供了API接口,可以方便地创建PDF文档,并且支持对PDF进行各种操作,如添加文本、图像、表格、线条等元素,...

    AlivePDF 0.1.5 RC(For FlashBuilder)

    该源码源自于AlivePDF 0.1.5 RC 在Flash Builder 4.5下引入代码重建工程,已在flex sdk 3.6, 4.5下测试。 理论上兼容3.*, 4.*,因为是比较底层的库,但未在全部flex sdk下编译测试,使用者根据实际使用情况测试...

    flex4.5打印导出pdf完美版

    AlivePDF是一个开源的ActionScript库,它允许Flex开发者在客户端生成PDF文件,而无需服务器端处理。这个项目是在AlivePDF的基础上进行修改和优化的,以适应特定的打印需求。开发者可能已经解决了AlivePDF的一些已知...

    AlivePDF 0.1.5 RC(For FB)

    该源码源自于AlivePDF 0.1.5 RC 在Flash Builder 4.5下引入代码重建工程,已在flex sdk 3.6, 4.5下测试。 理论上兼容3.*, 4.*,因为是比较底层的库,但未在全部flex sdk下编译测试,使用者根据实际使用情况测试...

    Flex打印控件(FlexReport)

    Flex打印控件,如标题所述,FlexReport,是一种在Adobe Flex应用程序中用于生成和打印报告的组件。这个压缩包`FlexReport.zip`...同时,它也展示了如何利用AlivePDF进行PDF生成,以及如何组织和管理应用程序的资源。

    MyReport免费版PDF和EXCEL报表导出

    MyReport 2.3.6免费版PDF和EXCEL文件导出,导出功能整合到打印预览界面中,直接读取MyReport的XML报表文件动态导出。此代码为flex 4.6的网页导出,引用MyReport 2.3.6.0免费版、AlivePDF_0.1.5、as3xls-1.0.1三个SWC...

    Flex组建大全|Flash|Flex|ActionScript3.0

    17. **AlivePDF**: 开源的PDF创建库,使得在AS3中生成PDF文档成为可能。 18. **jwopitz-lib**: 提供一系列Flex用户界面组件的开源库。 19. **as3crypto**: 实现了多种加密算法的AS3库,如AES、DES等,用于数据安全...

    AS3常见开源项目大全

    20. **AlivePDF**:用于在AS3中创建PDF文档的开源库,方便生成或编辑PDF文件。 21. **jwopitz-lib**:一组Flex用户界面组件,提供额外的UI元素和功能。 22. **flare**:一套强大的可视化交互类库,用于创建复杂的...

    AS3类库资源大集合

    17. **AlivePDF**:用于在AS3中创建和编辑PDF文档的开源库。 18. **jwopitz-lib**:提供了一系列开源的Flex用户界面组件,增强应用的视觉表现和交互体验。 19. **as3crypto**:包含多种加密算法的AS3加密库,如AES...

Global site tag (gtag.js) - Google Analytics