和荣笔记 - XSL-FO 与 XHTML
杨和荣, 版本 2.03, 2007年

XSL-FO 简介

Part:   1  2 

什么是 XSL-FO?

XSL-FO:一种建立在 XML 基础之上的附加排版语言。它的工作原理是在原始文字资料之中 加入 XML 语句,其作用是控制原始文字资料的排版格式。XSL-FO 其实和 TeX 非常相似,而 TeX 在十五年以前就广泛用于各种科技文献排版之中。

XSL-FO 主要特点:

  • XSL-FO 采用 XML 语言格式。
  • XSL-FO 也可以和 XSL 转换语言结合使用,对被处理的 XML 文件产生两种效果: 一,内容转换;二,打印排版。

“世界你好!”实例

下面是我的第一个 XSL-FO 实例,hello.fo:

<?xml version="1.0" encoding="utf-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
 <fo:layout-master-set>
  <fo:simple-page-master master-name="my_page" margin="0.5in">
   <fo:region-body/>
  </fo:simple-page-master>
 </fo:layout-master-set>
 <fo:page-sequence master-reference="my_page">
  <fo:flow flow-name="xsl-region-body">
   <fo:block>Hello world!</fo:block>
  </fo:flow>
 </fo:page-sequence>
</fo:root>

请注意:

  • 这是一个完整的 XML 文件,其根元素名称为“fo:root”。
  • 文中所有元素的名称都有“fo:”前坠,代表 XML 名称空间:“http://www.w3.org/1999/XSL/Format”。

有了 XSL-FO 文件后的下一个问题是用什么软件来处理这样的文件。为此我作了一些调查和测试:

  • 我没有什么方法可以用 MS Internet Explorer 6.0 显示 XSL-FO 文件。
  • XML Spy 可以用来编辑 XSL-FO 文件,但是我不知道怎样用它显示 XSL-FO 文件。
  • 我在网络上查找一番之后,发现了 FOP。试用效果不错,而且能直接生成 PDF 文件。

安装 FOP

经过初步调查,我发现 FOP (Formatting Objects Processor) 似乎是现在最常用的 XSL-FO 处理软件。下面是安装 FOP 的步骤:

1。到 http://xml.apache.org/dist/fop/ 提取 fop-0.20.5rc2-bin.tar.gz

2。用 WinZIP 将 fop-0.20.5rc2-bin.tar.gz 解包,把内容放入 \local\fop-0.20.5rc2

3。建立一份指令文件,run_fop.bat:

\local\j2sdk1.4.1_01\bin\java -cp \local\fop-0.20.5rc2\build\fop.jar;
   \local\fop-0.20.5rc2\lib\xercesImpl-2.2.1.jar;
   \local\fop-0.20.5rc2\lib\xalan-2.4.1.jar;
   \local\fop-0.20.5rc2\lib\avalon-framework-cvs-20020806.jar;
   \local\fop-0.20.5rc2\lib\batik.jar org.apache.fop.apps.Fop
   %1 %2 %3 %4 %5 %6

注意,这是一条指令,必须写成一行,而且 .jar 文件名之间不能有空格。由于显示宽度的限制, 我不得不把这一条指令写成几行。

如果你在一个指令窗口中运行上述指令文件,得到下面的结果:

run_fop
USAGE
Fop [options] [-fo|-xml] infile [-xsl file] [-awt|-pdf|-mif|-pcl|-ps
   |-txt|-at|-print] <outfile>
 [OPTIONS]
  -d          debug mode
  -x          dump configuration settings
  -q          quiet mode
  -c cfg.xml  use additional configuration file cfg.xml
  -l lang     the language to use for user information
  -s          for area tree XML, down to block areas only
...

你的安装便是成功的。

根据使用说明,FOP 有两个主要功能:

  • 将 XSL-FO 文件排版生成 .txt,.pdf,或者 .ps 文件。
  • 按照 XSLT 文件所给转换和排版语句,将 XML 文件转换并排版生成 .txt,.pdf,或者 .ps 文件。

(Continued on next part...)

Part:   1  2 

杨和荣,修改于2007年
和荣笔记 - XSL-FO 与 XHTML - XSL-FO 简介