alive pdf 基本用法

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                       xmlns:s="library://ns.adobe.com/flex/spark"
                       xmlns:mx="library://ns.adobe.com/flex/mx">

    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import org.alivepdf.colors.RGBColor;
            import org.alivepdf.data.Grid;
            import org.alivepdf.data.GridColumn;
            import org.alivepdf.display.Display;
            import org.alivepdf.fonts.CoreFont;
            import org.alivepdf.fonts.IFont;
            import org.alivepdf.images.ColorSpace;
            import org.alivepdf.layout.Align;
            import org.alivepdf.layout.Layout;
            import org.alivepdf.layout.Mode;
            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.links.HTTPLink;
            import org.alivepdf.links.ILink;
            import org.alivepdf.pages.Page;
            import org.alivepdf.pdf.PDF;
            import org.alivepdf.saving.Method;

            private var myPDF :PDF;
            [Bindable]
            private var dp:ArrayCollection = new ArrayCollection();

            [Embed( source="img/aa.jpg", mimeType="application/octet-stream" )]
            private var imageBigStream:Class;

            [Embed( source="img/cat.jpg", mimeType="application/octet-stream" )]
            private var imageBigStream2:Class;
            public function generatePDF(pEvt:MouseEvent):void{
                //orientation:String = Portrait, unit:String = Mm, autoPageBreak:Boolean = true, pageSize:Size = null, rotation:int = 0
                myPDF = new PDF ( Orientation.PORTRAIT, Unit.MM, Size.A4, 0);
                //**添加内容时首先添加页**
                myPDF.addPage();
                //1.添加书签
                myPDF.addBookmark("A bookmark",0,1);
                myPDF.addBookmark("A.1 bookmark",1,30);
                //2.添加文本
                //a.addtext
                myPDF.addText ('addText', 5, 5);
                myPDF.textStyle( new RGBColor(0x990000), 1 );
                //b.writetext
                myPDF.writeText(1,"writeText");
                //c.htmltext
                myPDF.writeFlashHtmlText(8, " <b>Test </b ><br /> <br /> Test");
                myPDF.addPage();
                myPDF.addBookmark("B bookmark",0,1);
                //  a.普通文本
                myPDF.addCell(20,5,'boder 1 ln 1 !',1,1,"1");
                //  b.链接文本
                var iLink :ILink  = new HTTPLink("http://www.alivepdf.org");
                myPDF.addCell(50,70,'A clikable cell !', 1, 1, null, 0, iLink);
                //4.添加表格
                myPDF.addPage();
                myPDF.addBookmark("C bookmark",0,1);
                //  a.数据获取
                this.initData();
                //  b.创建表格头
                var gridColumnAge:GridColumn = new GridColumn("City", "city", 30, Align.LEFT, Align.LEFT);
                var gridColumnEmail:GridColumn = new GridColumn("E-Mail", "email", 40, Align.LEFT, Align.LEFT);
                var gridColumnFirstName:GridColumn = new GridColumn("First Name", "firstName", 40, Align.LEFT, Align.LEFT);
                var gridColumnLastName:GridColumn = new GridColumn("Last Name", "lastName", 45, Align.LEFT, Align.LEFT);
                var columns:Array = new Array ( gridColumnAge, gridColumnEmail, gridColumnFirstName, gridColumnLastName );
                //  c.创建表格
                var grid:Grid = new Grid( dp.toArray(), 200, 120, new RGBColor ( 0xCCCCCC ), new RGBColor (0xCCCCCC), true, new RGBColor(0x887711), .1, null, columns );
                var font:IFont = new CoreFont();
                //  d.添加表格之前 必须设置这两个属性
                myPDF.setFont( font, 14 );
                myPDF.textStyle( new RGBColor(0x990000), 1 );
                //  e.添加表格
                myPDF.addGrid( grid );
                //5.添加图片
                myPDF.addPage();
                myPDF.addBookmark("D bookmark",0,80);
                // a.定义文件流
                var image:ByteArray = new imageBigStream2() as ByteArray;
                //b.添加图片
                myPDF.addImageStream( image, ColorSpace.DEVICE_RGB, new Resize ( Mode.RESIZE_PAGE, Position.CENTERED ) );
                var p:Page = new Page(Orientation.LANDSCAPE);
                //addImage 添加对象成为图片 画当前界面
                myPDF.addPage(p);
                myPDF.addBookmark("E bookmark",0,1);
                myPDF.addImage( this );

                //6.画图形
                myPDF.addPage();
                myPDF.addBookmark("F bookmark",0,1);
                myPDF.lineStyle ( new RGBColor ( 0x998800 ), 0 );
                myPDF.moveTo ( 100, 100 );
                myPDF.lineTo ( 200, 200 );
                myPDF.end();
                myPDF.drawCircle( 100, 100, 50 );
                myPDF.drawRect( new Rectangle ( 10, 10, 30, 30 ) );

                //2个属性
                var totalFonts:int = myPDF.totalFonts;
                var totalPages:int = myPDF.totalPages;
                trace("totalFonts:"+totalFonts);
                trace("totalPages:"+totalPages);            

                //本地打印方式
                var fs:FileStream = new FileStream();
//              var f:File = File.applicationStorageDirectory.resolvePath(p);
                var file:File = File.desktopDirectory.resolvePath("pdf/gennerated.pdf");
                var bs:ByteArray = myPDF.save(Method.LOCAL);
                fs.open( file, FileMode.WRITE);
                fs.writeBytes(bs);
                fs.close();

                //打开预览窗口
                var option:NativeWindowInitOptions= new NativeWindowInitOptions();
                var rect:Rectangle = new Rectangle(0,100,1024,658);
                var loader:HTMLLoader = HTMLLoader.createRootWindow(true,option,true,rect);
                loader.window.document.title = "title";
                var request:URLRequest = new URLRequest(file.url);
                loader.load(request);

            }

            public function initData():void{
                dp.addItem( { firstName : "Mike", lastName : "Chambers", email : "mail@adobe.com", city : "San Francisco" } );
                dp.addItem( { firstName : "Lee", lastName : "Brimelow", email : "mail@adobe.com", city : "San Francisco" } );
                dp.addItem( { firstName : "Kevin", lastName : "Hoyt", email : "mail@adobe.com", city : "San Francisco" } );
                dp.addItem( { firstName : "Serge", lastName : "Jespers", email : "mail@adobe.com", city : "Belgium" } );
            }

        ]]>
    </fx:Script>
    <s:Button x="263" y="251" label="打印" click="generatePDF(event)"/>
    <s:RichText  fontFamily="main" fontSize="20" kerning="off" lineHeight="120%"
                 whiteSpaceCollapse="preserve"
                 right ="10" bottom="10"
                 text ="Copyright 2013 by 0o晓月メ"/>
</s:WindowedApplication>

alive pdf 基本用法的更多相关文章

  1. C#生成PDF总结

    (一)C#生成PDF总结 (1)iTextSharp控件对iTextSharp研究还可以表格.文字.各种GDI对象,图片,水印,文字旋转(2)aspose的控件(3)PDF Library这个类库(只 ...

  2. Centos7安装Wkhtmltopdf -- nodejs将html转pdf

    安装wkhtmltopdf wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.1 ...

  3. SNIFFER问题集锦

    SNIFFER相关教程下载: Sniffer使用教程.pdf|Sniffer用法.ppt 具体问题解决: 1.SNIFFER4.75无法使用,打开后提示 No adapter is binding t ...

  4. 8个不可不知的Mac OS X专用命令行工具(转)

    OS X的终端下通用很多Unix的工具和脚本.如果从Linux迁移到OS X会发现很多熟悉的命令和脚本工具,其实并没有任何区别. 但是OS X也提供了很多其他系统所没有的特别的命令行工具.我们推荐8个 ...

  5. 8个不可不知的Mac OS X专用命令行工具【转】

    OS X的终端下通用很多Unix的工具和脚本.如果从Linux迁移到OS X会发现很多熟悉的命令和脚本工具,其实并没有任何区别. 但是OS X也提供了很多其他系统所没有的特别的命令行工具.我们推荐8个 ...

  6. SecureCRT 下载,安装,绝佳配色,实用配置,上传下载配置合集

    SecureCRT 下载,安装,绝佳配色,实用配置,上传下载配置合集 chocoball 发布于 2年前,共有 3 条评论 SecureCRT 是一款支持 SSH2.SSH1.Telnet.Telne ...

  7. 使用 python 把一个文件生成 C 语言中的数组并保存到头文件中

    (一)要做什么 之前有这么一个需求,是要把一个二进制文件里面的数据,转换成 C 代码里面的数组,可以看之前的一篇文章: NUC980 运行 RT-Thread 驱动 SPI 接口 OLED 播放 ba ...

  8. 内网渗透----Token 窃取与利用

    0x00 前言 在之前的文章<渗透技巧--程序的降权启动>介绍了使用 SelectMyParent 降权的方法,本质上是通过 token 窃取实现的.这一次将要对 token 窃取和利用做 ...

  9. Microsoft.Office.Interop.Excel的用法以及利用Microsoft.Office.Interop.Excel将web页面转成PDF

    1.常见用法           using Microsoft.Office.Interop.Excel; 1)新建一个Excel ApplicationClass ExcelApp = New A ...

随机推荐

  1. ng-checked选择和点击增加dom

      1.需求 在添加页面实现一个checkbox的选择,然后在详情页面展示时,会自动选上之前被选中的. 2.添加页面 看官最好将这个代码复制过去看看效果. <!DOCTYPE html>& ...

  2. Java基础知识二次学习--第三章 面向对象

    第三章 面向对象   时间:2017年4月24日17:51:37~2017年4月25日13:52:34 章节:03章_01节 03章_02节 视频长度:30:11 + 21:44 内容:面向对象设计思 ...

  3. CentOS上安装NodeJs

    (1)参照:http://www.cnblogs.com/zhangqingsh/archive/2013/04/15/3022583.html  安装Python2.7 (2)安装Nodejs yu ...

  4. [oracle]Oracle数据库安全管理

    目录 +  1.数据库安全控制策略概述 +  2.用户管理 +  3.资源限制与口令管理 +  4.权限管理 +  5.角色管理 +  6.审计 1.数据库安全控制策略概述 安全性是评估一个数据库的重 ...

  5. 使用wamp扩展php时出现服务未启动的解决方法

    今天在使用wamp扩展php的插件时,出现了如下图所示的错误提示 网上查了查,都说是端口原因,修改Apache的 80端口,但是并没有解决问题. 最后我终于找到了解决方法,步骤很简单,如下: 首先,在 ...

  6. 使用nodeJS实现前端项目自动化之项目构建和文件合并

    前面的话 一般地,我们使用构建工具来完成项目的自动化操作.本文主要介绍如何使用nodeJS来实现简单的项目结构构建和文件合并 项目构建 假设,最终实现的项目名称为'test',结构如下图所示 那么,首 ...

  7. Windows 修改电脑属性(一)

    修改电脑属性里的注册信息 修改电脑属性的注册信息 运行注册表的方法:开始→运行→regedit→确定 1.CPU型号可以注册表编辑器中定位到下面的位置: HKEY_LOCAL_MACHINE\HARD ...

  8. Java常用类之【字符串相关类型】

    一.字符相关类型 分类: 1.不可变的字符序列: String类 2.可变的字符序列: StringBuilder类--->线程不安全的 执行效率相对较高 StringBuffer类---> ...

  9. Java常用集合体系以及相互区别

    Collection集合特点: 1.2.1一些 collection 允许有重复的元素,而另一些则不允许 1.2.2一些 collection 是有序的,而另一些则是无序的 [有序是指与添加的顺序一致 ...

  10. 史上最完整Hadoop2.x完全分布式安装部署-小白也能学会

    一.环境要求: 1.        虚拟机安装并设置网络: 2.        修改主机地址映射: 3.        必备软件:Jdk.Development Tools   Development ...