



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
把XML转成PDF的有效工具:FOP格式对象处理器 (FOP) 是一个源码开放的Java API,可以把XML数据转换成PDF格式,同样的,也可以转成其他相关的格式,象TXT, SVG, AWT, MIF, 和 PS. 该软件是在Apache XML项目下开发的,可以免费使用。这篇文章展示了如何开始使用FOP。FOP的主要优点是它转换XML数据到PDF格式报告的性能,使用的了格式化树结构。我们提供的绝大多数的例子将会集中展示这个非凡的转换,但也会把XML数据转成Java AWT格式.这篇文章的面向于精通XML和XSLT的开发者的。要获取更多的关于XML的信息,可以到XML.com。安装FOP 可以从FOP 发布目录上面下载。下载文件是一个gzip 文件包,它包括两个发行包。其中fop-0.20.4-src 发行包包含源代码,使用它可以自己用Ant 进行编译。fop-0.20.4-bin 发行包包含了运行部分, 里面没有源代码和Java文档。把源码包解压到你选择的一个目录下。你会得到程序解压生成的fop-0.20.4主目录 和一系列子目录:build, conf, docs, hyph, lib 和 src. build 包含最新的FOP运行文件fop.jar, 这个文件应该被放在应用程序的CLASSPATH 中。 conf 包含了确定的配置文件,这个我们将在后面进行讨论。 docs 包含了各种各样的例子,文档,和一些图形图片。 hyph 包含了不同语言的连字符信息。 lib 包含了所有的外部.jar 文件,这些文件对于FOP自己的运行是必需的。他们包括Avalon, Batik, Xalan, 和 Xerces。 由于这篇文章 是着重介绍FOP的, 我们不会深入讨论这些API。只需要知道FOP使用这些API就够了。在配置的时候我们需要把这些库放到应用程序的CLASSPATH 中。 src 包含了所有源代码。 FOP 简介 图形1. FOP 架构.FOP 是一个被3W组织在XSL 说明书 中指定的用于理解格式化对象的工具。说明书的第一部分说明了XSLT的转化处理。我们感爱好的是第二部分, 里面说明了我们所说的格式化对象(FO)的处理。 说明书中的这一部分定义了独立输出的格式化对象, 它由一系列的文档风格以及布局的词表组成。举个例子来说, 其中的一个格式化对象是fo:simple-page-master, 它用来说明一个页面模板,它包含一些相关的属性 (边界,页头, 等等)。就这样,象FOP这样的工具可以读吃这些信息并且把这些信息转化成想要的格式输出(PDF/TXT)。很重要的一点是相同的风格信息可以产生不同的输出。 一篇FO 文档简单的说就是一篇XML文档。 它的命名空间由W3C 站点 定义。它 可以包含任何在这个命名空间中元素。你能够手工的创建这样的文档并且为每一个元素指定确切的值,每一个元素应该被输出。然而,更为通用的方法是写一个XSLT的样式表,来治理你的XML数据文件, 根据你的样式标的规则来进行转换, 从而产生最终的FO文档。动态生成的数据能够跟一个存在的样式表绑定来产生FO 文档。虽然FOP的主要意图是处理FO文档, 但是他也能够通过一个样式表完成已存在数据文件(XML)的转换。我们假定在一XSL文件的表中有你的以XML个是存放的商务数据以及样式表信息。假如你把这两者提供给FOP, FOP 将会把这些信息转换成一篇临时的FO文档并且最终生成你期望的输出。一个简单的例子例子文件下载这篇文章中的例子文件 。这个.zip 文件包含了下列文件: krusty.fo, krusty.pdf, krusty.xml, and krusty.xsl.了解了原理以后,让我们实际运行一下FOP。 打开一个命令窗口并且定位到你的FOP安装目录下。FOP 的根目录下面包含了两个运行体:一部分是可运行在Unix系统上的shell脚本,另一部分是用于windows环境的一系列文件,通过这些文件FOP能够通过命令行来运行。根据你的系统情况来运行相关的脚本。FOP将会报没有输入参数的提示,从而输出一系列的运行例子。好的这意味着你现在可以开始使用FOP了。让我们从创建一个简单的FO 文件开始。假如你想要看到最终结果, 可以点击这里krusty.fo.就像我前面所讲到过的,一个FO文件是一个简单的类似表的Xml文件。因此开开你的文本编辑器并输入第一行:所有的FO文件必须有这个外层元素作为根/1999/XSL/Format. 这个 根 元素的后面跟着元素,它表明了我们文档的页面布局。page-height=29.7cm page-width=21cmmargin-top=1cm margin-bottom=2cm margin-left=2.5cm margin-right=2.5cm就像你看到的, 主要的布局设置包括不同的简单的可以放在里面的页面布局定义。在我们的例子中,已经定义了一个单独的简单页面治理者,在里面,我们可以看到简单页面的属性,我们给它起的名字simple (这个名字以后我们会用到), 这个页面的高度是29.7 厘米, 宽度是21 厘米, 顶端空白为1 厘米, 等等。我们可以定义许多我们想要的简单页面并且赋给他们不同的名字,这些名字我们会在后面饮用这些页面的时候用到。现在我们已经定义了页面队列术语和大小与它们将来看上去模样的对应,进而我们需要定义实际的目录持有者。下面是我们使用 标记的位置:注重在定义页面顺序的时候,我们引用到了简单的页面治理者, 之所以称为简单, 是因为我们在前面已经定义了。这意味着我们的内容将被简单页面治理者限定在一个页面之内。 实际的内容被放在 元素中。在元素中的 元素,开始一个段落并定义这个段落的每个属性。就此出来说我们设开头文字Krusty the Clown,的字体为sans serif 字体, 背景色为蓝色,文字排序方式为居中。简单的, 对于下一个块,我们设定字体大小为12 磅。文字排序方式根据具体情况而定。font-family=sans-serif line-height=24ptspace-after.optimum=15ptbackground-color=bluecolor=whitetext-align=centerpadding-top=3ptKrusty the Clownfont-family=sans-serif line-height=15ptspace-after.optimum=3pttext-align=justify这个备忘录解释了为什末Krusty the Clown 是我们做好的客户。我们需要从现在开始关心他的需求,从而确保他的宠物猴子有足够的香蕉可以吃。最后, 关闭所有打开的标记并且保存为文件krusty.fo,这个文件存放在FOP根目录下。现在是看FOP运作的时候了。在FOP的根目录下,敲入如下的命令:fop krusty.fo krusty.pdfFOP 将会运行并且在相同的目录下将我们的krusty.fo 文件转化为一个krusty.pdf 文档。通过双击打开文件,检查最终的输出是否真的符合我们的要求。 对FO 文件进行一点改变,然后看看在输出中有什末影响。 从改变内容中的文字开始,继而试着改变风格,边界, 颜色, 字体, 等等, 然后看所有的变化是怎样的。XSL + XML通过运行简单的例子, 你将会注重到手工的产生一个FO文档是很难的。直接的修改和改变FO文件实在是令人讨厌的,我们正在失去内容独立性的优越性。因此通常地, 你将会换用一个XSLT样式表来把你的XML数据转化成为一篇XSL-FO 文件。你不需要在外部或者为这个转换明确地做什末事情来转换到FOP。你可以为FOP指定样式表和XML文件,这样FOP就可以自己进行转化了。让我们看看下面的例子,它会告诉我们这些是怎样实现的。我们将从前面的例子中把数据提取出来放到一个XML 文件 中。因此我们的XML 数据文件看书去就会使这个样子的:Krusty the Clown这个备忘录解释了为什末Krusty the Clown 是我们做好的客户。我们需要从现在开始关心他的需求,从而确保他的宠物猴子有足够的香蕉可以吃。把这个文件保存在FOP的根目录下。我们现在需要生成一个样式表,然后用它来转化这个数据文件为FO文件。要想察看最后的结果,可以下载最后的XSL 文件 (这个文件也在FOP.zip 例子文件中)。xmlns:xsl=/1999/XSL/Transformxmlns:fo=/1999/XSL/Format像期望的那样, XSL文档的开头是XML声明, 紧跟着是命名空间的声明。假如你以前曾经用过XSLT, 你会注重到现在我们试图做的是对我们的XML中的标记进行匹配,替换并使用它们来转化为另一个XML文件,也就是我们的FO文件。因此上面的文本行寻找和匹配根 标记并使用它后面的内容来替换它。这个内容, 下面是它的概要, 基本来说,它是我们简单布局治理者的定义,正如我们上面对FO文件所描述的那样。/1999/XSL/Formatpage-height=29.7cm page-width=21cmmargin-top=1cm margin-bottom=2cm margin-left=2.5cm margin-right=2.5cm用实际的格式化信息替换数据标记从而形成我们的XSL 文件。font-family=sans-serif line-height=24ptspace-after.optimum=15ptbackground-color=bluecolor=whitetext-align=centerpadding-top=3ptfont-family=sans-serif line-height=15ptspace-after.o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校内活动安全知识培训课件
- 医学基础知识常考题(含答案)
- 2025年雇佣执行经理合同范本
- 医疗器械法规知识培训试题及答案(单体药店或连锁门店)
- 2025年VTE、伤口造口相关知识培训后考核试题及答案
- 树木寻访记探究课件
- 2025年山西省保密知识教育考试题(含答案)
- 2024年设备监理师之设备监理合同练习题一及答案
- 2024年事业单位考试南京A类《职业能力倾向测验》高分冲刺试题含解析
- 标点符号的争吵课件
- 2025届甘肃平凉中考真题试卷数学试题【含答案】
- 装饰装修施工应急响应措施
- JJG 264-2025谷物容重器检定规程
- 桂电计〔2025〕91号附件-电网工程建设预算编制与计算标准实施细则
- 实验室人员培训
- 人工流产护理查房
- 公司反恐防暴管理制度
- 《宜宾陈酿草本白酒》标准编制说明
- 政治●广西卷丨2024年广西普通高中学业水平选择性考试高考政治真题试卷及答案
- 2025血管内导管相关性血流感染预防与诊治指南
- 合肥民政局离婚协议书
评论
0/150
提交评论