XSL-FO 基础知识(一)

本教程介绍的是什么 第 1 页(共5 页)


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

本教程简要概括了 XSL-FO 文档结构和定义页面大小、字体和页边距的元素。它还介绍了文本与图形格式化的基本知识,并演示了将格式化对象文件转换成 PDF 的基本原理。可下载的代码样本使得改写样本以自行试验变得简单。

当您学完这篇介绍性的教程时,您将理解 XSL-FO 是什么以及它是如何工作的。您将能够改写已提供的基本样本以创建自己的简单 FO 文档。您将准备好继续学习本系列中的第二篇教程,以了解如何具体地控制文本格式化,以及如何将 HTML 元素转换为格式化对象。然后您将能够创建自己的使用格式化对象生成高质量可打印文档的 XML 应用程序。

本教程假定您已了解可扩展标记语言(XML),而且了解如何使用它和它的相关技术,如 XML 样式表语言-转换(XML Stylesheet Language-Transformation,XSLT)。虽然您不需要知道有关 XSL-FO 的任何事情,但为了使用格式化对象,您需要一点使用 XSLT 的经验。

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

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


尽管您可以使用其它 XSL-FO 显示引擎,但本教程是针对 Apache XML Project 的 FOP(Formatting Objects to PDF,格式化对象转换为 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 Tidwell 是 developerWorks 计算机传教士,帮助人们使用新技术来解决问题。他已经为全世界数万开发人员讲解过 Web 服务和 XML,并确实令其中的许多人受到启发。他还是 O'Reilly XSLT 的作者,以及 O'Reilly Programming Web Services with SOAP 的合著者,这两本书都是推荐给您亲朋好友的绝佳礼物。

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

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

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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值