现在的位置: 首页 > 综合 > 正文

XSL-FO 高级技术1

2013年08月10日 ⁄ 综合 ⁄ 共 2201字 ⁄ 字号 评论关闭
本教程包含哪些内容 第 1 页(共5 页)

XSL 格式化对象规范是 W3C 的正式建议书,通常称其为 XSL-FO,XSL-FO 定义了许多 XML 标记,这些标记描述了应如何渲染内容。尽管 XSL-FO 包含描述如何渲染非打印格式文本(如口语)的元素,但本教程只介绍如何创建可移植文档格式(PDF)文件 ― 这是 XSL-FO 最常见的用法。

本教程接着从“XSL Formatting Objects basics”教程结束的地方开始讨论。这篇教程详细描述了列表、表和交叉引用的格式化。本教程继续演示如何在页面上创建具有多种布局和重复元素(如页眉)的复杂文档。您还将了解如何创建 PDF 书签和目录。最后,本教程演示了如何将 HTML 元素转换成格式化对象,再转换成 PDF 格式。可下载的代码样本使改写样本以符合您自己的需要变得容易。

参考资料中的代码清单包含一个完整的 XSLT 样式表,它将 XHTML 文档转换成格式化对象文件。

当您读完这两篇教程,您就可以准备创建自己的 XML 应用程序了,这些程序能使用格式化对象生成高质量可打印文档。

理解本教程的先决条件 第 2 页(共5 页)

本教程假定您已了解可扩展标记语言(XML)而且了解如何使用它及其相关技术,如 XML 样式表语言-转换(XML Stylesheet Language-Transformation,XSLT)。还假设您已了解 XSL-FO 文档的基本结构、它是如何工作的、如何设置页面定义和文本规范、添加图形,以及控制分页符和分栏符。如果您需要温习对 XSL-FO 基础知识的理解,可以从本教程的前一篇教程“XSL Formatting Objects basics”开始。

用于示例的工具是用 Java 代码编写的,但使用它们不需要了解 Java 语言。

关于软件和标准需要知道些什么 第 3 页(共5 页)

尽管您可以使用其它 XSL-FO 渲染引擎,但本教程是针对 Apache XML 项目的 FOP(格式化对象到 PDF)转换程序编写的。本教程中的示例适用于 FOP V0.20.4,该版本于 2002 年 7 月 5 日发行。如果用其它版本的 FOP 试验这些示例,则这些示例能否工作是个未知数。XSL-FO 规范于 2001 年 10 月 15 日成为 W3C 的正式建议书;FOP 工具支持最终规范中的绝大部分内容。

我们在 developerWorks 上使用 FOP 工具有两个原因:

  • 它是用 Java 语言编写的,所以它可以在所有我们所关注的平台上运行。
  • 它是免费和开放源码的产品,所以任何人都用得起。

如果您想深入研究 XSL-FO,可以到 W3C 的站点直接查阅该规范的源文档(请参阅参考资料)。要知道这是 W3C 站点上最长的文档之一(大约 400 页)尽管该文档中大多数都是 XSL-FO 标记集中众多元素和属性的参考信息。参考部分 ― 特别是附录 B、C 和 D ― 对于查找特性名称和值是非常有用的。请记住,在撰写本文的时候,FOP 并不完全支持 XSL-FO 规范,所以工具可能不支持规范定义的某些特性名称和值,或者可能用稍有不同的名称和值支持这些特性。

学习本教程需要什么工具,应如何配置这些工具 第 4 页(共5 页)

要完成本教程中的练习,您要有 Java 开发者工具箱(Java Developer's Kit,JDK)V1.3 或更高版本和 Apache XML 项目的 FOP 软件包。可以在 xml.apache.org/dist/fop 找到 FOP 软件包。下载最新版本并将其解压缩。

一旦安装了 JDK 和 FOP,就需要设置类路径。

如果想照着本教程中的示例进行,而又不想总记着改写这些示例,请将 FOP 软件包放置在 c:/fop-0.20.4rc 中,然后如下设置类路径(当然,所有的项都在一行;分行只是为了符合这里的文本宽):


set classpath=.;c:/fop-0.20.4rc/build/fop.jar;c:/fop-0.20.4rc/
lib/avalon-framework-cvs-20020315.jar;c:/fop-0.20.4rc/lib/bati
k.jar;c:/fop-0.20.4rc/lib/xalan-2.3.1.jar;c:/fop-0.20.4rc/lib/
xercesImpl-2.0.1.jar;c:/fop-0.20.4rc/lib/xml-apis.jar;

如果您在别的位置解压缩 FOP 软件包,就需要相应地更改命令。如果正在运行 Linux,则使用命令export classpath=/usr/bin/fop-0.20.4rc/build/fop.jar:/usr/bin/fop-...,诸如此类。

关于作者 第 5 页(共5 页)

Doug TidwelldeveloperWorks 计算机传道士,帮助人们使用新技术来解决问题。他已经为全世界数万开发人员讲解过 Web 服务和 XML,并确实令其中的许多人受到启发。他还是 O'Reilly XSLT 的作者,以及 O'Reilly Programming Web Services with SOAP 的合著者,这两本书都是送给您亲朋好友的绝佳礼物。

在一次难得的与名人的较量中,他和女儿 Lily 在北卡罗来纳州博览会的一场 Whack-a-Mole 比赛中惨败给奥运会金牌得主玛里安・琼斯(Marion Jones):

  • 父亲:怎么比赛这么快就完了?
  • Lily:不!没人能那么快![父亲望过去,看到获胜的对手
  • 父亲:来,Lily,我们走吧....

可以通过 dtidwell@us.ibm.com 与他联系。

抱歉!评论已关闭.