Java与XML(五)xml的转换之pdf (xml+xsl 2 pdf)

本文介绍了如何使用Java和开源工具FOP将XML文件转换为PDF。FOP是一个基于XSL-FO的打印格式处理器,支持多种输出格式,包括PDF。转换过程包括两个步骤:首先用XSLT将XML转换为XSL-FO,然后将XSL-FO转换为PDF。文章提供了FOP的使用方法,包括添加依赖库和Java代码示例。
摘要由CSDN通过智能技术生成

pdf转换是很实用的工作。已然存在的的转换工具就有很多,其中包括一些成熟的商业软件。而作为java程序开发,我们将借助一个叫FOP的开源工具。

在开始转换之前,我们不得不认识先一下FOP并对它的使用做简单的了解。

FOP (Formatting Objects Processor) 是第一个基于XSL:FO的打印格式处理器,也是第一个与输出无关的格式处理器。它是一个Java程序,能够从对象树中读入然后生成渲染过的页面输出到指定的流。目前支持的输出格式有PDF,PCL,PS,SVG,XML(以树形结构表示),打印机,AWT,MIFTXT。最主要的输出指的是PDF
James Tauber 
 FOP 的最初作者。他开发了该工具的原始版本,而且很大方地开放了该代码,后来又将它移交给 Apache XML Project。(他还给该工具选了一个极好的名称;除了该名称是字首组合词之外,Webster  fop 的定义是过分讲究外表的人。)现在 James  Bowstreet 的首席 XML 设计师。Apache XML项目以开放与合作的方式开发的,提供商业品质的基于XML标准的解决方案。从标准的实施角度看,它能给标准机构(比如IETFW 3C )提供反馈信息。

FOP主页 http://xml.apache.org/fop/

 

FOP使用方式

FOP3种使用方式,分别为命令行,程序嵌入,XT 嵌入。这里将主要介绍如何在程序中嵌入FOP功能。将XML文件转换为PDF实际上分为2步,第1步是利用XSLTXML转换为XSL-FO,第2步是将XSL-FO转换为PDF。这里只讲述如何进行第2步的转换编程。

 

下载fop包后,你需要CLASSPATH中添加下述jar文件:

{FOP安装目录}/build/fop.jar

{FOP安装目录}/lib/batik.jar

{FOP安装目录}/lib/xalan- 2.0.0 .jar

{FOP安装目录}/lib/xerces- 1.2.3 .jar

{FOP安装目录}/lib/avalon-framework-4.0.jar

{FOP安装目录}/lib/logkit-1.0b4.jar

{FOP安装目录}/lib/jimi-1.0.jar

我是使用Eclipse,只需要在工程属性->构建路径中加入他们,就可以使用这个伟大的工具了。

 

下面是具体的程序:

 

这是一个xml文件 test.xml
<FeatureSRS title="SRS">

<introduction>

<objective>objective here</objective>

<scope>scope here</scope>

<responsibilities>responsibilities here</responsibilities>

<references>reference here</references>

<DAA>

<term>

term here

</term>

<definition>

definition here

</definition>

</DAA>

</introduction>

<generalDescription>

<featureName>

<summary>summary here</summary>

<breakdown>breakdown here</breakdown>

</featureName>

<requirement>

<content>

content here.

</content>

</requirement>

<requirement>

<content>

content2 here.

</content>

</requirement>

<featureInteractions>featureInteractions here</featureInteractions>

</generalDescription>

<strResources>

<strResource>

<estring>

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值