alive pdf 基本用法
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 基本用法的更多相关文章
- C#生成PDF总结
(一)C#生成PDF总结 (1)iTextSharp控件对iTextSharp研究还可以表格.文字.各种GDI对象,图片,水印,文字旋转(2)aspose的控件(3)PDF Library这个类库(只 ...
- Centos7安装Wkhtmltopdf -- nodejs将html转pdf
安装wkhtmltopdf wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.1 ...
- SNIFFER问题集锦
SNIFFER相关教程下载: Sniffer使用教程.pdf|Sniffer用法.ppt 具体问题解决: 1.SNIFFER4.75无法使用,打开后提示 No adapter is binding t ...
- 8个不可不知的Mac OS X专用命令行工具(转)
OS X的终端下通用很多Unix的工具和脚本.如果从Linux迁移到OS X会发现很多熟悉的命令和脚本工具,其实并没有任何区别. 但是OS X也提供了很多其他系统所没有的特别的命令行工具.我们推荐8个 ...
- 8个不可不知的Mac OS X专用命令行工具【转】
OS X的终端下通用很多Unix的工具和脚本.如果从Linux迁移到OS X会发现很多熟悉的命令和脚本工具,其实并没有任何区别. 但是OS X也提供了很多其他系统所没有的特别的命令行工具.我们推荐8个 ...
- SecureCRT 下载,安装,绝佳配色,实用配置,上传下载配置合集
SecureCRT 下载,安装,绝佳配色,实用配置,上传下载配置合集 chocoball 发布于 2年前,共有 3 条评论 SecureCRT 是一款支持 SSH2.SSH1.Telnet.Telne ...
- 使用 python 把一个文件生成 C 语言中的数组并保存到头文件中
(一)要做什么 之前有这么一个需求,是要把一个二进制文件里面的数据,转换成 C 代码里面的数组,可以看之前的一篇文章: NUC980 运行 RT-Thread 驱动 SPI 接口 OLED 播放 ba ...
- 内网渗透----Token 窃取与利用
0x00 前言 在之前的文章<渗透技巧--程序的降权启动>介绍了使用 SelectMyParent 降权的方法,本质上是通过 token 窃取实现的.这一次将要对 token 窃取和利用做 ...
- Microsoft.Office.Interop.Excel的用法以及利用Microsoft.Office.Interop.Excel将web页面转成PDF
1.常见用法 using Microsoft.Office.Interop.Excel; 1)新建一个Excel ApplicationClass ExcelApp = New A ...
随机推荐
- 第 2 章 MySQL 架构组成
麻雀虽小,五脏俱全.MySQL 虽然以简单著称,但其内部结构并不简单.本章从MySQL物理组成.逻辑组成,以及相关工具几个角度来介绍 MySQL 的整体架构组成,希望能够让读者对 MySQL 有一个更 ...
- javaWeb学习总结(10)- Filter(过滤器)学习
一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有 web资源:例如Jsp, Servlet, 静 ...
- OpenStack云平台的网络模式及其工作机制
网络,是OpenStack的部署中最容易出问题的,也是其结构中难以理清的部分.经常收到关于OneStack部署网络方面问题和OpenStack网络结构问题的邮件.下面根据自己的理解,谈一谈OpenSt ...
- 从零自学Hadoop(23):Impala介绍及安装
阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一篇, ...
- Warning: session_start() [function.session-start]: Cannot send session cache limiter
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers alrea ...
- yarn工作流程
YARN 是 Hadoop 2.0 中的资源管理系统, 它的基本设计思想是将 MRv1 中的 JobTracker拆分成了两个独立的服务 : 一个全局的资源管理器 ResourceManager 和每 ...
- Bottle源码阅读笔记(一):WSGI
前言 Bottle是一个Python Web框架.整个框架只有一个文件,不到4k行的代码,没有Python标准库以外的依赖,却包含了路由.模板和插件等Web框架常用功能.通过阅读Bottle源码来了解 ...
- Java内存管理思维导图
文 by / 林本托 Tips 做一个终身学习的人. 如果想要成为一名合格的 Java 程序员,就必须要涉及和掌握一些 Java 虚拟机的内部结构和特性.最近在读<深入理解Java 虚拟机> ...
- NLTK学习笔记(四):自然语言处理的一些算法研究
自然语言处理中算法设计有两大部分:分而治之 和 转化 思想.一个是将大问题简化为小问题,另一个是将问题抽象化,向向已知转化.前者的例子:归并排序:后者的例子:判断相邻元素是否相同(与排序). 这次总结 ...
- 安装并配置Apache
从今天开始,我将开始Web开发的学习.本系列博客将陆续记录我学习过程中的收获和困惑,从前端到后端,一探Web开发的流程和内容.我目前掌握的有C/C++,有一些使用C进行嵌入式开发的经验,C++就马马虎 ...