资源描述:
《把xml转成pdf的有效工具:fop》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、把XML转成PDF的有效工具:FOP格式对象处理器(FOP)是一个源码开放的JavaAPI,可以把XML数据转换成PDF格式,同样的,也可以转成其他相关的格式,象TXT,SVG,AWT,MIF,和PS.该软件是在ApacheXML项目下开发的,可以免费使用。 这篇文章展示了如何开始使用FOP。FOP的主要优点是它转换XML数据到PDF格式报告的性能,使用的了格式化树结构。我们提供的绝大多数的例子将会集中展示这个非凡的转换,但也会把XML数据转成JavaAWT格式. 这篇文章的面向于精通XML和XSLT的开发者的。要获取更多的关于XML的信息,可
2、以到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中。 •co
3、nf包含了确定的配置文件,这个我们将在后面进行讨论。 •docs包含了各种各样的例子,文档,和一些图形图片。 •hyph包含了不同语言的连字符信息。 •lib包含了所有的外部.jar文件,这些文件对于FOP自己的运行是必需的。他们包括Avalon,Batik,Xalan,和Xerces。由于这篇文章 •是着重介绍FOP的,我们不会深入讨论这些API。只需要知道FOP使用这些API就够了。在配置的时候我们需要把这些库放到应用程序的CLASSPATH中。 •src包含了所有源代码。 FOP简介 图形1.FOP架构. FOP是一个被3
4、W组织在XSL说明书中指定的用于理解格式化对象的工具。说明书的第一部分说明了XSLT的转化处理。我们感爱好的是第二部分,里面说明了我们所说的格式化对象(FO)的处理。说明书中的这一部分定义了独立输出的格式化对象,它由一系列的文档风格以及布局的词表组成。举个例子来说,其中的一个格式化对象是fo:simple-page-master,它用来说明一个页面模板,它包含一些相关的属性(边界,页头,等等)。就这样,象FOP这样的工具可以读吃这些信息并且把这些信息转化成想要的格式输出(PDF/TXT)。很重要的一点是相同的风格信息可以产生不同的输出。 一篇FO
5、文档简单的说就是一篇XML文档。它的命名空间由W3C站点定义。它可以包含任何在这个命名空间中元素。你能够手工的创建这样的文档并且为每一个元素指定确切的值,每一个元素应该被输出。然而,更为通用的方法是写一个XSLT的样式表,来治理你的XML数据文件,根据你的样式标的规则来进行转换,从而产生最终的FO文档。动态生成的数据能够跟一个存在的样式表绑定来产生FO文档。 虽然FOP的主要意图是处理FO文档,但是他也能够通过一个样式表完成已存在数据文件(XML)的转换。我们假定在一XSL文件的表中有你的以XML个是存放的商务数据以及样式表信息。假如你把这两
6、者提供给FOP,FOP将会把这些信息转换成一篇临时的FO文档并且最终生成你期望的输出。 一个简单的例子 例子文件 下载这篇文章中的例子文件。这个 .zip文件包含了下列文件: krusty.fo,krusty.pdf,krusty.xml,andkrusty.xsl. 了解了原理以后,让我们实际运行一下FOP。打开一个命令窗口并且定位到你的FOP安装目录下。FOP的根目录下面包含了两个运行体:一部分是可运行在Unix系统上的shell脚本,另一部分是用于windows环境的一系列文件,通过这些文件FOP能够通过命令行来运行。根据你的系
7、统情况来运行相关的脚本。FOP将会报没有输入参数的提示,从而输出一系列的运行例子。好的—这意味着你现在可以开始使用FOP了。 让我们从创建一个简单的FO文件开始。假如你想要看到最终结果,可以点击这里krusty.fo. 就像我前面所讲到过的,一个FO文件是一个简单的类似表的Xml文件。因此开开你的文本编辑器并输入第一行: 所有的FO文件必须有这个外层元素作为根 http://www.w3.org/1999/XSL/Format">. 这个根元素的后面跟着元素,它表明了我们文档的页面布局。page-height="29.7cm" pa
8、ge-width="21cm" margin-top="1cm" margin-bottom="2cm" margi