XSL-FO 简介


XSL-FO 全称为 Extensible Stylesheet Language Formatting Objects(格式化对象的可扩展样式表语言)。

XSL-FO 用于格式化供输出的 XML 数据。


学习之前应当具备的基础知识

在您学习 XSL-FO 之前,应当对 XML 和 XML 命名空间有基本的了解。

如果您希望首先学习这些项目,请阅读我们的 XML 教程


什么是 XSL-FO?

  • XSL-FO 是用于格式化 XML 数据的语言
  • XSL-FO 指可扩展样式表语言格式化对象(Extensible Stylesheet Language Formatting Objects)
  • XSL-FO 是基于 XML
  • XSL-FO 是一个 W3C 推荐标准
  • XSL-FO 目前通常被称为 XSL

XSL-FO 与格式化有关

XSL-FO 是一种基于 XML 的标记语言,用于描述向屏幕、纸或者其他媒介输出 XML 数据的格式化(信息)。


XSL-FO 通常被称为 XSL

为什么会存在这样的混淆呢?XSL-FO 和 XSL 是一回事吗?

可以这么说,不过我们需要向您作一个解释:

样式化(Styling)是关于转换信息格式化信息两方面。在万维网联盟(W3C)编写他们的首个 XSL 工作草案的时候,这个草案包括了有关转换和格式化 XML 文档的语言语法。

后来,W3C 工作组把这个原始的草案分为独立的标准:

  • XSLT,用于转换 XML 文档的语言
  • XSL 或 XSL-FO,用于格式化 XML 文档的语言
  • XPath,是通过元素和属性在 XML 文档中进行导航的语言

本教程的其余内容均与格式化 XML 文档有关:XSL-FO,也被称为 XSL。


XSL-FO 是一个 Web 标准

XSL-FO 在 2001 年 10 月 15 日 被确立为 W3C 推荐标准。通常被称为 XSL。

如需阅读更多有关 W3C 的 XSL 活动的内容,请阅读我们的 W3C 教程

在下一节内容中,我们将开始学习 XSL-FO 的使用。

XSL-FO 文档

本节为你介绍 XSL-FO 文档。


XSL-FO 文档

XSL-FO 文档是带有输出信息的 XML 文件。

XSL-FO 文档存储在以 .fo 或 .fob 为文件扩展名的文件中。您也可以把 XSL-FO 文档存储为以 .xml 为扩展名的文件,这样做的话可以使 XSL-FO 文档更易被 XML 编辑器存取。


XSL-FO 文档结构

XSL-FO 的文档结构如下所示:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"><!-- Page template goes here --></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><!-- Page content goes here --></fo:page-sequence></fo:root> 

结构解释

XSL-FO 文档属于 XML 文档,因此也需要以 XML 声明来起始:

<?xml version="1.0" encoding="ISO-8859-1"?> 

<fo:root> 元素是 XSL-FO 文档的根元素。这个根元素也要声明 XSL-FO 的命名空间:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><!-- The full XSL-FO document goes here --></fo:root>

<fo:layout-master-set> 元素包含一个或多个页面模板:

<fo:layout-master-set><!-- All page templates go here --></fo:layout-master-set>

每个 <fo:simple-page-master> 元素包含一个单一的页面模板。每个模板必须有一个唯一的名称(master-name):

<fo:simple-page-master master-name="A4"><!-- One page template goes here --></fo:simple-page-master>

一个或多个 <fo:page-sequence> 元素可描述页面内容。master-reference 属性使用相同的名称来引用 simple-page-master 模板:

<fo:page-sequence master-reference="A4"><!-- Page content goes here --></fo:page-sequence>

注释:master-reference 的值 "A4" 实际上并没有描述某个预定义的页面格式。它仅仅是一个名称。您可以使用任何名称,比如 "MyPage"、"MyTemplate" 等等。

相关教程

XML教程

XSL-FO 区域

本节讲解 XSL-FO 是如何使用区域来显示输出的。

XSL-FO 使用矩形框(区域)来显示输出。


XSL-FO 区域

XSL 格式化模型定义了一系列的矩形区域(框)来显示输出。

所有的输出(文本、图片,等等)都会被格式化到这些框中,然后会被显示或打印到某个目标媒介。

让我们研究一下下面这些区域:

  • Pages(页面)
  • Regions(区)
  • Block areas(块区域)
  • Line areas(行区域)
  • Inline areas(行内区域)

XSL-FO Pages(页面)

XSL-FO 输出会被格式化到页面中。打印输出通常会分为许多分割的页面。浏览器输出经常会成为一个长的页面。

XSL-FO Pages(页面)包含区(Region)。


XSL-FO Regions(区)

每个 XSL-FO 页面均包含一系列的 Regions(区):

  • region-body(页面的主体)
  • region-before(页面的页眉)
  • region-after(页面的页脚)
  • region-start(左侧栏)
  • region-end(右侧栏)

XSL-FO Regions(区)包含块区域(Block Area)。


XSL-FO Block Areas(块区域)

XSL-FO Block Areas(块区域)定义了小的块元素(通常由一个新行开始),比如段落、表格以及列表。

XSL-FO Block Areas(块区域)包含其他的块区域,不过大多数时候它们包含的是行区域(Line Area)。


XSL-FO Line Areas(行区域)

XSL-FO Line Areas(行区域)定义了块区域内部的文本行。

XSL-FO Line Areas(行区域)包含行内区域(Inline Area)。


XSL-FO Inline Areas(行内区域)

XSL-FO Inline Areas(行内区域)定义了行内部的文本(着重号、单字符、图像,等等)。

通过本节你了解了 XSL-FO 的区域的作用与属性,在下一节内容中,一起来掌握与 XSL-FO 输出相关的知识。

XSL-FO 输出

本节为你讲解 XSL-FO 输出,你可以通过本节的示例来理解 XSL-FO 输出。

XSL-FO 在 <fo:flow> 元素内部定义输出。


XSL-FO 页面(Page)、流(Flow)以及块(Block)

内容"块"会"流"入"页面"中,然后输出到媒介。

XSL-FO 输出通常被嵌套在 <fo:block> 元素内,<fo:block> 嵌套于 <fo:flow> 元素内,<fo:flow> 嵌套于 <fo:page-sequence> 元素内:

<fo:page-sequence><fo:flow flow-name="xsl-region-body"><fo:block><!-- Output goes here --></fo:block></fo:flow></fo:page-sequence> 


XSL-FO 实例

现在让我们看一个真实的 XSL-FO 实例:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"><fo:region-body /></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><fo:flow flow-name="xsl-region-body"><fo:block>Hello W3CSchool</fo:block></fo:flow></fo:page-sequence></fo:root> 

以上代码的输出如下所示:

Hello W3CSchool 




以上就是关于 XSL-FO 输出的介绍内容。

XSL-FO


在 XSL-FO 中,你应该如何填充页面的内容呢?本节解答了这个问题。

XSL-FO 页面使用来自 <fo:flow> 元素的数据进行填充。


XSL-FO 页面序列(Page Sequences)

XSL-FO 使用 <fo:page-sequence> 元素来定义输出页面

每个输出页面都会引用一个定义布局的 page master。

每个输出页面都有一个定义输出的 <fo:flow> 元素。

每个输出页面均会按序列(顺序)被打印或显示。


XSL-FO 流(Flow)

XSL-FO 页面使用来自 <fo:flow> 元素的内容进行填充。

<fo:flow> 元素包含所有被打印到页面的元素。

当页面被印满以后,相同的 page master 会被一遍又一遍地被使用,直到所有文本被打印为止。


流动到何处?

<fo:flow> 元素有一个 "flow-name" 属性。

flow-name 属性的值定义 <fo:flow> 元素的内容会去往何处。

合法的值:

  • xsl-region-body(进入 region-body)
  • xsl-region-before(进入 region-before)
  • xsl-region-after(进入 region-after)
  • xsl-region-start(进入 region-start)
  • xsl-region-end(进入 region-end)

在下一节内容中,我们将为你讲解 XSL-FO 的页面。

XSL-FO 页面

本节介绍在 XSL-FO 中页面的布局是怎么样形成的。

XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。


XSL-FO 页面模板(Page Templates)

XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。每个模板必须拥有一个唯一的名称:

<fo:simple-page-master master-name="intro"><fo:region-body margin="5in" /></fo:simple-page-master><fo:simple-page-master master-name="left"><fo:region-body margin-left="2in" margin-right="3in" /></fo:simple-page-master><fo:simple-page-master master-name="right"><fo:region-body margin-left="3in" margin-right="2in" /></fo:simple-page-master> 

在上面的实例中,三个 <fo:simple-page-master> 元素,定义了三个不同的模板。每个模板(page-master)都有不同的名称。

第一个模板名为 "intro"。它可作为介绍页面的模板使用。

第二个和第三个模板名为 "left" 和 "right"。它们可作为偶数和奇数页码的页面模板使用。


XSL-FO 页面尺寸(Page Size)

XSL-FO 使用下面的属性定义页面的尺寸:

  • page-width 定义页面的宽度
  • page-height 定义页面的高度

XSL-FO 页面边距(Page Margins)

XSL-FO 使用下面的属性定义页面的边距:

  • margin-top 定义上边距
  • margin-bottom 定义下边距
  • margin-left 定义左边距
  • margin-right 定义右边距
  • margin 定义所有边的边距

提示:你可以在本站的“CSS属性”中了解更多与页面边距属性相关的知识!


XSL-FO 页面区(Page Regions)

XSL-FO 使用下面的元素定义页面的区:

  • region-body 定义主体区
  • region-before 定义顶部区(页眉)
  • region-after 定义底部区(页脚)
  • region-start 定义左侧区(左侧栏)
  • region-end 定义右侧区(右侧栏)

请注意,region-before、region-after、region-start 以及 region-end 是主体区的一部分。为了避免主体区的文本覆盖到这些区域的文本,主体区的边距至少要等于其他区的尺寸。




XSL-FO 实例

这是从某个 XSL-FO 文档中提取的一个片断:

<fo:simple-page-master master-name="A4" page-width="297mm"page-height="210mm" margin-top="1cm" margin-bottom="1cm"margin-left="1cm" margin-right="1cm"><fo:region-body margin="3cm"/><fo:region-before extent="2cm"/><fo:region-after extent="2cm"/><fo:region-start extent="2cm"/><fo:region-end extent="2cm"/></fo:simple-page-master> 

上面的代码定义了一个名称为 "A4" 的 "Simple Page Master Template"。

页面的宽度是 297 毫米,高度是 210 毫米。

页面的四个边距(上边距、下边距、左边距、右边距)均为 1 厘米。

主体的边距是 3 厘米(四个边都是)。

主体的 before、after、start 以及 end 区均为 2 厘米。

上面的实例中的主体的宽度可通过页面宽度减去左右边距以及 region-body 的边距来计算得出:

297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm

请注意,region(region-start 和 region-end)没有被计算进来。正如之前讲解过的,这些区(region)是主体的组成部分。

以上就是有关 XSL-FO 页面的描述,在下一节中,将会介绍 XSL-FO 块。

XSL-FO

XSL-FO 块用来存放输出。


XSL-FO 的输出位于块区域中。


XSL-FO 页面(Page)、流(Flow)以及块(Block)

内容"块"会"流"入"页面"中,然后输出到媒介。

XSL-FO 输出通常被嵌套在 <fo:block> 元素内,<fo:block> 嵌套于 <fo:flow> 元素内,<fo:flow> 嵌套于 <fo:page-sequence> 元素内:

<fo:page-sequence><fo:flow flow-name="xsl-region-body"><fo:block><!-- Output goes here --></fo:block></fo:flow></fo:page-sequence>


块区域的属性

块是位于矩形框中的输出序列:

<fo:block border-width="1mm">This block of output will have a one millimeter border around it.</fo:block>

由于块区域是矩形框,所以可共享许多公共的区域属性:

  • space before 和 space after
  • margin
  • border
  • padding


space beforespace after 是块与块之间起分割作用的空白。

margin 是块外侧的空白区域。

border 是区域外部边缘的矩形。其四个边均可有不同的宽度。它也可被填充为不同的颜色和背景图像。

padding 是位于 border 与 content 区域之间的区域。

content 区域可包含实际的内容,比如文本、图片、图形等等。


块边距(Block Margin)

  • margin
  • margin-top
  • margin-bottom
  • margin-left
  • margin-right

块边框(Block Border)

边框样式属性:

  • border-style
  • border-before-style
  • border-after-style
  • border-start-style
  • border-end-style
  • border-top-style(等同于 border-before)
  • border-bottom-style(等同于 border-after)
  • border-left-style(等同于 border-start)
  • border-right-style(等同于 border-end)

边框颜色属性:

  • border-color
  • border-before-color
  • border-after-color
  • border-start-color
  • border-end-color
  • border-top-color(等同于 border-before)
  • border-bottom-color(等同于 border-after)
  • border-left-color(等同于 border-start)
  • border-right-color(等同于 border-end)

边框宽度属性:

  • border-width
  • border-before-width
  • border-after-width
  • border-start-width
  • border-end-width
  • border-top-width(等同于 border-before)
  • border-bottom-width(等同于 border-after)
  • border-left-width(等同于 border-start)
  • border-right-width(等同于 border-end)

块填充(Block Padding)

  • padding
  • padding-before
  • padding-after
  • padding-start
  • padding-end
  • padding-top(等同于 padding-before)
  • padding-bottom(等同于 padding-after)
  • padding-left(等同于 padding-start)
  • padding-right(等同于 padding-end)

块背景(Block Background)

  • background-color
  • background-image
  • background-repeat
  • background-attachment(scroll 或 fixed)

块样式属性(Block Styling Attributes)

块是可被单独样式化的输出序列:

<fo:block font-size="12pt" font-family="sans-serif">This block of output will be written in a 12pt sans-serif font.</fo:block>

字体属性:

  • font-family
  • font-weight
  • font-style
  • font-size
  • font-variant

文本属性:

  • text-align
  • text-align-last
  • text-indent
  • start-indent
  • end-indent
  • wrap-option(定义自动换行)
  • break-before(定义分页符)
  • break-after(定义分页符)
  • reference-orientation(定义 90" 增量的文字旋转)

实例

<fo:block font-size="14pt" font-family="verdana" color="red"space-before="5mm" space-after="5mm">W3CSchool</fo:block><fo:block text-indent="5mm" font-family="verdana" font-size="12pt">At W3CSchool you will find all the Web-building tutorials youneed, from basic HTML and XHTML to advanced XML, XSL, Multimedia and WAP.</fo:block>

结果:

W3CSchool

At W3CSchool you will find all the Web-building tutorials you need, from basic HTML and XHTML to advanced XML, XSL, Multimedia and WAP.

请看上面的实例,如果要生成一个拥有许多标题和段落的文档,那么将会需要非常多的代码。

通常,XSL-FO 文档不会像我们刚才所做的那样对格式化信息和内容进行组合。

通过 XSLT 的些许帮助,我们就可以把格式化信息置入模板,然后编写出更纯净的内容。

您会在本教程后面的章节学习到如何使用 XSLT 模板来组合 XSL-FO。

相关教程

CSS参考手册

XSL-FO 列表


在 XSL-FO 中,怎么定义列表?

XSL-FO 使用 <fo:list-block> 元素来定义列表。


XSL-FO 列表块(List Blocks)

有四种 XSL-FO 对象可用来创建列表:

  • fo:list-block(包含整个列表) (contains the whole list)
  • fo:list-item(包含列表中的每个项目) (contains each item in the list)
  • fo:list-item-label(包含用于 list-item 的标签 - 典型地,包含一个数字或者字符的 <fo:block> )
  • fo:list-item-body(包含 list-item 的内容/主体 - 典型地,一个或多个 <fo:block> 对象)

一个 XSL-FO 列表实例:

<fo:list-block><fo:list-item><fo:list-item-label><fo:block>*</fo:block></fo:list-item-label><fo:list-item-body><fo:block>Volvo</fo:block></fo:list-item-body></fo:list-item><fo:list-item><fo:list-item-label><fo:block>*</fo:block></fo:list-item-label><fo:list-item-body><fo:block>Saab</fo:block></fo:list-item-body></fo:list-item></fo:list-block> 

上面代码的输出如下所示:

* Volvo
* Saab

相关阅读

XSL-FO list-item 对象

XSL-FO 表格

本节将为你介绍 XSL-FO 表格。


XSL-FO 使用 <fo:table-and-caption> 元素来定义表格。


XSL-FO 表格(Tables)

XSL-FO 表格模型与 HTML 表格模型不是完全不同的。

有九种 XSL-FO 对象可用来创建表格:

  • fo:table-and-caption
  • fo:table
  • fo:table-caption
  • fo:table-column
  • fo:table-header
  • fo:table-footer
  • fo:table-body
  • fo:table-row
  • fo:table-cell

XSL-FO 使用 <fo:table-and-caption> 元素来定义表格。它包含一个 <fo:table> 以及一个可选的 <fo:caption> 元素。

<fo:table> 元素包含可选的 <fo:table-column> 元素,一个可选的 <fo:table-header> 元素,一个 <fo:table-body> 元素,一个可选的 <fo:table-footer> 元素。这些元素中的每一个都可能拥有一个或多个 <fo:table-row> 元素,而 <fo:table-row> 同时会带有一个或多个 <fo:table-cell> 元素:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-row><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:table-and-caption>

以上代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000

相关文章

HTML 表格

XSL-FO 与 XSLT


本节为你介绍 XSL-FO 与 XSLT 之间的使用关系。

XSL-FO 与 XSLT 可彼此互助。


还记得这个实例吗?

<fo:block font-size="14pt" font-family="verdana" color="red"space-before="5mm" space-after="5mm">W3CSchool</fo:block><fo:block text-indent="5mm" font-family="verdana" font-size="12pt">At W3CSchool you will find all the Web-building tutorials youneed, from basic HTML and XHTML to advanced XML, XSL, Multimedia and WAP.</fo:block>

结果:

W3CSchool

At W3CSchool you will find all the Web-building tutorials you need, from basic HTML and XHTML to advanced XML, XSL, Multimedia and WAP.

上面的实例来自于有关 XSL-FO 块区域的那一章节。


来自 XSLT 的帮助

从文档移除 XSL-FO 信息:

<header>W3CSchool</header><paragraph>At W3CSchool you will find all the Web-building tutorials youneed, from basic HTML and XHTML to advanced XML, XSL, Multimedia and WAP.</paragraph>

添加 XSLT 转换:

<xsl:template match="header"><fo:block font-size="14pt" font-family="verdana" color="red"space-before="5mm" space-after="5mm"><xsl:apply-templates/></fo:block></xsl:template><xsl:template match="paragraph"><fo:block text-indent="5mm" font-family="verdana" font-size="12pt"><xsl:apply-templates/></fo:block></xsl:template>

产生的结果是相同的:

W3CSchool

At W3CSchool you will find all the Web-building tutorials you need, from basic HTML and XHTML to advanced XML, XSL, Multimedia and WAP.

以上就是有关 XSL-FO 与 XSLT 的介绍内容。

相关教程

XSLT教程

XSL-FO 软件


XSL-FO 需要格式化软件来产生输出。


XSL-FO 处理器

一个 XSL-FO 处理器是一个用于格式化输出 XSL 文档的软件程序。

大多数的 XSL-FO 处理器可以输出 HTML、PDF 文档和质量打印。

下面介绍一些知名的 XSL-FO 处理器。


Antenna House Formatter V5

Antenna House Formatter V5 是为 PDF 或打印格式化 XML 文档的软件程序。

访问 Antenna House


Altova 的 StyleVision

StyleVision 基于您的设计自动生成一致性标准的 XSLT 和 XSL:FO 样式表,以及相应的 HTML、RTF、PDF、 Word 2007 输出,等等。

访问 Altova


Ecrion 的 XF 产品

XSL-FO 格式化的一些产品!

访问 Ecrion

XSL-FO 参考手册

在本节中,列举了 XSL-FO 使用到的对象。

XSL 格式化对象参考手册

将描述转换为呈现的过程被称为格式化(formatting)。

对象 描述
basic-link 代表一个链接的起始资源。
bidi-override 重写默认 Unicode BIDI 的方向。
block 定义一个输出块(比如段落和标题)。
block-container 定义一个块级的引用区域(reference-area)。
character 规定将被映射为供呈现的字形的字符。
color-profile 定义样式表的一个颜色配置文件。
conditional-page-master-reference 规定一个当所定义的条件成立时使用的 page-master。
declarations 组合一个样式表的全局声明。
external-graphic 用于图像数据位于 XML 结果树之外的某个图形。
float 通常用于在页面起始处的一个单独区域里定位图像,或者通过将内容沿图像的一侧流动来定位图像到一侧。
flow 包含要打印到页面的所有元素。
footnote 定义在页面的 region-body 内部的一个脚注。
footnote-body 定义脚注的内容。
initial-property-set 格式化 <fo:block> 的第一行。
inline 通过背景属性或将其嵌入一个边框来定义文本的一部分格式。
inline-container 定义一个内联参考域(reference-area)。
instream-foreign-object 用于内联图形或 "generic" 类对象。在其中,对象的数据以 <fo:instream-foreign-object> 的后代形式存在。
layout-master-set 保存所有在文档中使用的宿主(master)。
leader

用于生成 "." 符号来分隔内容表格中页面数字的标题,或创建表单中的输入字段,或创建水平规则。

list-block 定义列表。
list-item 包含列表中的每个项。
list-item-body 包含了 list-item 的内容/主体。
list-item-label 包含了 list-item 标签(通常是数字、字符等)。
marker 与 <fo:retrieve-marker> 一起使用来创建运行的页眉或页脚。
multi-case

包含 XSL-FO 对象的每个供选择的子树(在 <fo:multi-switch> 内部)。父元素 <fo:multi-switch> 会选择要显示的那个选项并隐藏其余的选项。

multi-properties 用于两个或多个属性集之间切换。
multi-property-set 规定一个根据用户代理状态进行应用的可选的属性集。
multi-switch 保留一个或多个 <fo:multi-case> 对象,控制它们(由 <fo:multi-toggle> 触发)彼此之间的转换。
multi-toggle 用于切换到另一个 <fo:multi-case>。
page-number 表示当前页码。
page-number-citation 为页面引用页码,此页面包含由被引用对象返回的第一个正常区域。
page-sequence 页面输出元素的容器。每个页面布局将有一个 <fo:page-sequence> 对象。
page-sequence-master 规定要使用的 simple-page-masters 以及使用顺序。
region-after 定义页脚。
region-before 定义页眉。
region-body 定义页面主题。
region-end 定义页面的右侧栏。
region-start 定义页面的左侧栏。
repeatable-page-master-alternatives 规定一组 simple-page-master 的副本。
repeatable-page-master-reference 规定单个 simple-page-master 的副本。
retrieve-marker 与 <fo:marker> 一起使用来创建运行的页眉或页脚。
root XSL-FO 文档的根(顶级)节点。
simple-page-master 定义一个页面的尺寸和形状。
single-page-master-reference 规定用在页面序列的给定点中的 page-master。
static-content 对象包含了静态内容(如:页眉和页脚),该静态内容将在多个页面中重复调用。
table 格式化表格的表格式材料。
table-and-caption 格式化表格及其标题。
table-body 包含表格行和表格单元格的容器。
table-caption 包含表格的标题。
table-cell 定义表格单元格。
table-column 格式化表格的列。
table-footer 定义表格的页脚。
table-header 定义表格的页眉。
table-row 定义表格行。
title 为一个 page-sequence 定义一个标题。
wrapper 为一组 XSL-FO 对象规定 inherited[继承] 属性。

在下一节内容中,我们将开始为你详细的介绍 XSL-FO 对象。

XSL-FO 简介


XSL-FO 全称为 Extensible Stylesheet Language Formatting Objects(格式化对象的可扩展样式表语言)。

XSL-FO 用于格式化供输出的 XML 数据。


学习之前应当具备的基础知识

在您学习 XSL-FO 之前,应当对 XML 和 XML 命名空间有基本的了解。

如果您希望首先学习这些项目,请阅读我们的 XML 教程


什么是 XSL-FO?

  • XSL-FO 是用于格式化 XML 数据的语言
  • XSL-FO 指可扩展样式表语言格式化对象(Extensible Stylesheet Language Formatting Objects)
  • XSL-FO 是基于 XML
  • XSL-FO 是一个 W3C 推荐标准
  • XSL-FO 目前通常被称为 XSL

XSL-FO 与格式化有关

XSL-FO 是一种基于 XML 的标记语言,用于描述向屏幕、纸或者其他媒介输出 XML 数据的格式化(信息)。


XSL-FO 通常被称为 XSL

为什么会存在这样的混淆呢?XSL-FO 和 XSL 是一回事吗?

可以这么说,不过我们需要向您作一个解释:

样式化(Styling)是关于转换信息格式化信息两方面。在万维网联盟(W3C)编写他们的首个 XSL 工作草案的时候,这个草案包括了有关转换和格式化 XML 文档的语言语法。

后来,W3C 工作组把这个原始的草案分为独立的标准:

  • XSLT,用于转换 XML 文档的语言
  • XSL 或 XSL-FO,用于格式化 XML 文档的语言
  • XPath,是通过元素和属性在 XML 文档中进行导航的语言

本教程的其余内容均与格式化 XML 文档有关:XSL-FO,也被称为 XSL。


XSL-FO 是一个 Web 标准

XSL-FO 在 2001 年 10 月 15 日 被确立为 W3C 推荐标准。通常被称为 XSL。

如需阅读更多有关 W3C 的 XSL 活动的内容,请阅读我们的 W3C 教程

在下一节内容中,我们将开始学习 XSL-FO 的使用。

XSL-FO 文档

本节为你介绍 XSL-FO 文档。


XSL-FO 文档

XSL-FO 文档是带有输出信息的 XML 文件。

XSL-FO 文档存储在以 .fo 或 .fob 为文件扩展名的文件中。您也可以把 XSL-FO 文档存储为以 .xml 为扩展名的文件,这样做的话可以使 XSL-FO 文档更易被 XML 编辑器存取。


XSL-FO 文档结构

XSL-FO 的文档结构如下所示:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"><!-- Page template goes here --></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><!-- Page content goes here --></fo:page-sequence></fo:root> 

结构解释

XSL-FO 文档属于 XML 文档,因此也需要以 XML 声明来起始:

<?xml version="1.0" encoding="ISO-8859-1"?> 

<fo:root> 元素是 XSL-FO 文档的根元素。这个根元素也要声明 XSL-FO 的命名空间:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><!-- The full XSL-FO document goes here --></fo:root>

<fo:layout-master-set> 元素包含一个或多个页面模板:

<fo:layout-master-set><!-- All page templates go here --></fo:layout-master-set>

每个 <fo:simple-page-master> 元素包含一个单一的页面模板。每个模板必须有一个唯一的名称(master-name):

<fo:simple-page-master master-name="A4"><!-- One page template goes here --></fo:simple-page-master>

一个或多个 <fo:page-sequence> 元素可描述页面内容。master-reference 属性使用相同的名称来引用 simple-page-master 模板:

<fo:page-sequence master-reference="A4"><!-- Page content goes here --></fo:page-sequence>

注释:master-reference 的值 "A4" 实际上并没有描述某个预定义的页面格式。它仅仅是一个名称。您可以使用任何名称,比如 "MyPage"、"MyTemplate" 等等。

相关教程

XML教程

XSL-FO 区域

本节讲解 XSL-FO 是如何使用区域来显示输出的。

XSL-FO 使用矩形框(区域)来显示输出。


XSL-FO 区域

XSL 格式化模型定义了一系列的矩形区域(框)来显示输出。

所有的输出(文本、图片,等等)都会被格式化到这些框中,然后会被显示或打印到某个目标媒介。

让我们研究一下下面这些区域:

  • Pages(页面)
  • Regions(区)
  • Block areas(块区域)
  • Line areas(行区域)
  • Inline areas(行内区域)

XSL-FO Pages(页面)

XSL-FO 输出会被格式化到页面中。打印输出通常会分为许多分割的页面。浏览器输出经常会成为一个长的页面。

XSL-FO Pages(页面)包含区(Region)。


XSL-FO Regions(区)

每个 XSL-FO 页面均包含一系列的 Regions(区):

  • region-body(页面的主体)
  • region-before(页面的页眉)
  • region-after(页面的页脚)
  • region-start(左侧栏)
  • region-end(右侧栏)

XSL-FO Regions(区)包含块区域(Block Area)。


XSL-FO Block Areas(块区域)

XSL-FO Block Areas(块区域)定义了小的块元素(通常由一个新行开始),比如段落、表格以及列表。

XSL-FO Block Areas(块区域)包含其他的块区域,不过大多数时候它们包含的是行区域(Line Area)。


XSL-FO Line Areas(行区域)

XSL-FO Line Areas(行区域)定义了块区域内部的文本行。

XSL-FO Line Areas(行区域)包含行内区域(Inline Area)。


XSL-FO Inline Areas(行内区域)

XSL-FO Inline Areas(行内区域)定义了行内部的文本(着重号、单字符、图像,等等)。

通过本节你了解了 XSL-FO 的区域的作用与属性,在下一节内容中,一起来掌握与 XSL-FO 输出相关的知识。

XSL-FO 输出

本节为你讲解 XSL-FO 输出,你可以通过本节的示例来理解 XSL-FO 输出。

XSL-FO 在 <fo:flow> 元素内部定义输出。


XSL-FO 页面(Page)、流(Flow)以及块(Block)

内容"块"会"流"入"页面"中,然后输出到媒介。

XSL-FO 输出通常被嵌套在 <fo:block> 元素内,<fo:block> 嵌套于 <fo:flow> 元素内,<fo:flow> 嵌套于 <fo:page-sequence> 元素内:

<fo:page-sequence><fo:flow flow-name="xsl-region-body"><fo:block><!-- Output goes here --></fo:block></fo:flow></fo:page-sequence> 


XSL-FO 实例

现在让我们看一个真实的 XSL-FO 实例:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"><fo:region-body /></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><fo:flow flow-name="xsl-region-body"><fo:block>Hello W3CSchool</fo:block></fo:flow></fo:page-sequence></fo:root> 

以上代码的输出如下所示:

Hello W3CSchool 




以上就是关于 XSL-FO 输出的介绍内容。

XSL-FO


在 XSL-FO 中,你应该如何填充页面的内容呢?本节解答了这个问题。

XSL-FO 页面使用来自 <fo:flow> 元素的数据进行填充。


XSL-FO 页面序列(Page Sequences)

XSL-FO 使用 <fo:page-sequence> 元素来定义输出页面

每个输出页面都会引用一个定义布局的 page master。

每个输出页面都有一个定义输出的 <fo:flow> 元素。

每个输出页面均会按序列(顺序)被打印或显示。


XSL-FO 流(Flow)

XSL-FO 页面使用来自 <fo:flow> 元素的内容进行填充。

<fo:flow> 元素包含所有被打印到页面的元素。

当页面被印满以后,相同的 page master 会被一遍又一遍地被使用,直到所有文本被打印为止。


流动到何处?

<fo:flow> 元素有一个 "flow-name" 属性。

flow-name 属性的值定义 <fo:flow> 元素的内容会去往何处。

合法的值:

  • xsl-region-body(进入 region-body)
  • xsl-region-before(进入 region-before)
  • xsl-region-after(进入 region-after)
  • xsl-region-start(进入 region-start)
  • xsl-region-end(进入 region-end)

在下一节内容中,我们将为你讲解 XSL-FO 的页面。

XSL-FO 页面

本节介绍在 XSL-FO 中页面的布局是怎么样形成的。

XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。


XSL-FO 页面模板(Page Templates)

XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。每个模板必须拥有一个唯一的名称:

<fo:simple-page-master master-name="intro"><fo:region-body margin="5in" /></fo:simple-page-master><fo:simple-page-master master-name="left"><fo:region-body margin-left="2in" margin-right="3in" /></fo:simple-page-master><fo:simple-page-master master-name="right"><fo:region-body margin-left="3in" margin-right="2in" /></fo:simple-page-master> 

在上面的实例中,三个 <fo:simple-page-master> 元素,定义了三个不同的模板。每个模板(page-master)都有不同的名称。

第一个模板名为 "intro"。它可作为介绍页面的模板使用。

第二个和第三个模板名为 "left" 和 "right"。它们可作为偶数和奇数页码的页面模板使用。


XSL-FO 页面尺寸(Page Size)

XSL-FO 使用下面的属性定义页面的尺寸:

  • page-width 定义页面的宽度
  • page-height 定义页面的高度

XSL-FO 页面边距(Page Margins)

XSL-FO 使用下面的属性定义页面的边距:

  • margin-top 定义上边距
  • margin-bottom 定义下边距
  • margin-left 定义左边距
  • margin-right 定义右边距
  • margin 定义所有边的边距

提示:你可以在本站的“CSS属性”中了解更多与页面边距属性相关的知识!


XSL-FO 页面区(Page Regions)

XSL-FO 使用下面的元素定义页面的区:

  • region-body 定义主体区
  • region-before 定义顶部区(页眉)
  • region-after 定义底部区(页脚)
  • region-start 定义左侧区(左侧栏)
  • region-end 定义右侧区(右侧栏)

请注意,region-before、region-after、region-start 以及 region-end 是主体区的一部分。为了避免主体区的文本覆盖到这些区域的文本,主体区的边距至少要等于其他区的尺寸。




XSL-FO 实例

这是从某个 XSL-FO 文档中提取的一个片断:

<fo:simple-page-master master-name="A4" page-width="297mm"page-height="210mm" margin-top="1cm" margin-bottom="1cm"margin-left="1cm" margin-right="1cm"><fo:region-body margin="3cm"/><fo:region-before extent="2cm"/><fo:region-after extent="2cm"/><fo:region-start extent="2cm"/><fo:region-end extent="2cm"/></fo:simple-page-master> 

上面的代码定义了一个名称为 "A4" 的 "Simple Page Master Template"。

页面的宽度是 297 毫米,高度是 210 毫米。

页面的四个边距(上边距、下边距、左边距、右边距)均为 1 厘米。

主体的边距是 3 厘米(四个边都是)。

主体的 before、after、start 以及 end 区均为 2 厘米。

上面的实例中的主体的宽度可通过页面宽度减去左右边距以及 region-body 的边距来计算得出:

297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm

请注意,region(region-start 和 region-end)没有被计算进来。正如之前讲解过的,这些区(region)是主体的组成部分。

以上就是有关 XSL-FO 页面的描述,在下一节中,将会介绍 XSL-FO 块。

XSL-FO

XSL-FO 块用来存放输出。


XSL-FO 的输出位于块区域中。


XSL-FO 页面(Page)、流(Flow)以及块(Block)

内容"块"会"流"入"页面"中,然后输出到媒介。

XSL-FO 输出通常被嵌套在 <fo:block> 元素内,<fo:block> 嵌套于 <fo:flow> 元素内,<fo:flow> 嵌套于 <fo:page-sequence> 元素内:

<fo:page-sequence><fo:flow flow-name="xsl-region-body"><fo:block><!-- Output goes here --></fo:block></fo:flow></fo:page-sequence>


块区域的属性

块是位于矩形框中的输出序列:

<fo:block border-width="1mm">This block of output will have a one millimeter border around it.</fo:block>

由于块区域是矩形框,所以可共享许多公共的区域属性:

  • space before 和 space after
  • margin
  • border
  • padding


space beforespace after 是块与块之间起分割作用的空白。

margin 是块外侧的空白区域。

border 是区域外部边缘的矩形。其四个边均可有不同的宽度。它也可被填充为不同的颜色和背景图像。

padding 是位于 border 与 content 区域之间的区域。

content 区域可包含实际的内容,比如文本、图片、图形等等。


块边距(Block Margin)

  • margin
  • margin-top
  • margin-bottom
  • margin-left
  • margin-right

块边框(Block Border)

边框样式属性:

  • border-style
  • border-before-style
  • border-after-style
  • border-start-style
  • border-end-style
  • border-top-style(等同于 border-before)
  • border-bottom-style(等同于 border-after)
  • border-left-style(等同于 border-start)
  • border-right-style(等同于 border-end)

边框颜色属性:

  • border-color
  • border-before-color
  • border-after-color
  • border-start-color
  • border-end-color
  • border-top-color(等同于 border-before)
  • border-bottom-color(等同于 border-after)
  • border-left-color(等同于 border-start)
  • border-right-color(等同于 border-end)

边框宽度属性:

  • border-width
  • border-before-width
  • border-after-width
  • border-start-width
  • border-end-width
  • border-top-width(等同于 border-before)
  • border-bottom-width(等同于 border-after)
  • border-left-width(等同于 border-start)
  • border-right-width(等同于 border-end)

块填充(Block Padding)

  • padding
  • padding-before
  • padding-after
  • padding-start
  • padding-end
  • padding-top(等同于 padding-before)
  • padding-bottom(等同于 padding-after)
  • padding-left(等同于 padding-start)
  • padding-right(等同于 padding-end)

块背景(Block Background)

  • background-color
  • background-image
  • background-repeat
  • background-attachment(scroll 或 fixed)

块样式属性(Block Styling Attributes)

块是可被单独样式化的输出序列:

<fo:block font-size="12pt" font-family="sans-serif">This block of output will be written in a 12pt sans-serif font.</fo:block>

字体属性:

  • font-family
  • font-weight
  • font-style
  • font-size
  • font-variant

文本属性:

  • text-align
  • text-align-last
  • text-indent
  • start-indent
  • end-indent
  • wrap-option(定义自动换行)
  • break-before(定义分页符)
  • break-after(定义分页符)
  • reference-orientation(定义 90" 增量的文字旋转)

实例

<fo:block font-size="14pt" font-family="verdana" color="red"space-before="5mm" space-after="5mm">W3CSchool</fo:block><fo:block text-indent="5mm" font-family="verdana" font-size="12pt">At W3CSchool you will find all the Web-building tutorials youneed, from basic HTML and XHTML to advanced XML, XSL, Multimedia and WAP.</fo:block>

结果:

W3CSchool

At W3CSchool you will find all the Web-building tutorials you need, from basic HTML and XHTML to advanced XML, XSL, Multimedia and WAP.

请看上面的实例,如果要生成一个拥有许多标题和段落的文档,那么将会需要非常多的代码。

通常,XSL-FO 文档不会像我们刚才所做的那样对格式化信息和内容进行组合。

通过 XSLT 的些许帮助,我们就可以把格式化信息置入模板,然后编写出更纯净的内容。

您会在本教程后面的章节学习到如何使用 XSLT 模板来组合 XSL-FO。

相关教程

CSS参考手册

XSL-FO 列表


在 XSL-FO 中,怎么定义列表?

XSL-FO 使用 <fo:list-block> 元素来定义列表。


XSL-FO 列表块(List Blocks)

有四种 XSL-FO 对象可用来创建列表:

  • fo:list-block(包含整个列表) (contains the whole list)
  • fo:list-item(包含列表中的每个项目) (contains each item in the list)
  • fo:list-item-label(包含用于 list-item 的标签 - 典型地,包含一个数字或者字符的 <fo:block> )
  • fo:list-item-body(包含 list-item 的内容/主体 - 典型地,一个或多个 <fo:block> 对象)

一个 XSL-FO 列表实例:

<fo:list-block><fo:list-item><fo:list-item-label><fo:block>*</fo:block></fo:list-item-label><fo:list-item-body><fo:block>Volvo</fo:block></fo:list-item-body></fo:list-item><fo:list-item><fo:list-item-label><fo:block>*</fo:block></fo:list-item-label><fo:list-item-body><fo:block>Saab</fo:block></fo:list-item-body></fo:list-item></fo:list-block> 

上面代码的输出如下所示:

* Volvo
* Saab

相关阅读

XSL-FO list-item 对象

XSL-FO 表格

本节将为你介绍 XSL-FO 表格。


XSL-FO 使用 <fo:table-and-caption> 元素来定义表格。


XSL-FO 表格(Tables)

XSL-FO 表格模型与 HTML 表格模型不是完全不同的。

有九种 XSL-FO 对象可用来创建表格:

  • fo:table-and-caption
  • fo:table
  • fo:table-caption
  • fo:table-column
  • fo:table-header
  • fo:table-footer
  • fo:table-body
  • fo:table-row
  • fo:table-cell

XSL-FO 使用 <fo:table-and-caption> 元素来定义表格。它包含一个 <fo:table> 以及一个可选的 <fo:caption> 元素。

<fo:table> 元素包含可选的 <fo:table-column> 元素,一个可选的 <fo:table-header> 元素,一个 <fo:table-body> 元素,一个可选的 <fo:table-footer> 元素。这些元素中的每一个都可能拥有一个或多个 <fo:table-row> 元素,而 <fo:table-row> 同时会带有一个或多个 <fo:table-cell> 元素:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-row><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:table-and-caption>

以上代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000

相关文章

HTML 表格

XSL-FO 与 XSLT


本节为你介绍 XSL-FO 与 XSLT 之间的使用关系。

XSL-FO 与 XSLT 可彼此互助。


还记得这个实例吗?

<fo:block font-size="14pt" font-family="verdana" color="red"space-before="5mm" space-after="5mm">W3CSchool</fo:block><fo:block text-indent="5mm" font-family="verdana" font-size="12pt">At W3CSchool you will find all the Web-building tutorials youneed, from basic HTML and XHTML to advanced XML, XSL, Multimedia and WAP.</fo:block>

结果:

W3CSchool

At W3CSchool you will find all the Web-building tutorials you need, from basic HTML and XHTML to advanced XML, XSL, Multimedia and WAP.

上面的实例来自于有关 XSL-FO 块区域的那一章节。


来自 XSLT 的帮助

从文档移除 XSL-FO 信息:

<header>W3CSchool</header><paragraph>At W3CSchool you will find all the Web-building tutorials youneed, from basic HTML and XHTML to advanced XML, XSL, Multimedia and WAP.</paragraph>

添加 XSLT 转换:

<xsl:template match="header"><fo:block font-size="14pt" font-family="verdana" color="red"space-before="5mm" space-after="5mm"><xsl:apply-templates/></fo:block></xsl:template><xsl:template match="paragraph"><fo:block text-indent="5mm" font-family="verdana" font-size="12pt"><xsl:apply-templates/></fo:block></xsl:template>

产生的结果是相同的:

W3CSchool

At W3CSchool you will find all the Web-building tutorials you need, from basic HTML and XHTML to advanced XML, XSL, Multimedia and WAP.

以上就是有关 XSL-FO 与 XSLT 的介绍内容。

相关教程

XSLT教程

XSL-FO 软件


XSL-FO 需要格式化软件来产生输出。


XSL-FO 处理器

一个 XSL-FO 处理器是一个用于格式化输出 XSL 文档的软件程序。

大多数的 XSL-FO 处理器可以输出 HTML、PDF 文档和质量打印。

下面介绍一些知名的 XSL-FO 处理器。


Antenna House Formatter V5

Antenna House Formatter V5 是为 PDF 或打印格式化 XML 文档的软件程序。

访问 Antenna House


Altova 的 StyleVision

StyleVision 基于您的设计自动生成一致性标准的 XSLT 和 XSL:FO 样式表,以及相应的 HTML、RTF、PDF、 Word 2007 输出,等等。

访问 Altova


Ecrion 的 XF 产品

XSL-FO 格式化的一些产品!

访问 Ecrion

XSL-FO 参考手册

在本节中,列举了 XSL-FO 使用到的对象。

XSL 格式化对象参考手册

将描述转换为呈现的过程被称为格式化(formatting)。

对象 描述
basic-link 代表一个链接的起始资源。
bidi-override 重写默认 Unicode BIDI 的方向。
block 定义一个输出块(比如段落和标题)。
block-container 定义一个块级的引用区域(reference-area)。
character 规定将被映射为供呈现的字形的字符。
color-profile 定义样式表的一个颜色配置文件。
conditional-page-master-reference 规定一个当所定义的条件成立时使用的 page-master。
declarations 组合一个样式表的全局声明。
external-graphic 用于图像数据位于 XML 结果树之外的某个图形。
float 通常用于在页面起始处的一个单独区域里定位图像,或者通过将内容沿图像的一侧流动来定位图像到一侧。
flow 包含要打印到页面的所有元素。
footnote 定义在页面的 region-body 内部的一个脚注。
footnote-body 定义脚注的内容。
initial-property-set 格式化 <fo:block> 的第一行。
inline 通过背景属性或将其嵌入一个边框来定义文本的一部分格式。
inline-container 定义一个内联参考域(reference-area)。
instream-foreign-object 用于内联图形或 "generic" 类对象。在其中,对象的数据以 <fo:instream-foreign-object> 的后代形式存在。
layout-master-set 保存所有在文档中使用的宿主(master)。
leader

用于生成 "." 符号来分隔内容表格中页面数字的标题,或创建表单中的输入字段,或创建水平规则。

list-block 定义列表。
list-item 包含列表中的每个项。
list-item-body 包含了 list-item 的内容/主体。
list-item-label 包含了 list-item 标签(通常是数字、字符等)。
marker 与 <fo:retrieve-marker> 一起使用来创建运行的页眉或页脚。
multi-case

包含 XSL-FO 对象的每个供选择的子树(在 <fo:multi-switch> 内部)。父元素 <fo:multi-switch> 会选择要显示的那个选项并隐藏其余的选项。

multi-properties 用于两个或多个属性集之间切换。
multi-property-set 规定一个根据用户代理状态进行应用的可选的属性集。
multi-switch 保留一个或多个 <fo:multi-case> 对象,控制它们(由 <fo:multi-toggle> 触发)彼此之间的转换。
multi-toggle 用于切换到另一个 <fo:multi-case>。
page-number 表示当前页码。
page-number-citation 为页面引用页码,此页面包含由被引用对象返回的第一个正常区域。
page-sequence 页面输出元素的容器。每个页面布局将有一个 <fo:page-sequence> 对象。
page-sequence-master 规定要使用的 simple-page-masters 以及使用顺序。
region-after 定义页脚。
region-before 定义页眉。
region-body 定义页面主题。
region-end 定义页面的右侧栏。
region-start 定义页面的左侧栏。
repeatable-page-master-alternatives 规定一组 simple-page-master 的副本。
repeatable-page-master-reference 规定单个 simple-page-master 的副本。
retrieve-marker 与 <fo:marker> 一起使用来创建运行的页眉或页脚。
root XSL-FO 文档的根(顶级)节点。
simple-page-master 定义一个页面的尺寸和形状。
single-page-master-reference 规定用在页面序列的给定点中的 page-master。
static-content 对象包含了静态内容(如:页眉和页脚),该静态内容将在多个页面中重复调用。
table 格式化表格的表格式材料。
table-and-caption 格式化表格及其标题。
table-body 包含表格行和表格单元格的容器。
table-caption 包含表格的标题。
table-cell 定义表格单元格。
table-column 格式化表格的列。
table-footer 定义表格的页脚。
table-header 定义表格的页眉。
table-row 定义表格行。
title 为一个 page-sequence 定义一个标题。
wrapper 为一组 XSL-FO 对象规定 inherited[继承] 属性。

在下一节内容中,我们将开始为你详细的介绍 XSL-FO 对象。

XSL-FO basic-link 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节介绍的是 XSL-FO 中的 basic-link 对象,你将了解该对象的定义、语法以及属性。


定义和用法

<fo:basic-link> 对象代表一个链接的起始资源。


语法

<fo:basic-link><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|page-number|page-number-citation|basic-link|multi-toggle|block|block-container|table-and-caption|table|list-block)*--></fo:basic-link> 

属性

属性 [A-I] 属性 [J-Z]
azimuth keep-together
alignment-adjust keep-with-next
alignment-baseline keep-with-previous
background-attachment left
background-color line-height
background-image margin-bottom
background-repeat margin-left
background-position-horizontal margin-right
background-position-vertical margin-top
baseline-shift padding-after
border-after-color padding-before
border-after-style padding-bottom
border-after-width padding-end
border-before-color padding-left
border-before-style padding-right
border-before-width padding-start
border-bottom-color padding-top
border-bottom-style pause-after
border-bottom-width pause-before
border-end-color pitch
border-end-style pitch-range
border-end-width play-during
border-left-color relative-position
border-left-style richness
border-left-width right
border-right-color role
border-right-style show-destination
border-right-width source-document
border-start-color space-end
border-start-style space-start
border-start-width speak
border-top-color speak-header
border-top-style speak-numeral
border-top-width speak-punctuation
bottom speech-rate
cue-after stress
cue-before target-presentation-context
destination-placement-offset target-processing-context
dominant-baseline target-stylesheet
elevation top
external-destination voice-family
id volume
indicate-destination  
internal-destination  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO bidi-override 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节介绍的是 XSL-FO 中的 bidi-override 对象,你将了解该对象的定义、语法以及属性。


定义和用法

<fo:bidi-override> 对象用于为混合语言文档中的不同脚本重写默认 Unicode BIDI 的方向。

该对象会强制在一个特定的方向写入字符串。


语法

<fo:bidi-override><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|inline-container|leader|page-number|page-number-citation|basic-link|multi-toggle|block|block-container|table-and-caption|table|list-block)*--></fo:bidi-override>

属性

属性 [A-P] 属性 [Q-Z]
azimuth relative-position
bottom richness
color right
cue-after score-spaces
cue-before speak
direction speak-header
elevation speak-numeral
font-family speak-punctuation
font-selection-strategy speech-rate
font-size stress
font-size-adjust top
font-stretch unicode-bidi
font-style voice-family
font-variant volume
font-weight word-spacing
id  
left  
letter-spacing  
line-height  
pause-after  
pause-before  
pitch  
pitch-range  
play-during  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO block 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节介绍的是 XSL-FO 中的 block 对象,你将了解该对象的定义、语法以及属性。


定义和用法

<fo:block> 对象定义一个输出块。块是矩形框中的输出序列。

<fo:block> 对象用于格式化段落、标题、大字标题,等等。


语法

<fo:block><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|inline-container|leader|page-number|page-number-citation|basic-link|multi-toggle|block|block-container|table-and-caption|table|list-block)*--></fo:block>

属性

属性 [A-J] 属性 [K-Z]
azimuth keep-together
background-attachment keep-with-next
background-color keep-with-previous
background-image language
background-repeat last-line-end-indent
background-position-horizontal left
background-position-vertical linefeed-treatment
border-after-color line-height
border-after-style line-height-shift-adjustment
border-after-width line-stacking-strategy
border-before-color margin-bottom
border-before-style margin-left
border-before-width margin-right
border-bottom-color margin-top
border-bottom-style orphans
border-bottom-width padding-after
border-end-color padding-before
border-end-style padding-bottom
border-end-width padding-end
border-left-color padding-left
border-left-style padding-right
border-left-width padding-start
border-right-color padding-top
border-right-style pause-after
border-right-width pause-before
border-start-color pitch
border-start-style pitch-range
border-start-width play-during
border-top-color relative-position
border-top-style richness
border-top-width right
bottom role
break-after script
break-before source-document
color space-after
country space-before
cue-after span
cue-before speak
elevation speak-header
end-indent speak-numeral
font-family speak-punctuation
font-selection-strategy speech-rate
font-size start-indent
font-size-adjust stress
font-stretch text-align
font-style text-align-last
font-variant text-altitude
font-weight text-depth
hyphenate text-indent
hyphenation-character top
hyphenation-keep visibility
hyphenation-ladder-count voice-family
hyphenation-push-character-count volume
hyphenation-remain-character-count white-space-collapse
id white-space-treatment
intrusion-displace widows
  wrap-option

实例 1

块是矩形框中的输出序列:

<fo:blockborder-width="1mm">This block of output will have a one millimeter border around it.</fo:block>

实例 2

块是可独立样式化的输出序列:

<fo:blockfont-size="12pt"font-family="sans-serif">This block of output will be written in a 12pt sans-serif font.</fo:block>

实例 3

<fo:blockfont-size="14pt" font-family="verdana" color="red"space-before="5mm" space-after="5mm">W3CSchool</fo:block><fo:blocktext-indent="5mm"font-family="verdana" font-size="12pt"space-before="5mm" space-after="5mm">At W3CSchool you will find all the Web-building tutorials youneed, from basic HTML and XHTML to advanced XML, XSL, Multimediaand WAP.</fo:block>

结果:


W3CSchool

At W3CSchool you will find all the Web-building tutorials you need, from basic HTML and XHTML to advanced XML, XSL, Multimedia and WAP.



XSL-FO 参考手册 XSL-FO 参考手册

相关阅读

XSL-FO 块

XSL-FO block-container 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节介绍的是 XSL-FO 中的 block-container 对象,你将了解该对象的定义、语法以及属性。


定义和用法

<fo:block-container> 对象用于创建一个块级的引用区域(reference-area) - 这往往包含不同的写入模式或要旋转内容的不同的引用方向。


语法

<fo:block-container><!--Contents:(block|block-container|table-and-caption|table|list-block)+--></fo:block-container>

属性

属性 [A-C] 属性 [D-Z]
absolute-position display-align
background-attachment end-indent
background-color height
background-image id
background-repeat inline-progression-dimension
background-position-horizontal intrusion-displace
background-position-vertical keep-together
border-after-color keep-with-next
border-after-style keep-with-previous
border-after-width left
border-before-color margin-bottom
border-before-style margin-left
border-before-width margin-right
border-bottom-color margin-top
border-bottom-style overflow
border-bottom-width padding-after
border-end-color padding-before
border-end-style padding-bottom
border-end-width padding-end
border-left-color padding-left
border-left-style padding-right
border-left-width padding-start
border-right-color padding-top
border-right-style reference-orientation
border-right-width right
border-start-color space-after
border-start-style space-before
border-start-width span
border-top-color start-indent
border-top-style top
border-top-width width
bottom writing-mode
break-after z-index
break-before  
clip  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO character 对象

XSL-FO 参考手册 XSL-FO 参考手册

在本节中,你将了解 character 对象的定义、语法以及它的属性。


定义和用法

<fo:character> 对象规定将被映射为供呈现的字形的字符。


语法

<fo:character><!--Contents:EMPTY--></fo:character>

属性

属性 [A-G] 属性 [H-Z]
alignment-adjust hyphenate
alignment-baseline hyphenation-character
azimuth hyphenation-push-character-count
background-attachment hyphenation-remain-character-count
background-color id
background-image keep-with-next
background-repeat keep-with-previous
background-position-horizontal language
background-position-vertical left
baseline-shift letter-spacing
border-after-color line-height
border-after-style margin-bottom
border-after-width margin-left
border-before-color margin-right
border-before-style margin-top
border-before-width padding-after
border-bottom-color padding-before
border-bottom-style padding-bottom
border-bottom-width padding-end
border-end-color padding-left
border-end-style padding-right
border-end-width padding-start
border-left-color padding-top
border-left-style pause-after
border-left-width pause-before
border-right-color pitch
border-right-style pitch-range
border-right-width play-during
border-start-color relative-position
border-start-style richness
border-start-width right
border-top-color score-spaces
border-top-style script
border-top-width space-end
bottom space-start
character speak
color speak-header
country speak-numeral
cue-after speak-punctuation
cue-before speech-rate
dominant-baseline stress
elevation suppress-at-line-break
font-family text-altitude
font-selection-strategy text-depth
font-size text-decoration
font-size-adjust text-shadow
font-stretch text-transform
font-style top
font-variant treat-as-word-space
font-weight visibility
glyph-orientation-horizontal voice-family
glyph-orientation-vertical volume
  word-spacing


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO color-profile 对象

XSL-FO 参考手册 XSL-FO 参考手册

在 XSL-FO 中 color-profile 对象的作用是什么?请参考本节内容。


定义和用法

<fo:color-profile> 对象定义样式表的一个颜色配置文件。

颜色配置文件是通过 "color-profile-name" 属性中的名称引用,并通过 "src" 属性中的 URI 标识。


语法

<fo:color-profile><!--Contents:EMPTY--></fo:color-profile> 

属性

属性
color-profile-name
rendering-intent
src


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO conditional-page-master-reference 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:conditional-page-master-reference> 对象对象规定一个当所定义的条件成立时使用的 page-maste。

这使得不同的页面可以使用不同的 page-masters。(比如,偶数和奇数页面、第一个页面、空白页。)

三个属性,odd-or-even、blank-or-not-blank、page-postion 规定条件。所有三个条件都成立时,<fo:conditional-page-master-reference> 成立。

  • 如果生成的页面有指定的位置(first, last, rest, any)时,page-position 成立。
  • 如果值为 "any" 或值的奇偶性与页码匹配时,odd-or-even 成立。
  • 如果值为 "not-blank" 且页面有由 <fo:flow> 的后代生成的区域时,或者如果值为 "blank" 且页面没有来自 <fo:flow> 的区域时,或者如果值为 "any" 时,blank-or-not-blank 成立。

语法

<fo:conditional-page-master-reference><!--Contents:EMPTY--></fo:conditional-page-master-reference> 

属性

属性
blank-or-not-blank
master-reference
odd-or-even
page-postion


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO declarations 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节介绍了 XSL-FO declarations 对象的定义与语法。


定义和用法

<fo:declarations> 对象用于组合样式表的全局声明。

<fo:declarations> 对象是一个对象的包装,其内容是用于格式化程序的一种资源。


语法

<fo:declarations><!--Contents:(color-profile)+--></fo:declarations> 

属性



XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO external-graphic 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:external-graphic> 对象用于图像数据位于 <fo:element> 树之外的某个图形。

<fo:external-graphic> 可能被放置在一个封闭的块级 <fo:block>。

"max-height" 或 "line-height" 的 "line-stacking-strategy" 通常被用于堆叠 <fo:external-graphic> 内容的一个或多个行。

提示:<fo:external-graphic> 元素在缺省情况下不会引起换行。如果您希望图形单独出现,请将 <fo:external-graphic> 放置在 <fo:block> 中。


语法

<fo:external-graphic><!--Contents:EMPTY--></fo:external-graphic> 

属性

属性 [A-J] 属性 [K-Z]
alignment-adjust keep-with-next
alignment-baseline keep-with-previous
azimuth language
background-attachment left
background-color line-height
background-image margin-bottom
background-repeat margin-left
background-position-horizontal margin-right
background-position-vertical margin-top
baseline-shift overflow
block-progression-dimension padding-after
border-after-color padding-before
border-after-style padding-bottom
border-after-width padding-end
border-before-color padding-left
border-before-style padding-right
border-before-width padding-start
border-bottom-color padding-top
border-bottom-style pause-after
border-bottom-width pause-before
border-end-color pitch
border-end-style pitch-range
border-end-width play-during
border-left-color relative-position
border-left-style richness
border-left-width right
border-right-color role
border-right-style scaling
border-right-width scaling-method
border-start-color script
border-start-style source-document
border-start-width space-end
border-top-color space-start
border-top-style speak
border-top-width speak-header
bottom speak-numeral
clip speak-punctuation
content-height speech-rate
content-type src
content-width stress
country text-align
cue-after text-indent
cue-before top
display-align voice-family
dominant-baseline volume
elevation width
height  
id  
inline-progression-dimension  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO float 对象

XSL-FO 参考手册 XSL-FO 参考手册

通过本节,你将了解 float 对象应该如何使用。


定义和用法

<fo:float> 对象通常用于在页面起始处的一个单独区域里定位图像,或者通过将内容沿图像的一侧流动来定位图像到一侧。

如果 <fo:float> 是一个没有被分配到 region-body 的流的后代,这是一个错误。

如果 <fo:float> 是一个生成绝对定位区域的 fo:block-container 的后代,这也是一个错误。

<fo:float> 不能把 <fo:float>、<fo:footnote> 或 <fo:marker> 作为后代。


语法

<fo:float><!--Contents:(block|block-container|table-and-caption|table|list-block)+--></fo:float> 

属性

属性
float
clear


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO flow 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节为你介绍 XSL-FO flow 对象的使用。


定义和用法

来自 <fo:flow> 对象的内容填充 XSL-FO 页面。

<fo:flow> 对象包含要打印到页面的所有元素。

当页面已满,将重复使用相同的母版页,直到所有的文本都打印完为止。

<fo:flow> 对象有一个 "flow-name" 属性,它定义内容会去的地方。


语法

<fo:flow><!--Contents:(block|block-container|table-and-caption|table|list-block)+--></fo:flow> 

属性

属性
flow-name

实例 1

一个"真实的" XSL-FO 实例:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><fo:flow flow-name="xsl-region-body"><fo:block>Hello W3CSchool</fo:block></fo:flow></fo:page-sequence></fo:root>

上面代码的输出如下所示:

Hello W3CSchool


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO footnote 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:footnote> 对象定义在页面的 region-body 内部的一个脚注。

如果 <fo:footnote> 是一个没有被分配到 region-body 的流的后代,这是一个错误。

如果 <fo:footnote> 是一个生成绝对定位区域的 fo:block-container 的后代,这也是一个错误。

<fo:footnote> 对象不能把 <fo:float>、<fo:footnote> 或 <fo:marker> 作为后代。


语法

<fo:footnote><!--Contents:(inline|footnote-body)--></fo:footnote> 

属性

属性
role
source-document


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO footnote-body 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:footnote-body> 对象定义脚注的内容。


语法

<fo:footnote-body><!--Contents:(block|block-container|table-and-caption|table|list-block)+--></fo:footnote-body> 

属性

属性
role
source-document


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO initial-property-set 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节介绍 XSL-FO 中 initial-property-set 对象的定义、语法以及属性。


定义和用法

<fo:initial-property-set> 对象用于格式化 <fo:block> 的第一行。


语法

<fo:initial-property-set><!--Contents:EMPTY--></fo:initial-property-set>

属性

属性 [A-G] 属性 [H-Z]
azimuth id
background-attachment left
background-color letter-spacing
background-image line-height
background-repeat padding-after
background-position-horizontal padding-before
background-position-vertical padding-bottom
border-after-color padding-end
border-after-style padding-left
border-after-width padding-right
border-before-color padding-start
border-before-style padding-top
border-before-width pause-after
border-bottom-color pause-before
border-bottom-style pitch
border-bottom-width pitch-range
border-end-color play-during
border-end-style relative-position
border-end-width richness
border-left-color right
border-left-style role
border-left-width score-spaces
border-right-color source-document
border-right-style speak
border-right-width speak-header
border-start-color speak-numeral
border-start-style speak-punctuation
border-start-width speech-rate
border-top-color stress
border-top-style text-decoration
border-top-width text-shadow
bottom text-transform
color top
cue-after voice-family
cue-before volume
elevation word-spacing
font-family  
font-selection-strategy  
font-size  
font-size-adjust  
font-stretch  
font-style  
font-variant  
font-weight  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO inline 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:inline> 对象通过背景属性或将其嵌入一个边框来定义文本的一部分格式。


语法

<fo:inline><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|inline-container|leader|page-number|page-number-citation|basic-link|multi-toggle|block|block-container|table-and-caption|table|list-block)*--></fo:inline> 

属性

属性 [A-G] 属性 [H-Z]
azimuth height
alignment-adjust id
alignment-baseline inline-progression-dimension
background-attachment keep-together
background-color keep-with-next
background-image keep-with-previous
background-repeat left
background-position-horizontal line-height
background-position-vertical margin-bottom
baseline-shift margin-left
block-progression-dimension margin-right
border-after-color margin-top
border-after-style padding-after
border-after-width padding-before
border-before-color padding-bottom
border-before-style padding-end
border-before-width padding-left
border-bottom-color padding-right
border-bottom-style padding-start
border-bottom-width padding-top
border-end-color pause-after
border-end-style pause-before
border-end-width pitch
border-left-color pitch-range
border-left-style play-during
border-left-width relative-position
border-right-color richness
border-right-style right
border-right-width role
border-start-color source-document
border-start-style space-end
border-start-width space-start
border-top-color speak
border-top-style speak-header
border-top-width speak-numeral
bottom speak-punctuation
color speech-rate
cue-after stress
cue-before text-decoration
dominant-baseline top
elevation visibility
font-family voice-family
font-selection-strategy volume
font-size width
font-size-adjust wrap-option
font-stretch  
font-style  
font-variant  
font-weight  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO inline-container 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节介绍关于 XSL-FO inline-container 对象的定义、语法以及属性。


定义和用法

<fo:inline-container> 对象生成一个内联参考域(reference-area)。通常情况下,该区域包含了不同写入模式的文本块。


语法

<fo:inline-container><!--Contents:(block|block-container|table-and-caption|table|list-block)+--></fo:inline-container> 

属性

属性 [A-B] 属性 [C-Z]
alignment-adjust clip
alignment-baseline display-align
background-attachment dominant-baseline
background-color height
background-image id
background-repeat inline-progression-dimension
background-position-horizontal keep-together
background-position-vertical keep-with-next
baseline-shift keep-with-previous
block-progression-dimension left
border-after-color line-height
border-after-style margin-bottom
border-after-width margin-left
border-before-color margin-right
border-before-style margin-top
border-before-width overflow
border-bottom-color padding-after
border-bottom-style padding-before
border-bottom-width padding-bottom
border-end-color padding-end
border-end-style padding-left
border-end-width padding-right
border-left-color padding-start
border-left-style padding-top
border-left-width reference-orientation
border-right-color relative-position
border-right-style right
border-right-width space-end
border-start-color space-start
border-start-style top
border-start-width width
border-top-color writing-mode
border-top-style  
border-top-width  
bottom  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO instream-foreign-object 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:instream-foreign-object> 对象用于内联图形或 "generic" 类对象。在其中,对象的数据以 <fo:instream-foreign-object> 的后代形式存在。通常情况下,是作为一个非 XSL 命名空间中的 XML 元素子树(一个常见的格式是 SVG)存储于其内部。

该对象的内容尺寸大小是通过调用对象的 size 属性来定义的,并通过指定 content-height、content-width 以及 scaling 属性来缩放尺寸大小。

如果尺寸放大后内容太大了,那么可以使用 overflow 属性来设置滚动条对溢出部分进行浏览。


语法

<fo:instream-foreign-object><!--Contents:(see below)--></fo:instream-foreign-object> 

该对象有一个来自于非 XSL 命名空间的子类。它也可能包含非 XSL 命名空间的额外属性。

属性

属性 [A-J] 属性 [K-Z]
alignment-adjust keep-with-next
alignment-baseline keep-with-previous
azimuth language
background-attachment left
background-color line-height
background-image margin-bottom
background-repeat margin-left
background-position-horizontal margin-right
background-position-vertical margin-top
baseline-shift overflow
block-progression-dimension padding-after
border-after-color padding-before
border-after-style padding-bottom
border-after-width padding-end
border-before-color padding-left
border-before-style padding-right
border-before-width padding-start
border-bottom-color padding-top
border-bottom-style pause-after
border-bottom-width pause-before
border-end-color pitch
border-end-style pitch-range
border-end-width play-during
border-left-color relative-position
border-left-style richness
border-left-width right
border-right-color role
border-right-style scaling
border-right-width scaling-method
border-start-color script
border-start-style source-document
border-start-width space-end
border-top-color space-start
border-top-style speak
border-top-width speak-header
bottom speak-numeral
clip speak-punctuation
content-height speech-rate
content-type stress
content-width text-align
country text-indent
cue-after top
cue-before voice-family
display-align volume
dominant-baseline width
elevation  
height  
id  
inline-progression-dimension  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO layout-master-set 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:layout-master-set> 对象保存所有在文档中使用的宿主(master)。

注意:<fo:root> 是 <fo:layout-master-set> 的父类。

注意:<fo:layout-master-set> 的每个子类的宿主名(master-name)在文档中必须是独一无二的。


语法

<fo:layout-master-set><!--Contents:(simple-page-master|page-sequence-master)+--></fo:layout-master-set> 

属性

实例 1

XSL-FO 文档结构如下所示:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"><!-- Page template goes here --></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><!-- Page content goes here --></fo:page-sequence></fo:root> 


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO leader 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:leader> 对象的作用如下:

  • 生成 "." 符号来分隔内容表格中页面数字的标题
  • 创建表单中的输入字段
  • 创建水平规则

如果前导字符长度太长,与整个区域明显不适应,那么它将会另起一行。

只用在 leader-pattern 属性设置为 "use-content" 的情况下,<fo:leader> 对象的子类才不会被忽略;如果 <fo:leader> 不包含子类,并且 leader-pattern 属性设置为 "use-content",那么前导字符会被填充为空白。

如果前导字符需要在一行中填充所有的空格,那么前导字符的最大长度至少与列的宽度相同。


语法

<fo:leader><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|page-number|page-number-citation|basic-link|multi-toggle)*--></fo:leader>

属性

属性 [A-K] 属性 [L-Z]
azimuth leader-alignment
alignment-adjust leader-length
alignment-baseline leader-pattern
background-attachment leader-pattern-width
background-color left
background-image letter-spacing
background-repeat line-height
background-position-horizontal margin-bottom
background-position-vertical margin-left
baseline-shift margin-right
border-after-color margin-top
border-after-style padding-after
border-after-width padding-before
border-before-color padding-bottom
border-before-style padding-end
border-before-width padding-left
border-bottom-color padding-right
border-bottom-style padding-start
border-bottom-width padding-top
border-end-color pause-after
border-end-style pause-before
border-end-width pitch
border-left-color pitch-range
border-left-style play-during
border-left-width relative-position
border-right-color richness
border-right-style right
border-right-width role
border-start-color rule-style
border-start-style rule-thickness
border-start-width source-document
border-top-color space-end
border-top-style space-start
border-top-width speak
bottom speak-header
color speak-numeral
cue-after speak-punctuation
cue-before speech-rate
dominant-baseline stress
elevation text-altitude
font-family text-depth
font-selection-strategy text-shadow
font-size top
font-size-adjust visibility
font-stretch voice-family
font-style volume
font-variant word-spacing
font-weight  
id  
keep-with-next  
keep-with-previous  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO list-block 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:list-block> 对象用于格式化整个列表。

下面列举了四个用于创建列表的 XSL-FO 对象:

  • fo:list-block(包含了整个列表)
  • fo:list-item(包含了列表中的每个项)
  • fo:list-item-label(包含了 list-item 标签 - 通常情况下,<fo:block> 包含数字、字符等)
  • fo:list-item-body(包含了 list-item 的内容/主体 - 通常是一个或多个 <fo:block> 对象)

语法

<fo:list-block><!--Contents:(list-item+)--></fo:list-block> 

属性

属性 [A-J] 属性 [K-Z]
azimuth keep-together
background-attachment keep-with-next
background-color keep-with-previous
background-image left
background-repeat margin-bottom
background-position-horizontal margin-left
background-position-vertical margin-right
border-after-color margin-top
border-after-style padding-after
border-after-width padding-before
border-before-color padding-bottom
border-before-style padding-end
border-before-width padding-left
border-bottom-color padding-right
border-bottom-style padding-start
border-bottom-width padding-top
border-end-color pause-after
border-end-style pause-before
border-end-width pitch
border-left-color pitch-range
border-left-style play-during
border-left-width provisional-distance-between-starts
border-right-color provisional-label-separation
border-right-style relative-position
border-right-width richness
border-start-color right
border-start-style role
border-start-width source-document
border-top-color space-after
border-top-style space-before
border-top-width speak
bottom speak-header
break-after speak-numeral
break-before speak-punctuation
cue-after speech-rate
cue-before start-indent
elevation stress
end-indent top
id voice-family
intrusion-displace volume

实例 1

一个 XSL-FO 列表实例:

<fo:list-block>

<fo:list-item>
<fo:list-item-label>
<fo:block>*</fo:block>
</fo:list-item-label>
<fo:list-item-body>
<fo:block>Volvo</fo:block>
</fo:list-item-body>
</fo:list-item>

<fo:list-item>
<fo:list-item-label>
<fo:block>*</fo:block>
</fo:list-item-label>
<fo:list-item-body>
<fo:block>Saab</fo:block>
</fo:list-item-body>
</fo:list-item>

</fo:list-block>

上面代码将输出:


* Volvo
* Saab


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO list-item 对象

XSL-FO 参考手册 XSL-FO 参考手册

你可以对 XSL-FO 中的列表的每个项使用 list-item 对象。


定义和用法

<fo:list-item> 对象用于列表中的每个项。

下面列举了四个用于创建列表的 XSL-FO 对象:

  • fo:list-block(包含了整个列表)
  • fo:list-item(包含了列表中的每个项)
  • fo:list-item-label(包含了 list-item 标签 - 通常情况下,<fo:block> 包含数字、字符等)
  • fo:list-item-body(包含了 list-item 的内容/主体 - 通常是一个或多个 <fo:block> 对象)

语法

<fo:list-item><!--Contents:(list-item-label,list-item-body)--></fo:list-item>

属性

属性 [A-J] 属性 [K-Z]
azimuth keep-together
background-attachment keep-with-next
background-color keep-with-previous
background-image left
background-repeat margin-bottom
background-position-horizontal margin-left
background-position-vertical margin-right
border-after-color margin-top
border-after-style padding-after
border-after-width padding-before
border-before-color padding-bottom
border-before-style padding-end
border-before-width padding-left
border-bottom-color padding-right
border-bottom-style padding-start
border-bottom-width padding-top
border-end-color pause-after
border-end-style pause-before
border-end-width pitch
border-left-color pitch-range
border-left-style play-during
border-left-width relative-align
border-right-color relative-position
border-right-style richness
border-right-width right
border-start-color role
border-start-style source-document
border-start-width space-after
border-top-color space-before
border-top-style speak
border-top-width speak-header
bottom speak-numeral
break-after speak-punctuation
break-before speech-rate
cue-after start-indent
cue-before stress
elevation top
end-indent voice-family
id volume
intrusion-displace  

实例 1

一个 XSL-FO 列表实例:

<fo:list-block><fo:list-item><fo:list-item-label><fo:block>*</fo:block></fo:list-item-label><fo:list-item-body><fo:block>Volvo</fo:block></fo:list-item-body></fo:list-item><fo:list-item><fo:list-item-label><fo:block>*</fo:block></fo:list-item-label><fo:list-item-body><fo:block>Saab</fo:block></fo:list-item-body></fo:list-item></fo:list-block> 

上面代码将输出:


* Volvo
* Saab


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO list-item-body 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:list-item-body> 对象包含了 list-item 的内容/主体 - 通常是一个或多个 <fo:block> 对象。

下面列举了四个用于创建列表的 XSL-FO 对象:

  • fo:list-block(包含了整个列表)
  • fo:list-item(包含了列表中的每个项)
  • fo:list-item-label(包含了 list-item 标签 - 通常情况下,<fo:block> 包含数字、字符等)
  • fo:list-item-body(包含了 list-item 的内容/主体 - 通常是一个或多个 <fo:block> 对象)

语法

<fo:list-item-body><!--Contents:(block|block-container|table-and-caption|table|list-block|list-item)+--></fo:list-item-body> 

属性

属性
id
keep-together
role
source-document

实例 1

一个 XSL-FO 列表实例:

<fo:list-block><fo:list-item><fo:list-item-label><fo:block>*</fo:block></fo:list-item-label><fo:list-item-body><fo:block>Volvo</fo:block></fo:list-item-body></fo:list-item><fo:list-item><fo:list-item-label><fo:block>*</fo:block></fo:list-item-label><fo:list-item-body><fo:block>Saab</fo:block></fo:list-item-body></fo:list-item></fo:list-block> 

上面代码将输出:


* Volvo
* Saab


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO list-item-label 对象

XSL-FO 参考手册 XSL-FO 参考手册

你可以使用 list-item-label 对象设置 list-item 的标签。


定义和用法

<fo:list-item-label> 对象包含了 list-item 标签 - 通常情况下,<fo:block> 包含数字、字符等。

下面列举了四个用于创建列表的 XSL-FO 对象:

  • fo:list-block(包含了整个列表)
  • fo:list-item(包含了列表中的每个项)
  • fo:list-item-label(包含了 list-item 标签 - 通常情况下,<fo:block> 包含数字、字符等)
  • fo:list-item-body(包含了 list-item 的内容/主体 - 通常是一个或多个 <fo:block> 对象)

语法

<fo:list-item-label><!--Contents:(block|block-container|table-and-caption|table|list-block|list-item)+--></fo:list-item-label> 

属性

属性
id
keep-together
role
source-document

实例 1

一个 XSL-FO 列表实例:

<fo:list-block><fo:list-item><fo:list-item-label><fo:block>*</fo:block></fo:list-item-label><fo:list-item-body><fo:block>Volvo</fo:block></fo:list-item-body></fo:list-item><fo:list-item><fo:list-item-label><fo:block>*</fo:block></fo:list-item-label><fo:list-item-body><fo:block>Saab</fo:block></fo:list-item-body></fo:list-item></fo:list-block>

上面代码将输出:


* Volvo
* Saab


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO marker 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:marker> 对象与 <fo:retrieve-marker> 一起使用来创建运行的页眉或页脚(举例:让页眉展示页面的章节以及区域标题)。

注意:<fo:marker> 对象仅被允许用作 <fo:flow> 对象的子类。


语法

<fo:marker><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|inline-container|leader|page-number|page-number-citation|basic-link|multi-toggle|block|block-container|table-and-caption|table|list-block)*--></fo:marker> 

属性

属性
marker-class-name


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO multi-case 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:multi-case> 对象包含 XSL-FO 对象的每个供选择的子树(在 <fo:multi-switch> 内部)。父元素 <fo:multi-switch> 会选择要显示的那个选项并隐藏其余的选项。


语法

<fo:multi-case><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|inline-container|leader|page-number|page-number-citation|basic-link|multi-toggle|block|block-container|table-and-caption|table|list-block)*--></fo:multi-case>

属性

属性
case-name
case-title
id
role
source-document
starting-state


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO multi-properties 对象

XSL-FO 参考手册 XSL-FO 参考手册

如果你需要切换属性集,可以使用 XSL-FO 的 multi-properties 对象。


定义和用法

<fo:multi-properties> 对象用于两个或多个属性集之间切换。

该对象可用于给一部分内容呈现不同的布局。比如:当链接从未访问变成已访问,布局会改变(这是通过改变属性集来完成的)。注意:在改变引起文本回流的属性时要格外小心。像 "color" 或 "text-decoration" 这样的属性不会导致文本回流。


语法

<fo:multi-properties><!--Contents:(multi-property-set+,wrapper)--></fo:multi-properties>

属性

属性
id
role
source-document


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO multi-property-set 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:multi-property-set> 对象规定一个用于交替出现的格式化属性的可选集合。


语法

<fo:multi-property-set><!--Contents:EMPTY--></fo:multi-property-set> 

属性

属性
active-state
id


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO multi-switch 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:multi-switch> 对象保留一个或多个 <fo:multi-case> 对象,控制它们(由 <fo:multi-toggle> 触发)彼此之间的转换。

该对象可用于交互式任务,比如:表格内容视图切换以及下一页/上一页视图切换。

这些对象的子类为一个或多个 <fo:multi-case> 对象。然而,在一个时间内只有一个 <fo:multi-case> 对象是可视的。每个 <fo:multi-case> 对象都可能包含一个或多个 <fo:multi-toggle> 对象,<fo:multi-toggle>对象是用于控制 <fo:multi-switch> 的 <fo:multi-case> 切换的。


语法

<fo:multi-switch><!--Contents:(multi-case+)--></fo:multi-switch> 

属性

属性
auto-restore
id
role
source-document


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO multi-toggle 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

The <fo:multi-toggle> 对象用于当对象被激活时(如:单击),创建一个域,并从一个 <fo:multi-case> 切换到另一个 <fo:multi-case>。

"switch-to" 属性通常是匹配要切换到的 <fo:multi-case> 的 "case-name" 属性。

<fo:multi-toggle> 对象必须是 <fo:multi-case> 对象的子类。


语法

<fo:multi-toggle><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|inline-container|leader|page-number|page-number-citation|basic-link|multi-toggle|block|block-container|table-and-caption|table|list-block)*--></fo:multi-toggle> 

属性

属性
id
role
source-document
switch-to


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO page-number 对象

XSL-FO 参考手册 XSL-FO 参考手册

如何显示当前的页码?你可以使用 page-number 对象。


定义和用法

<fo:page-number> 对象用于表示当前页码。


语法

<fo:page-number><!--Contents:EMPTY--></fo:page-number> 

属性

属性 [A-J] 属性 [K-Z]
azimuth keep-with-next
alignment-adjust keep-with-previous
alignment-baseline left
background-attachment letter-spacing
background-color line-height
background-image margin-bottom
background-repeat margin-left
background-position-horizontal margin-right
background-position-vertical margin-top
baseline-shift padding-after
border-after-color padding-before
border-after-style padding-bottom
border-after-width padding-end
border-before-color padding-left
border-before-style padding-right
border-before-width padding-start
border-bottom-color padding-top
border-bottom-style pause-after
border-bottom-width pause-before
border-end-color pitch
border-end-style pitch-range
border-end-width play-during
border-left-color relative-position
border-left-style richness
border-left-width right
border-right-color role
border-right-style score-spaces
border-right-width source-document
border-start-color space-end
border-start-style space-start
border-start-width speak
border-top-color speak-header
border-top-style speak-numeral
border-top-width speak-punctuation
bottom speech-rate
cue-after stress
cue-before text-altitude
dominant-baseline text-decoration
elevation text-depth
font-family text-shadow
font-selection-strategy text-transform
font-size top
font-size-adjust visibility
font-stretch voice-family
font-style volume
font-variant word-spacing
font-weight wrap-option
id  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO page-number-citation 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:page-number-citation> 对象为页面引用页码,此页面包含由被引用对象返回的第一个标准域。/p>

被引用页码指出了页面的数量,该页面包含了作为其子类的通过标准域的 id 与 <fo:page-number-citation> 的 ref-id 相匹配返回的第一个标准域。

该对象可用于提供内容表、交叉引用以及索引的页码。


语法

<fo:page-number-citation><!--Contents:EMPTY--></fo:page-number-citation> 

属性

属性 [A-J] 属性 [K-Z]
azimuth keep-with-next
alignment-adjust keep-with-previous
alignment-baseline left
background-attachment letter-spacing
background-color line-height
background-image margin-bottom
background-repeat margin-left
background-position-horizontal margin-right
background-position-vertical margin-top
baseline-shift padding-after
border-after-color padding-before
border-after-style padding-bottom
border-after-width padding-end
border-before-color padding-left
border-before-style padding-right
border-before-width padding-start
border-bottom-color padding-top
border-bottom-style pause-after
border-bottom-width pause-before
border-end-color pitch
border-end-style pitch-range
border-end-width play-during
border-left-color ref-id
border-left-style relative-position
border-left-width richness
border-right-color right
border-right-style role
border-right-width score-spaces
border-start-color source-document
border-start-style space-end
border-start-width space-start
border-top-color speak
border-top-style speak-header
border-top-width speak-numeral
bottom speak-punctuation
cue-after speech-rate
cue-before stress
dominant-baseline text-altitude
elevation text-decoration
font-family text-depth
font-selection-strategy text-shadow
font-size text-transform
font-size-adjust top
font-stretch visibility
font-style voice-family
font-variant volume
font-weight word-spacing
id wrap-option


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO page-sequence 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节介绍 page-sequence 对象在 XSL-FO 中起到的作用。


定义和用法

<fo:page-sequence> 对象是作为页面输出元素的容器使用的。

每个页面布局都包含一个 <fo:page-sequence> 对象。<fo:page-sequence> 的子类对象规定了页面的内容。

每个 fo:page-sequence 对象都引用了一个 <fo:page-sequence-master> 或是一个 <fo:simple-page-master>。


语法

<fo:page-sequence><!--Contents:title?,static-content*,flow--></fo:page-sequence> 

属性

属性
country
force-page-count
format
grouping-separator
grouping-size
id
initial-page-number
language
letter-value
master-reference

实例 1

XSL-FO 文档结构如下所示:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"><!-- Page template goes here --></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><!-- Page content goes here --></fo:page-sequence></fo:root> 

实例 2

一个"真实的" XSL-FO 实例:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><fo:flow flow-name="xsl-region-body"><fo:block>Hello W3CSchool</fo:block></fo:flow></fo:page-sequence></fo:root> 

上面代码的输出如下所示:

Hello W3CSchool


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO page-sequence-master 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:page-sequence-master> 对象规定要使用的 simple-page-masters 以及使用顺序。


语法

<fo:page-sequence-master><!--Contents:(single-page-master-reference|repeatable-page-master-reference|repeatable-page-master-alternatives)+--></fo:page-sequence-master> 

属性

属性
master-name


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO region-after 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:region-after> 对象定义了页面的底部区域(页脚)。

XSL-FO 使用下列元素来定义页面的区域:

  • <fo:region-body> 定义了主体区域
  • <fo:region-before> 定义了顶部区域(页眉)
  • <fo:region-after> 定义了底部区域(页脚)
  • <fo:region-start> 定义了左部区域(左侧栏)
  • <fo:region-end> 定义了右部区域(右侧栏)

注意:region-before、region-after、region-start 以及 region-end 都是 region-body 的一部分。为了避免 region-body 内的文本覆盖其它区域的文本, region-body 的边距至少必须与上述四个子区域的尺寸相同。

注意:根据 XSL-FO 1.0 版本的推荐标准,padding 和 border-width 属性必须为 0。


语法

<fo:region-after><!--Contents:EMPTY--></fo:region-after

属性

属性 [A-B] 属性 [C-Z]
background-attachment clip
background-color display-align
background-image extent
background-repeat overflow
background-position-horizontal padding-after
background-position-vertical padding-before
border-after-color padding-bottom
border-after-style padding-end
border-after-width padding-left
border-before-color padding-right
border-before-style padding-start
border-before-width padding-top
border-bottom-color precedence
border-bottom-style region-name
border-bottom-width reference-orientation
border-end-color writing-mode
border-end-style  
border-end-width  
border-left-color  
border-left-style  
border-left-width  
border-right-color  
border-right-style  
border-right-width  
border-start-color  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  

实例 1

XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。每个模板必须拥有一个唯一的名称:

<fo:simple-page-master master-name="intro"><fo:region-body margin="5in" /></fo:simple-page-master><fo:simple-page-master master-name="left"><fo:region-body margin-left="2in" margin-right="3in" /></fo:simple-page-master><fo:simple-page-master master-name="right"><fo:region-body margin-left="3in" margin-right="2in" /></fo:simple-page-master> 

在上面的实例中,三个 <fo:simple-page-master> 元素,定义了三个不同的模板。每个模板(page-master)都有不同的名称。

第一个模板名为 "intro"。它可作为介绍页面的模板使用。

第二个和第三个模板名为 "left" 和 "right"。它们可作为偶数和奇数页码的页面模板使用。

实例 2

这是从某个 XSL-FO 文档中提取的一个片断:

<fo:simple-page-master master-name="A4"page-width="297mm" page-height="210mm"margin-top="1cm" margin-bottom="1cm"margin-left="1cm" margin-right="1cm"><fo:region-body margin="3cm"/><fo:region-before extent="2cm"/><fo:region-after extent="2cm"/><fo:region-start extent="2cm"/><fo:region-end extent="2cm"/></fo:simple-page-master>

上面的代码定义了一个名称为 "A4" 的 "Simple Page Master Template"。

页面的宽度是 297 毫米,高度是 210 毫米。

页面的四个边距(上边距、下边距、左边距、右边距)均为 1 厘米。

主体的边距是 3 厘米(四个边都是)。

主体的 before、after、start 以及 end 区均为 2 厘米。

上面的实例中的主体的宽度可通过页面宽度减去左右边距以及 region-body 的边距来计算得出:

297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm

请注意,region(region-start 和 region-end)没有被计算进来。正如之前讲解过的,这些区(region)是主体的组成部分。


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO region-before 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:region-before> 对象定义了页面的顶部区域(页眉)。

XSL-FO 使用下列元素来定义页面的区域:

  • <fo:region-body> 定义了主体区域
  • <fo:region-before> 定义了顶部区域(页眉)
  • <fo:region-after> 定义了底部区域(页脚)
  • <fo:region-start> 定义了左部区域(左侧栏)
  • <fo:region-end> 定义了右部区域(右侧栏)

注意:region-before、region-after、region-start 以及 region-end 都是 region-body 的一部分。为了避免 region-body 内的文本覆盖其它区域的文本, region-body 的边距至少必须与上述四个子区域的尺寸相同。

注意:根据 XSL-FO 1.0 版本的推荐标准,padding 和 border-width 属性必须为 0。


语法

<fo:region-before><!--Contents:EMPTY--></fo:region-before> 

属性

属性 [A-B] 属性 [C-Z]
background-attachment clip
background-color display-align
background-image extent
background-repeat overflow
background-position-horizontal padding-after
background-position-vertical padding-before
border-after-color padding-bottom
border-after-style padding-end
border-after-width padding-left
border-before-color padding-right
border-before-style padding-start
border-before-width padding-top
border-bottom-color precedence
border-bottom-style region-name
border-bottom-width reference-orientation
border-end-color writing-mode
border-end-style  
border-end-width  
border-left-color  
border-left-style  
border-left-width  
border-right-color  
border-right-style  
border-right-width  
border-start-color  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  

实例 1

XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。每个模板必须拥有一个唯一的名称:

<fo:simple-page-master master-name="intro"><fo:region-body margin="5in" /></fo:simple-page-master><fo:simple-page-master master-name="left"><fo:region-body margin-left="2in" margin-right="3in" /></fo:simple-page-master><fo:simple-page-master master-name="right"><fo:region-body margin-left="3in" margin-right="2in" /></fo:simple-page-master> 

在上面的实例中,三个 <fo:simple-page-master> 元素,定义了三个不同的模板。每个模板(page-master)都有不同的名称。

第一个模板名为 "intro"。它可作为介绍页面的模板使用。

第二个和第三个模板名为 "left" 和 "right"。它们可作为偶数和奇数页码的页面模板使用。

实例 2

这是从某个 XSL-FO 文档中提取的一个片断:

<fo:simple-page-master master-name="A4"page-width="297mm" page-height="210mm"margin-top="1cm" margin-bottom="1cm"margin-left="1cm" margin-right="1cm"><fo:region-body margin="3cm"/><fo:region-before extent="2cm"/><fo:region-after extent="2cm"/><fo:region-start extent="2cm"/><fo:region-end extent="2cm"/></fo:simple-page-master> 

上面的代码定义了一个名称为 "A4" 的 "Simple Page Master Template"。

页面的宽度是 297 毫米,高度是 210 毫米。

页面的四个边距(上边距、下边距、左边距、右边距)均为 1 厘米。

主体的边距是 3 厘米(四个边都是)。

主体的 before、after、start 以及 end 区均为 2 厘米。

上面的实例中的主体的宽度可通过页面宽度减去左右边距以及 region-body 的边距来计算得出:

297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm

请注意,region(region-start 和 region-end)没有被计算进来。正如之前讲解过的,这些区(region)是主体的组成部分。


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO region-body 对象

XSL-FO 参考手册 XSL-FO 参考手册

使用 XSL-FO 的时候,一个页面的主体区域是通过 region-body 对象定义的。


定义和用法

<fo:region-body> 对象定义了页面的主体区域。

XSL-FO 使用下列元素来定义页面的区域:

  • <fo:region-body> 定义了主体区域
  • <fo:region-before> 定义了顶部区域(页眉)
  • <fo:region-after> 定义了底部区域(页脚)
  • <fo:region-start> 定义了左部区域(左侧栏)
  • <fo:region-end> 定义了右部区域(右侧栏)

注意:region-before、region-after、region-start 以及 region-end 都是 region-body 的一部分。为了避免 region-body 内的文本覆盖其它区域的文本, region-body 的边距至少必须与上述四个子区域的尺寸相同。

提示:为了在 region-body 区提供多个列, 需要把 column-count 属性设置为大于 1!/p>

注意:如果 overflow 属性的值为 "scroll",则您不能把 column-count 属性设置为大于 1!

注意:根据 XSL-FO 1.0 版本的推荐标准,padding 和 border-width 属性必须为 0。


语法

<fo:region-body><!--Contents:EMPTY--></fo:region-body> 

属性

属性 [A-B] 属性 [C-Z]
background-attachment clip
background-color column-count
background-image column-gap
background-repeat display-align
background-position-horizontal end-indent
background-position-vertical margin-bottom
border-after-color margin-left
border-after-style margin-right
border-after-width margin-top
border-before-color overflow
border-before-style padding-after
border-before-width padding-before
border-bottom-color padding-bottom
border-bottom-style padding-end
border-bottom-width padding-left
border-end-color padding-right
border-end-style padding-start
border-end-width padding-top
border-left-color region-name
border-left-style reference-orientation
border-left-width space-after
border-right-color space-before
border-right-style writing-mode
border-right-width  
border-start-color  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  

实例 1

XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。每个模板必须拥有一个唯一的名称:

<fo:simple-page-master master-name="intro"><fo:region-body margin="5in" /></fo:simple-page-master><fo:simple-page-master master-name="left"><fo:region-body margin-left="2in" margin-right="3in" /></fo:simple-page-master><fo:simple-page-master master-name="right"><fo:region-body margin-left="3in" margin-right="2in" /></fo:simple-page-master> 

在上面的实例中,三个 <fo:simple-page-master> 元素,定义了三个不同的模板。每个模板(page-master)都有不同的名称。

第一个模板名为 "intro"。它可作为介绍页面的模板使用。

第二个和第三个模板名为 "left" 和 "right"。它们可作为偶数和奇数页码的页面模板使用。

实例 2

这是从某个 XSL-FO 文档中提取的一个片断:

<fo:simple-page-master master-name="A4"page-width="297mm" page-height="210mm"margin-top="1cm" margin-bottom="1cm"margin-left="1cm" margin-right="1cm"><fo:region-body margin="3cm"/><fo:region-before extent="2cm"/><fo:region-after extent="2cm"/><fo:region-start extent="2cm"/><fo:region-end extent="2cm"/></fo:simple-page-master>

上面的代码定义了一个名称为 "A4" 的 "Simple Page Master Template"。

页面的宽度是 297 毫米,高度是 210 毫米。

页面的四个边距(上边距、下边距、左边距、右边距)均为 1 厘米。

主体的边距是 3 厘米(四个边都是)。

主体的 before、after、start 以及 end 区均为 2 厘米。

上面的实例中的主体的宽度可通过页面宽度减去左右边距以及 region-body 的边距来计算得出:

297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm

请注意,region(region-start 和 region-end)没有被计算进来。正如之前讲解过的,这些区(region)是主体的组成部分。


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO region-end 对象

XSL-FO 参考手册 XSL-FO 参考手册

在一个页面的区域组成中,页面的右部由 region-end 对象定义。


定义和用法

<fo:region-end> 对象定义了页面的右部区域(右侧栏)。

XSL-FO 使用下列元素来定义页面的区域:

  • <fo:region-body> 定义了主体区域
  • <fo:region-before> 定义了顶部区域(页眉)
  • <fo:region-after> 定义了底部区域(页脚)
  • <fo:region-start> 定义了左部区域(左侧栏)
  • <fo:region-end> 定义了右部区域(右侧栏)

注意:region-before、region-after、region-start 以及 region-end 都是 region-body 的一部分。为了避免 region-body 内的文本覆盖其它区域的文本, region-body 的边距至少必须与上述四个子区域的尺寸相同。

注意:根据 XSL-FO 1.0 版本的推荐标准,padding 和 border-width 属性必须为 0。


语法

<fo:region-end><!--Contents:EMPTY--></fo:region-end>

属性

属性 [A-B] 属性 [C-Z]
background-attachment clip
background-color display-align
background-image extent
background-repeat overflow
background-position-horizontal padding-after
background-position-vertical padding-before
border-after-color padding-bottom
border-after-style padding-end
border-after-width padding-left
border-before-color padding-right
border-before-style padding-start
border-before-width padding-top
border-bottom-color region-name
border-bottom-style reference-orientation
border-bottom-width writing-mode
border-end-color  
border-end-style  
border-end-width  
border-left-color  
border-left-style  
border-left-width  
border-right-color  
border-right-style  
border-right-width  
border-start-color  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  

实例 1

XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。每个模板必须拥有一个唯一的名称:

<fo:simple-page-master master-name="intro"><fo:region-body margin="5in" /></fo:simple-page-master><fo:simple-page-master master-name="left"><fo:region-body margin-left="2in" margin-right="3in" /></fo:simple-page-master><fo:simple-page-master master-name="right"><fo:region-body margin-left="3in" margin-right="2in" /></fo:simple-page-master>

在上面的实例中,三个 <fo:simple-page-master> 元素,定义了三个不同的模板。每个模板(page-master)都有不同的名称。

第一个模板名为 "intro"。它可作为介绍页面的模板使用。

第二个和第三个模板名为 "left" 和 "right"。它们可作为偶数和奇数页码的页面模板使用。

实例 2

这是从某个 XSL-FO 文档中提取的一个片断:

<fo:simple-page-master master-name="A4"page-width="297mm" page-height="210mm"margin-top="1cm" margin-bottom="1cm"margin-left="1cm" margin-right="1cm"><fo:region-body margin="3cm"/><fo:region-before extent="2cm"/><fo:region-after extent="2cm"/><fo:region-start extent="2cm"/><fo:region-end extent="2cm"/></fo:simple-page-master>

上面的代码定义了一个名称为 "A4" 的 "Simple Page Master Template"。

页面的宽度是 297 毫米,高度是 210 毫米。

页面的四个边距(上边距、下边距、左边距、右边距)均为 1 厘米。

主体的边距是 3 厘米(四个边都是)。

主体的 before、after、start 以及 end 区均为 2 厘米。

上面的实例中的主体的宽度可通过页面宽度减去左右边距以及 region-body 的边距来计算得出:

297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm

请注意,region(region-start 和 region-end)没有被计算进来。正如之前讲解过的,这些区(region)是主体的组成部分。


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO region-start 对象

XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO 中,页面的左侧栏由 region-start 对象定义。


定义和用法

<fo:region-start> 对象定义了页面的左部区域(左侧栏)。

XSL-FO 使用下列元素来定义页面的区域:

  • <fo:region-body> 定义了主体区域
  • <fo:region-before> 定义了顶部区域(页眉)
  • <fo:region-after> 定义了底部区域(页脚)
  • <fo:region-start> 定义了左部区域(左侧栏)
  • <fo:region-end> 定义了右部区域(右侧栏)

注意:region-before、region-after、region-start 以及 region-end 都是 region-body 的一部分。为了避免 region-body 内的文本覆盖其它区域的文本, region-body 的边距至少必须与上述四个子区域的尺寸相同。

注意:根据 XSL-FO 1.0 版本的推荐标准,padding 和 border-width 属性必须为 0。


语法

<fo:region-start><!--Contents:EMPTY--></fo:region-start>

属性

属性 [A-B] 属性 [C-Z]
background-attachment clip
background-color display-align
background-image extent
background-repeat overflow
background-position-horizontal padding-after
background-position-vertical padding-before
border-after-color padding-bottom
border-after-style padding-end
border-after-width padding-left
border-before-color padding-right
border-before-style padding-start
border-before-width padding-top
border-bottom-color region-name
border-bottom-style reference-orientation
border-bottom-width writing-mode
border-end-color  
border-end-style  
border-end-width  
border-left-color  
border-left-style  
border-left-width  
border-right-color  
border-right-style  
border-right-width  
border-start-color  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  

实例 1

XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。每个模板必须拥有一个唯一的名称:

<fo:simple-page-master master-name="intro"><fo:region-body margin="5in" /></fo:simple-page-master><fo:simple-page-master master-name="left"><fo:region-body margin-left="2in" margin-right="3in" /></fo:simple-page-master><fo:simple-page-master master-name="right"><fo:region-body margin-left="3in" margin-right="2in" /></fo:simple-page-master> 

在上面的实例中,三个 <fo:simple-page-master> 元素,定义了三个不同的模板。每个模板(page-master)都有不同的名称。

第一个模板名为 "intro"。它可作为介绍页面的模板使用。

第二个和第三个模板名为 "left" 和 "right"。它们可作为偶数和奇数页码的页面模板使用。

实例 2

这是从某个 XSL-FO 文档中提取的一个片断:

<fo:simple-page-master master-name="A4"page-width="297mm" page-height="210mm"margin-top="1cm" margin-bottom="1cm"margin-left="1cm" margin-right="1cm"><fo:region-body margin="3cm"/><fo:region-before extent="2cm"/><fo:region-after extent="2cm"/><fo:region-start extent="2cm"/><fo:region-end extent="2cm"/></fo:simple-page-master>

上面的代码定义了一个名称为 "A4" 的 "Simple Page Master Template"。

页面的宽度是 297 毫米,高度是 210 毫米。

页面的四个边距(上边距、下边距、左边距、右边距)均为 1 厘米。

主体的边距是 3 厘米(四个边都是)。

主体的 before、after、start 以及 end 区均为 2 厘米。

上面的实例中的主体的宽度可通过页面宽度减去左右边距以及 region-body 的边距来计算得出:

297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm

请注意,region(region-start 和 region-end)没有被计算进来。正如之前讲解过的,这些区(region)是主体的组成部分。


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO repeatable-page-master-alternatives 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:repeatable-page-master-alternatives> 对象规定一组 simple-page-master 的副本。

该对象的子类是 fo:conditional-page-master-references(称之为"方案")。

具体使用哪个方案取决于对条件的评估(该条件允许对第一个页面、奇/偶页面以及空白页面使用不同的 page-masters)。

条件将按照顺序进行测试,最后的方案将引用到用于不包含指定布局的所有页面的 page-master。


语法

<fo:repeatable-page-master-alternatives><!--Contents:(conditional-page-master-reference+)--></fo:repeatable-page-master-alternatives>

属性

属性
maximum-repeats


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO repeatable-page-master-reference 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:repeatable-page-master-reference> 对象规定单个 simple-page-master 的副本。


语法

<fo:repeatable-page-master-reference><!--Contents:EMPTY--></fo:repeatable-page-master-reference>

属性

属性
master-reference
maximum-repeats


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO retrieve-marker 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:retrieve-marker> 对象与 <fo:marker> 一起使用来创建运行的页眉或页脚(举例:让页眉展示页面的章节以及区域标题)。

注意:<fo:retrieve-marker> 对象仅被允许用作 <fo:static-content> 对象的子类。


语法

<fo:retrieve-marker><!--Contents:EMPTY--></fo:retrieve-marker> 

属性

属性
retrieve-boundary
retrieve-class-name
retrieve-position


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO root 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:root> 对象是 XSL-FO 文档的根(顶级)节点。

<fo:root> 对象的子类是一个单独的 <fo:layout-master-set> 对象(该对象保留了在文档中使用的所有页面主 [master]),一个可选的 <fo:declarations> 对象,以及是一个或多个 <fo:page-sequence> 对象。

注意:一个 XSL-FO 文档可以包含多个 <fo:page-sequences> 对象(举例:文档的每个章节都可以作为一个独立的 <fo:page-sequence> 对象 - 它允许使用chapter-specific [具体的章节]内容,如:章节的标题,它可以被放置在页眉或页脚内)。


语法

<fo:root><!--Children:layout-master-set,declarations?,page-sequence+--></fo:root>

属性

属性
media-usage

实例 1

XSL-FO 文档结构如下所示:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"><!-- Page template goes here --></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><!-- Page content goes here --></fo:page-sequence></fo:root>


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO simple-page-master 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:simple-page-master> 对象定义了一个页面的尺寸和形状。对于每个页面布局来说,都包含一个指定的 simple-page-master。

一个页面最多可以包含五个区域:region-body、region-before、region-after、region-start、region-end。

<fo:simple-page-master> 对象将从 <fo:page-sequence-master> 对象或<fo:page-sequence> 对象中引用。


语法

<fo:simple-page-master><!--Contents:(region-body,region-before?,region-after?,region-start?,region-end?)--></fo:simple-page-master>

属性

属性
end-indent
margin-bottom
margin-left
margin-right
margin-top
master-name
page-height
page-width
reference-orientation
space-after
space-before
start-indent
writing-mode

实例 1

XSL-FO 文档结构如下所示:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"><!-- Page template goes here --></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><!-- Page content goes here --></fo:page-sequence></fo:root> 

实例 2

一个"真实的" XSL-FO 实例:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><fo:flow flow-name="xsl-region-body"><fo:block>Hello W3CSchool</fo:block></fo:flow></fo:page-sequence></fo:root>

上面代码的输出如下所示:

Hello W3CSchool



XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO single-page-master-reference 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:single-page-master-reference> 对象为用在页面序列的给定点中的具体的 page-master 保留一个参数。

注意:<fo:page-sequence-master> 对象是 <fo:single-page-master-reference> 对象的父类。


语法

<fo:single-page-master-reference><!--Contents:EMPTY--></fo:single-page-master-reference> 

属性

属性
master-reference


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO static-content 对象

XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO static-content 对象用于存放静态内容。


定义和用法

<fo:static-content> 对象包含了静态内容(如:页眉和页脚),该静态内容将在多个页面中重复调用。

<fo:static-content> 对象有一个 "flow-name" 属性,该属性定义了 <fo:static-content> 对象的内容走向。


语法

<fo:static-content><!--Contents:(block|block-container|table-and-caption|table|list-block)+--></fo:static-content>

属性

属性
flow-name


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:table> 对象用于格式化表格的表格式材料。

<fo:table> 对象包含了可选的 <fo:table-column> 对象、一个可选的 <fo:table-header> 对象、一个 <fo:table-body> 对象,以及一个可选的 <fo:table-footer> 对象。上述对象中的每个对象都包含一个或多个 <fo:table-row> 对象(该对象中同样包含一个或多个 <fo:table-cell> 对象)。


语法

<fo:table><!--Contents:(table-column*,table-header?,table-footer?,table-body+)--></fo:table>

属性

属性 [A-J] 属性 [K-Z]
azimuth keep-together
background-attachment keep-with-next
background-color keep-with-previous
background-image left
background-repeat margin-bottom
background-position-horizontal margin-left
background-position-vertical margin-right
block-progression-dimension margin-top
border-after-color padding-after
border-after-precedence padding-before
border-after-style padding-bottom
border-after-width padding-end
border-before-color padding-left
border-before-precedence padding-right
border-before-style padding-start
border-before-width padding-top
border-bottom-color pause-after
border-bottom-style pause-before
border-bottom-width pitch
border-collapse pitch-range
border-end-color play-during
border-end-precedence relative-position
border-end-style richness
border-end-width right
border-left-color role
border-left-style source-document
border-left-width space-after
border-right-color space-before
border-right-style speak
border-right-width speak-header
border-separation speak-numeral
border-start-color speak-punctuation
border-start-precedence speech-rate
border-start-style start-indent
border-start-width stress
border-top-color table-layout
border-top-style table-omit-footer-at-break
border-top-width table-omit-header-at-break
bottom top
break-after voice-family
break-before volume
cue-after width
cue-before writing-mode
elevation  
end-indent  
height  
id  
inline-progression-dimension  
intrusion-displace  

实例 1

一个简单的表格:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:table-and-caption> 

上面代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table-and-caption 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

下面列举了 9 个可以用来创建表格的 XSL-FO 对象:

  • fo:table-and-caption
  • fo:table
  • fo:table-caption
  • fo:table-column
  • fo:table-header
  • fo:table-footer
  • fo:table-body
  • fo:table-row
  • fo:table-cell

<fo:table-and-caption> 对象是一个包含所有表格对象的容器,它用于格式化表格及其标题。

<fo:table-and-caption> 对象包含了一个 <fo:table> 对象和一个可选的 <fo:caption> 对象。


语法

<fo:table-and-caption><!--Contents:(table-caption?,table)--></fo:table-and-caption> 

属性

属性 [A-J] 属性 [K-Z]
azimuth keep-together
background-attachment keep-with-next
background-color keep-with-previous
background-image left
background-repeat margin-bottom
background-position-horizontal margin-left
background-position-vertical margin-right
border-after-color margin-top
border-after-style padding-after
border-after-width padding-before
border-before-color padding-bottom
border-before-style padding-end
border-before-width padding-left
border-bottom-color padding-right
border-bottom-style padding-start
border-bottom-width padding-top
border-end-color pause-after
border-end-style pause-before
border-end-width pitch
border-left-color pitch-range
border-left-style play-during
border-left-width relative-position
border-right-color richness
border-right-style right
border-right-width role
border-start-color source-document
border-start-style space-after
border-start-width space-before
border-top-color speak
border-top-style speak-header
border-top-width speak-numeral
bottom speak-punctuation
break-after speech-rate
break-before start-indent
caption-side stress
cue-after text-align
cue-before top
elevation voice-family
end-indent volume
id  
intrusion-displace  

实例 1

一个简单的表格:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:table-and-caption> 

上面代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table-body 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:table-body> 对象是一个包含表格行和表格单元格的容器。


语法

<fo:table-body><!--Contents:(table-row+|table-cell+)--></fo:table-body> 

属性

注意:只有在表格的 border-collapse 值为 "collapse" 或 "collapse-with-precedence" 时,才允许使用 border 属性。

属性 [A-B] 属性 [C-Z]
azimuth cue-after
background-attachment cue-before
background-color elevation
background-image id
background-repeat left
background-position-horizontal pause-after
background-position-vertical pause-before
border-after-color pitch
border-after-precedence pitch-range
border-after-style play-during
border-after-width relative-position
border-before-color richness
border-before-precedence role
border-before-style right
border-before-width source-document
border-bottom-color speak
border-bottom-style speak-header
border-bottom-width speak-numeral
border-collapse speak-punctuation
border-end-color speech-rate
border-end-precedence stress
border-end-style top
border-end-width visibility
border-left-color voice-family
border-left-style volume
border-left-width  
border-right-color  
border-right-style  
border-right-width  
border-separation  
border-start-color  
border-start-precedence  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  
bottom  

实例 1

一个简单的表格:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:table-and-caption>

上面代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table-caption 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:table-caption> 对象包含了使用 <fo:table-and-caption> 对象定义的表格标题。


语法

<fo:table-caption><!--Contents:(block|block-container|list-block)+--></fo:table-caption>

属性

属性 [A-J] 属性 [K-Z]
azimuth keep-together
background-attachment left
background-color padding-after
background-image padding-before
background-repeat padding-bottom
background-position-horizontal padding-end
background-position-vertical padding-left
block-progression-dimension padding-right
border-after-color padding-start
border-after-style padding-top
border-after-width pause-after
border-before-color pause-before
border-before-style pitch
border-before-width pitch-range
border-bottom-color play-during
border-bottom-style relative-position
border-bottom-width richness
border-end-color right
border-end-style role
border-end-width source-document
border-left-color speak
border-left-style speak-header
border-left-width speak-numeral
border-right-color speak-punctuation
border-right-style speech-rate
border-right-width stress
border-start-color top
border-start-style voice-family
border-start-width volume
border-top-color width
border-top-style  
border-top-width  
bottom  
cue-after  
cue-before  
elevation  
height  
id  
inline-progression-dimension  
intrusion-displace  

实例 1

一个简单的表格:

<fo:table-and-caption><fo:table-caption><fo:block>Caption for this table</fo:block></fo:table-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:table-and-caption>

上面代码的输出如下所示:

表格的标题

Car Price
Volvo $50000
SAAB $48000


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table-cell 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:table-cell> 对象是一个包含表格单元格内容的容器。


语法

<fo:table-cell><!--Contents:(block|block-container|table-and-caption|table|list-block)+--></fo:table-cell> 

属性

属性 [A-C] 属性 [D-Z]
azimuth display-align
background-attachment elevation
background-color empty-cells
background-image ends-row
background-repeat height
background-position-horizontal id
background-position-vertical inline-progression-dimension
block-progression-dimension left
border-after-color number-columns-spanned
border-after-precedence number-rows-spanned
border-after-style padding-after
border-after-width padding-before
border-before-color padding-bottom
border-before-precedence padding-end
border-before-style padding-left
border-before-width padding-right
border-bottom-color padding-start
border-bottom-style padding-top
border-bottom-width pause-after
border-end-color pause-before
border-end-precedence pitch
border-end-style pitch-range
border-end-width play-during
border-left-color relative align
border-left-style relative-position
border-left-width richness
border-right-color right
border-right-style role
border-right-width source-document
border-start-color speak
border-start-precedence speak-header
border-start-style speak-numeral
border-start-width speak-punctuation
border-top-color speech-rate
border-top-style starts-row
border-top-width stress
bottom top
column-number voice-family
cue-after volume
cue-before width

实例 1

一个简单的表格:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:table-and-caption> 

上面代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table-column 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:table-column> 对象用于规定位于同一列的表格单元格特征属性。

该对象中最重要的属性是 "column-width"。


语法

<fo:table-column><!--Contents:EMPTY--></fo:table-column>

属性

注意:只有在表格的 border-collapse 值为 "collapse" 或 "collapse-with-precedence" 时,才允许使用 border 属性。

属性
background-attachment
background-color
background-image
background-repeat
background-position-horizontal
background-position-vertical
border-after-color
border-after-precedence
border-after-style
border-after-width
border-before-color
border-before-precedence
border-before-style
border-before-width
border-bottom-color
border-bottom-style
border-bottom-width
border-collapse
border-end-color
border-end-precedence
border-end-style
border-end-width
border-left-color
border-left-style
border-left-width
border-right-color
border-right-style
border-right-width
border-separation
border-start-color
border-start-precedence
border-start-style
border-start-width
border-top-color
border-top-style
border-top-width
column-number
column-width
number-columns-repeated
number-columns-spanned
visibility

实例 1

一个简单的表格:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:table-and-caption>

上面代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table-footer 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:table-footer> 对象包含了表格页脚的内容。


语法

<fo:table-footer><!--Contents:(table-row+|table-cell+)--></fo:table-footer>

属性

注意:只有在表格的 border-collapse 值为 "collapse" 或 "collapse-with-precedence" 时,才允许使用 border 属性。

属性 [A-B] 属性 [C-Z]
azimuth cue-after
background-attachment cue-before
background-color elevation
background-image id
background-repeat left
background-position-horizontal pause-after
background-position-vertical pause-before
border-after-color pitch
border-after-precedence pitch-range
border-after-style play-during
border-after-width relative-position
border-before-color richness
border-before-precedence right
border-before-style role
border-before-width source-document
border-bottom-color speak
border-bottom-style speak-header
border-bottom-width speak-numeral
border-collapse speak-punctuation
border-end-color speech-rate
border-end-precedence stress
border-end-style top
border-end-width visibility
border-left-color voice-family
border-left-style volume
border-left-width  
border-right-color  
border-right-style  
border-right-width  
border-separation  
border-start-color  
border-start-precedence  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  
bottom  

实例 1

一个简单的表格:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body><fo:table-footer><fo:table-cell><fo:block font-weight="bold">Some text</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Some text</fo:block></fo:table-cell></fo:table-footer></fo:table></fo:table-and-caption>

上面代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000
Some text Some text


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table-header 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:table-header> 对象包含了表格页眉的内容。


语法

<fo:table-header><!--Contents:(table-row+|table-cell+)--></fo:table-header> 

属性

注意:只有在表格的 border-collapse 值为 "collapse" 或 "collapse-with-precedence" 时,才允许使用 border 属性。

属性 [A-B] 属性 [C-Z]
azimuth cue-after
background-attachment cue-before
background-color elevation
background-image id
background-repeat left
background-position-horizontal pause-after
background-position-vertical pause-before
border-after-color pitch
border-after-precedence pitch-range
border-after-style play-during
border-after-width relative-position
border-before-color richness
border-before-precedence right
border-before-style role
border-before-width source-document
border-bottom-color speak
border-bottom-style speak-header
border-bottom-width speak-numeral
border-collapse speak-punctuation
border-end-color speech-rate
border-end-precedence stress
border-end-style top
border-end-width visibility
border-left-color voice-family
border-left-style volume
border-left-width  
border-right-color  
border-right-style  
border-right-width  
border-separation  
border-start-color  
border-start-precedence  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  
bottom  

实例 1

一个简单的表格:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body><fo:table-footer><fo:table-cell><fo:block font-weight="bold">Some text</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Some text</fo:block></fo:table-cell></fo:table-footer></fo:table></fo:table-and-caption>

上面代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000
Some text Some text


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table-row 对象

XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO 中表格的行通过 table-row 对象定义。


定义和用法

<fo:table-row> 对象定义表格行。


语法

<fo:table-row><!--Contents:(table-cell+)--></fo:table-row> 

属性

注意:只有在表格的 border-collapse 值为 "collapse" 或 "collapse-with-precedence" 时,才允许使用 border 属性。

属性 [A-B] 属性 [C-Z]
azimuth cue-after
background-attachment cue-before
background-color elevation
background-image height
background-repeat id
background-position-horizontal keep-together
background-position-vertical keep-with-next
block-progression-dimension keep-with-previous
border-after-color left
border-after-precedence pause-after
border-after-style pause-before
border-after-width pitch
border-before-color pitch-range
border-before-precedence play-during
border-before-style relative-position
border-before-width richness
border-bottom-color right
border-bottom-style role
border-bottom-width source-document
border-collapse speak
border-end-color speak-header
border-end-precedence speak-numeral
border-end-style speak-punctuation
border-end-width speech-rate
border-left-color stress
border-left-style top
border-left-width visibility
border-right-color voice-family
border-right-style volume
border-right-width  
border-separation  
border-start-color  
border-start-precedence  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  
bottom  
break-after  
break-before  

实例

一个简单的表格:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:table-and-caption>

上面代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO title 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:title> 对象为一个 page-sequence 定义一个标题。该标题是用于标识页面的。举个例子来说,标题内容可以在 "title" 窗口中或在"tool tip[工具栏]" 中显示。


语法

<fo:title><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|inline-container|leader|page-number|page-number-citation|basic-link|multi-toggle)*--></fo:title>

属性

属性 [A-K] 属性 [L-Z]
azimuth line-height
background-attachment margin-bottom
background-color margin-left
background-image margin-right
background-repeat margin-top
background-position-horizontal padding-after
background-position-vertical padding-before
border-after-color padding-bottom
border-after-style padding-end
border-after-width padding-left
border-before-color padding-right
border-before-style padding-start
border-before-width padding-top
border-bottom-color pause-after
border-bottom-style pause-before
border-bottom-width pitch
border-end-color pitch-range
border-end-style play-during
border-end-width richness
border-left-color role
border-left-style source-document
border-left-width space-end
border-right-color space-start
border-right-style speak
border-right-width speak-header
border-start-color speak-numeral
border-start-style speak-punctuation
border-start-width speech-rate
border-top-color stress
border-top-style visibility
border-top-width voice-family
color volume
cue-after  
cue-before  
elevation  
font-family  
font-selection-strategy  
font-size  
font-size-adjust  
font-stretch  
font-style  
font-variant  
font-weight  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO wrapper 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:wrapper> 对象为一组 XSL-FO 对象规定 inherited[继承] 属性。

<fo:wrapper> 仅能包含子类对象(该子类对象必须是其父类对象中所允许使用的子类对象)。


语法

<fo:wrapper><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|inline-container|leader|page-number|page-number-citation|basic-link|multi-toggle|block|block-container|table-and-caption|table|list-block)*--></fo:wrapper>

属性

属性
id


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO azimuth 属性

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

azimuth属性仅能用于Aural StylesheetsAural Stylesheets(音频样式表)

对文档的音频描述包含自然声音和人为发出的声音,它贯穿于整个文本的内容。音频通常通过将文档转化为无格式文本,并将它输入一个屏幕浏览器中产生。

需要制作音频信息的原因如下:

  • 帮助盲人理解
  • 开车时
  • 帮助用户阅读

方位和高度是音频的重要属性。这些属性用于保存部分声音片断。在现实生活中,所有人不可能位于一个房间内的同一个点。

azimuth属性用于指定了声音发出的方向。


详情

  • 继承性:允许
  • 百分比:N/A
  • 媒体类型:音频

属性值

说明
angle

指定一个从-360度到360度的方位值。

  • 0度指明位于中央前部
  • 90度指明向右
  • 180度指明中央后部
  • 270度指明向左
left-side 270度或在270度之后
far-left 300度或在240度之后
left 320度或在220度之后
center-left 340度或在200度之后
center 默认值。0度或在180度之后
center-right 20度或在160度之后
right 40度或在140度之后
far-right 60度或在120度之后
right-side 90度或在90度之后
leftwards 左音箱发声
rightwards 右音箱发声


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO background-attachment 属性

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

background-attachment属性的作用是:定义背景图像是固定的还是随滚动条滚动而滚动的。


详情

  • 继承性:不可
  • 百分比:N/A
  • 媒体类型:可视化

属性值

说明
scroll 默认值。指定背景图像是随滚动条滚动而滚动的
fixed 指定背景图像是固定的


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO keep-with-previous 属性

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

keep-with-previous属性在XSL-FO对象中创建keep-with-previous 条件。


详情

  • 继承性:允许
  • 百分比:N/A
  • 媒体类型:视频

属性值

说明
auto 默认值。不创建keep-with-previous 条件
always 创建keep-with-previous 条件为:"always"强度
integer 创建keep-with-previous 条件为:"一个给定的整数"强度


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO keep-with-next 属性

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

keep-with-next属性在XSL-FO对象中创建keep-with-next 条件。


详情

  • 继承性:允许
  • 百分比:N/A
  • 媒体类型:视频

属性值

说明
auto 默认值。不创建keep-with-next 条件
always 创建keep-with-next 条件为:"always"强度
integer 创建keep-with-next 条件为:"一个给定的整数"强度


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO keep-together 属性

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

keep-together 属性用于在XSL-FO对象中创建keep-together条件。


详情

  • 继承性:允许
  • 百分比:N/A
  • 媒体类型:视频

属性值

说明
auto 默认值。不创建keep-together 条件
always 创建keep-together 条件为:"always"强度
integer 创建keep-together 条件为:"一个给定的整数"强度


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO basic-link 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节介绍的是 XSL-FO 中的 basic-link 对象,你将了解该对象的定义、语法以及属性。


定义和用法

<fo:basic-link> 对象代表一个链接的起始资源。


语法

<fo:basic-link><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|page-number|page-number-citation|basic-link|multi-toggle|block|block-container|table-and-caption|table|list-block)*--></fo:basic-link> 

属性

属性 [A-I] 属性 [J-Z]
azimuth keep-together
alignment-adjust keep-with-next
alignment-baseline keep-with-previous
background-attachment left
background-color line-height
background-image margin-bottom
background-repeat margin-left
background-position-horizontal margin-right
background-position-vertical margin-top
baseline-shift padding-after
border-after-color padding-before
border-after-style padding-bottom
border-after-width padding-end
border-before-color padding-left
border-before-style padding-right
border-before-width padding-start
border-bottom-color padding-top
border-bottom-style pause-after
border-bottom-width pause-before
border-end-color pitch
border-end-style pitch-range
border-end-width play-during
border-left-color relative-position
border-left-style richness
border-left-width right
border-right-color role
border-right-style show-destination
border-right-width source-document
border-start-color space-end
border-start-style space-start
border-start-width speak
border-top-color speak-header
border-top-style speak-numeral
border-top-width speak-punctuation
bottom speech-rate
cue-after stress
cue-before target-presentation-context
destination-placement-offset target-processing-context
dominant-baseline target-stylesheet
elevation top
external-destination voice-family
id volume
indicate-destination  
internal-destination  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO bidi-override 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节介绍的是 XSL-FO 中的 bidi-override 对象,你将了解该对象的定义、语法以及属性。


定义和用法

<fo:bidi-override> 对象用于为混合语言文档中的不同脚本重写默认 Unicode BIDI 的方向。

该对象会强制在一个特定的方向写入字符串。


语法

<fo:bidi-override><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|inline-container|leader|page-number|page-number-citation|basic-link|multi-toggle|block|block-container|table-and-caption|table|list-block)*--></fo:bidi-override>

属性

属性 [A-P] 属性 [Q-Z]
azimuth relative-position
bottom richness
color right
cue-after score-spaces
cue-before speak
direction speak-header
elevation speak-numeral
font-family speak-punctuation
font-selection-strategy speech-rate
font-size stress
font-size-adjust top
font-stretch unicode-bidi
font-style voice-family
font-variant volume
font-weight word-spacing
id  
left  
letter-spacing  
line-height  
pause-after  
pause-before  
pitch  
pitch-range  
play-during  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO block 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节介绍的是 XSL-FO 中的 block 对象,你将了解该对象的定义、语法以及属性。


定义和用法

<fo:block> 对象定义一个输出块。块是矩形框中的输出序列。

<fo:block> 对象用于格式化段落、标题、大字标题,等等。


语法

<fo:block><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|inline-container|leader|page-number|page-number-citation|basic-link|multi-toggle|block|block-container|table-and-caption|table|list-block)*--></fo:block>

属性

属性 [A-J] 属性 [K-Z]
azimuth keep-together
background-attachment keep-with-next
background-color keep-with-previous
background-image language
background-repeat last-line-end-indent
background-position-horizontal left
background-position-vertical linefeed-treatment
border-after-color line-height
border-after-style line-height-shift-adjustment
border-after-width line-stacking-strategy
border-before-color margin-bottom
border-before-style margin-left
border-before-width margin-right
border-bottom-color margin-top
border-bottom-style orphans
border-bottom-width padding-after
border-end-color padding-before
border-end-style padding-bottom
border-end-width padding-end
border-left-color padding-left
border-left-style padding-right
border-left-width padding-start
border-right-color padding-top
border-right-style pause-after
border-right-width pause-before
border-start-color pitch
border-start-style pitch-range
border-start-width play-during
border-top-color relative-position
border-top-style richness
border-top-width right
bottom role
break-after script
break-before source-document
color space-after
country space-before
cue-after span
cue-before speak
elevation speak-header
end-indent speak-numeral
font-family speak-punctuation
font-selection-strategy speech-rate
font-size start-indent
font-size-adjust stress
font-stretch text-align
font-style text-align-last
font-variant text-altitude
font-weight text-depth
hyphenate text-indent
hyphenation-character top
hyphenation-keep visibility
hyphenation-ladder-count voice-family
hyphenation-push-character-count volume
hyphenation-remain-character-count white-space-collapse
id white-space-treatment
intrusion-displace widows
  wrap-option

实例 1

块是矩形框中的输出序列:

<fo:blockborder-width="1mm">This block of output will have a one millimeter border around it.</fo:block>

实例 2

块是可独立样式化的输出序列:

<fo:blockfont-size="12pt"font-family="sans-serif">This block of output will be written in a 12pt sans-serif font.</fo:block>

实例 3

<fo:blockfont-size="14pt" font-family="verdana" color="red"space-before="5mm" space-after="5mm">W3CSchool</fo:block><fo:blocktext-indent="5mm"font-family="verdana" font-size="12pt"space-before="5mm" space-after="5mm">At W3CSchool you will find all the Web-building tutorials youneed, from basic HTML and XHTML to advanced XML, XSL, Multimediaand WAP.</fo:block>

结果:


W3CSchool

At W3CSchool you will find all the Web-building tutorials you need, from basic HTML and XHTML to advanced XML, XSL, Multimedia and WAP.



XSL-FO 参考手册 XSL-FO 参考手册

相关阅读

XSL-FO 块

XSL-FO block-container 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节介绍的是 XSL-FO 中的 block-container 对象,你将了解该对象的定义、语法以及属性。


定义和用法

<fo:block-container> 对象用于创建一个块级的引用区域(reference-area) - 这往往包含不同的写入模式或要旋转内容的不同的引用方向。


语法

<fo:block-container><!--Contents:(block|block-container|table-and-caption|table|list-block)+--></fo:block-container>

属性

属性 [A-C] 属性 [D-Z]
absolute-position display-align
background-attachment end-indent
background-color height
background-image id
background-repeat inline-progression-dimension
background-position-horizontal intrusion-displace
background-position-vertical keep-together
border-after-color keep-with-next
border-after-style keep-with-previous
border-after-width left
border-before-color margin-bottom
border-before-style margin-left
border-before-width margin-right
border-bottom-color margin-top
border-bottom-style overflow
border-bottom-width padding-after
border-end-color padding-before
border-end-style padding-bottom
border-end-width padding-end
border-left-color padding-left
border-left-style padding-right
border-left-width padding-start
border-right-color padding-top
border-right-style reference-orientation
border-right-width right
border-start-color space-after
border-start-style space-before
border-start-width span
border-top-color start-indent
border-top-style top
border-top-width width
bottom writing-mode
break-after z-index
break-before  
clip  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO character 对象

XSL-FO 参考手册 XSL-FO 参考手册

在本节中,你将了解 character 对象的定义、语法以及它的属性。


定义和用法

<fo:character> 对象规定将被映射为供呈现的字形的字符。


语法

<fo:character><!--Contents:EMPTY--></fo:character>

属性

属性 [A-G] 属性 [H-Z]
alignment-adjust hyphenate
alignment-baseline hyphenation-character
azimuth hyphenation-push-character-count
background-attachment hyphenation-remain-character-count
background-color id
background-image keep-with-next
background-repeat keep-with-previous
background-position-horizontal language
background-position-vertical left
baseline-shift letter-spacing
border-after-color line-height
border-after-style margin-bottom
border-after-width margin-left
border-before-color margin-right
border-before-style margin-top
border-before-width padding-after
border-bottom-color padding-before
border-bottom-style padding-bottom
border-bottom-width padding-end
border-end-color padding-left
border-end-style padding-right
border-end-width padding-start
border-left-color padding-top
border-left-style pause-after
border-left-width pause-before
border-right-color pitch
border-right-style pitch-range
border-right-width play-during
border-start-color relative-position
border-start-style richness
border-start-width right
border-top-color score-spaces
border-top-style script
border-top-width space-end
bottom space-start
character speak
color speak-header
country speak-numeral
cue-after speak-punctuation
cue-before speech-rate
dominant-baseline stress
elevation suppress-at-line-break
font-family text-altitude
font-selection-strategy text-depth
font-size text-decoration
font-size-adjust text-shadow
font-stretch text-transform
font-style top
font-variant treat-as-word-space
font-weight visibility
glyph-orientation-horizontal voice-family
glyph-orientation-vertical volume
  word-spacing


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO color-profile 对象

XSL-FO 参考手册 XSL-FO 参考手册

在 XSL-FO 中 color-profile 对象的作用是什么?请参考本节内容。


定义和用法

<fo:color-profile> 对象定义样式表的一个颜色配置文件。

颜色配置文件是通过 "color-profile-name" 属性中的名称引用,并通过 "src" 属性中的 URI 标识。


语法

<fo:color-profile><!--Contents:EMPTY--></fo:color-profile> 

属性

属性
color-profile-name
rendering-intent
src


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO conditional-page-master-reference 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:conditional-page-master-reference> 对象对象规定一个当所定义的条件成立时使用的 page-maste。

这使得不同的页面可以使用不同的 page-masters。(比如,偶数和奇数页面、第一个页面、空白页。)

三个属性,odd-or-even、blank-or-not-blank、page-postion 规定条件。所有三个条件都成立时,<fo:conditional-page-master-reference> 成立。

  • 如果生成的页面有指定的位置(first, last, rest, any)时,page-position 成立。
  • 如果值为 "any" 或值的奇偶性与页码匹配时,odd-or-even 成立。
  • 如果值为 "not-blank" 且页面有由 <fo:flow> 的后代生成的区域时,或者如果值为 "blank" 且页面没有来自 <fo:flow> 的区域时,或者如果值为 "any" 时,blank-or-not-blank 成立。

语法

<fo:conditional-page-master-reference><!--Contents:EMPTY--></fo:conditional-page-master-reference> 

属性

属性
blank-or-not-blank
master-reference
odd-or-even
page-postion


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO declarations 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节介绍了 XSL-FO declarations 对象的定义与语法。


定义和用法

<fo:declarations> 对象用于组合样式表的全局声明。

<fo:declarations> 对象是一个对象的包装,其内容是用于格式化程序的一种资源。


语法

<fo:declarations><!--Contents:(color-profile)+--></fo:declarations> 

属性



XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO external-graphic 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:external-graphic> 对象用于图像数据位于 <fo:element> 树之外的某个图形。

<fo:external-graphic> 可能被放置在一个封闭的块级 <fo:block>。

"max-height" 或 "line-height" 的 "line-stacking-strategy" 通常被用于堆叠 <fo:external-graphic> 内容的一个或多个行。

提示:<fo:external-graphic> 元素在缺省情况下不会引起换行。如果您希望图形单独出现,请将 <fo:external-graphic> 放置在 <fo:block> 中。


语法

<fo:external-graphic><!--Contents:EMPTY--></fo:external-graphic> 

属性

属性 [A-J] 属性 [K-Z]
alignment-adjust keep-with-next
alignment-baseline keep-with-previous
azimuth language
background-attachment left
background-color line-height
background-image margin-bottom
background-repeat margin-left
background-position-horizontal margin-right
background-position-vertical margin-top
baseline-shift overflow
block-progression-dimension padding-after
border-after-color padding-before
border-after-style padding-bottom
border-after-width padding-end
border-before-color padding-left
border-before-style padding-right
border-before-width padding-start
border-bottom-color padding-top
border-bottom-style pause-after
border-bottom-width pause-before
border-end-color pitch
border-end-style pitch-range
border-end-width play-during
border-left-color relative-position
border-left-style richness
border-left-width right
border-right-color role
border-right-style scaling
border-right-width scaling-method
border-start-color script
border-start-style source-document
border-start-width space-end
border-top-color space-start
border-top-style speak
border-top-width speak-header
bottom speak-numeral
clip speak-punctuation
content-height speech-rate
content-type src
content-width stress
country text-align
cue-after text-indent
cue-before top
display-align voice-family
dominant-baseline volume
elevation width
height  
id  
inline-progression-dimension  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO float 对象

XSL-FO 参考手册 XSL-FO 参考手册

通过本节,你将了解 float 对象应该如何使用。


定义和用法

<fo:float> 对象通常用于在页面起始处的一个单独区域里定位图像,或者通过将内容沿图像的一侧流动来定位图像到一侧。

如果 <fo:float> 是一个没有被分配到 region-body 的流的后代,这是一个错误。

如果 <fo:float> 是一个生成绝对定位区域的 fo:block-container 的后代,这也是一个错误。

<fo:float> 不能把 <fo:float>、<fo:footnote> 或 <fo:marker> 作为后代。


语法

<fo:float><!--Contents:(block|block-container|table-and-caption|table|list-block)+--></fo:float> 

属性

属性
float
clear


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO flow 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节为你介绍 XSL-FO flow 对象的使用。


定义和用法

来自 <fo:flow> 对象的内容填充 XSL-FO 页面。

<fo:flow> 对象包含要打印到页面的所有元素。

当页面已满,将重复使用相同的母版页,直到所有的文本都打印完为止。

<fo:flow> 对象有一个 "flow-name" 属性,它定义内容会去的地方。


语法

<fo:flow><!--Contents:(block|block-container|table-and-caption|table|list-block)+--></fo:flow> 

属性

属性
flow-name

实例 1

一个"真实的" XSL-FO 实例:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><fo:flow flow-name="xsl-region-body"><fo:block>Hello W3CSchool</fo:block></fo:flow></fo:page-sequence></fo:root>

上面代码的输出如下所示:

Hello W3CSchool


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO footnote 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:footnote> 对象定义在页面的 region-body 内部的一个脚注。

如果 <fo:footnote> 是一个没有被分配到 region-body 的流的后代,这是一个错误。

如果 <fo:footnote> 是一个生成绝对定位区域的 fo:block-container 的后代,这也是一个错误。

<fo:footnote> 对象不能把 <fo:float>、<fo:footnote> 或 <fo:marker> 作为后代。


语法

<fo:footnote><!--Contents:(inline|footnote-body)--></fo:footnote> 

属性

属性
role
source-document


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO footnote-body 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:footnote-body> 对象定义脚注的内容。


语法

<fo:footnote-body><!--Contents:(block|block-container|table-and-caption|table|list-block)+--></fo:footnote-body> 

属性

属性
role
source-document


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO initial-property-set 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节介绍 XSL-FO 中 initial-property-set 对象的定义、语法以及属性。


定义和用法

<fo:initial-property-set> 对象用于格式化 <fo:block> 的第一行。


语法

<fo:initial-property-set><!--Contents:EMPTY--></fo:initial-property-set>

属性

属性 [A-G] 属性 [H-Z]
azimuth id
background-attachment left
background-color letter-spacing
background-image line-height
background-repeat padding-after
background-position-horizontal padding-before
background-position-vertical padding-bottom
border-after-color padding-end
border-after-style padding-left
border-after-width padding-right
border-before-color padding-start
border-before-style padding-top
border-before-width pause-after
border-bottom-color pause-before
border-bottom-style pitch
border-bottom-width pitch-range
border-end-color play-during
border-end-style relative-position
border-end-width richness
border-left-color right
border-left-style role
border-left-width score-spaces
border-right-color source-document
border-right-style speak
border-right-width speak-header
border-start-color speak-numeral
border-start-style speak-punctuation
border-start-width speech-rate
border-top-color stress
border-top-style text-decoration
border-top-width text-shadow
bottom text-transform
color top
cue-after voice-family
cue-before volume
elevation word-spacing
font-family  
font-selection-strategy  
font-size  
font-size-adjust  
font-stretch  
font-style  
font-variant  
font-weight  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO inline 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:inline> 对象通过背景属性或将其嵌入一个边框来定义文本的一部分格式。


语法

<fo:inline><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|inline-container|leader|page-number|page-number-citation|basic-link|multi-toggle|block|block-container|table-and-caption|table|list-block)*--></fo:inline> 

属性

属性 [A-G] 属性 [H-Z]
azimuth height
alignment-adjust id
alignment-baseline inline-progression-dimension
background-attachment keep-together
background-color keep-with-next
background-image keep-with-previous
background-repeat left
background-position-horizontal line-height
background-position-vertical margin-bottom
baseline-shift margin-left
block-progression-dimension margin-right
border-after-color margin-top
border-after-style padding-after
border-after-width padding-before
border-before-color padding-bottom
border-before-style padding-end
border-before-width padding-left
border-bottom-color padding-right
border-bottom-style padding-start
border-bottom-width padding-top
border-end-color pause-after
border-end-style pause-before
border-end-width pitch
border-left-color pitch-range
border-left-style play-during
border-left-width relative-position
border-right-color richness
border-right-style right
border-right-width role
border-start-color source-document
border-start-style space-end
border-start-width space-start
border-top-color speak
border-top-style speak-header
border-top-width speak-numeral
bottom speak-punctuation
color speech-rate
cue-after stress
cue-before text-decoration
dominant-baseline top
elevation visibility
font-family voice-family
font-selection-strategy volume
font-size width
font-size-adjust wrap-option
font-stretch  
font-style  
font-variant  
font-weight  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO inline-container 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节介绍关于 XSL-FO inline-container 对象的定义、语法以及属性。


定义和用法

<fo:inline-container> 对象生成一个内联参考域(reference-area)。通常情况下,该区域包含了不同写入模式的文本块。


语法

<fo:inline-container><!--Contents:(block|block-container|table-and-caption|table|list-block)+--></fo:inline-container> 

属性

属性 [A-B] 属性 [C-Z]
alignment-adjust clip
alignment-baseline display-align
background-attachment dominant-baseline
background-color height
background-image id
background-repeat inline-progression-dimension
background-position-horizontal keep-together
background-position-vertical keep-with-next
baseline-shift keep-with-previous
block-progression-dimension left
border-after-color line-height
border-after-style margin-bottom
border-after-width margin-left
border-before-color margin-right
border-before-style margin-top
border-before-width overflow
border-bottom-color padding-after
border-bottom-style padding-before
border-bottom-width padding-bottom
border-end-color padding-end
border-end-style padding-left
border-end-width padding-right
border-left-color padding-start
border-left-style padding-top
border-left-width reference-orientation
border-right-color relative-position
border-right-style right
border-right-width space-end
border-start-color space-start
border-start-style top
border-start-width width
border-top-color writing-mode
border-top-style  
border-top-width  
bottom  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO instream-foreign-object 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:instream-foreign-object> 对象用于内联图形或 "generic" 类对象。在其中,对象的数据以 <fo:instream-foreign-object> 的后代形式存在。通常情况下,是作为一个非 XSL 命名空间中的 XML 元素子树(一个常见的格式是 SVG)存储于其内部。

该对象的内容尺寸大小是通过调用对象的 size 属性来定义的,并通过指定 content-height、content-width 以及 scaling 属性来缩放尺寸大小。

如果尺寸放大后内容太大了,那么可以使用 overflow 属性来设置滚动条对溢出部分进行浏览。


语法

<fo:instream-foreign-object><!--Contents:(see below)--></fo:instream-foreign-object> 

该对象有一个来自于非 XSL 命名空间的子类。它也可能包含非 XSL 命名空间的额外属性。

属性

属性 [A-J] 属性 [K-Z]
alignment-adjust keep-with-next
alignment-baseline keep-with-previous
azimuth language
background-attachment left
background-color line-height
background-image margin-bottom
background-repeat margin-left
background-position-horizontal margin-right
background-position-vertical margin-top
baseline-shift overflow
block-progression-dimension padding-after
border-after-color padding-before
border-after-style padding-bottom
border-after-width padding-end
border-before-color padding-left
border-before-style padding-right
border-before-width padding-start
border-bottom-color padding-top
border-bottom-style pause-after
border-bottom-width pause-before
border-end-color pitch
border-end-style pitch-range
border-end-width play-during
border-left-color relative-position
border-left-style richness
border-left-width right
border-right-color role
border-right-style scaling
border-right-width scaling-method
border-start-color script
border-start-style source-document
border-start-width space-end
border-top-color space-start
border-top-style speak
border-top-width speak-header
bottom speak-numeral
clip speak-punctuation
content-height speech-rate
content-type stress
content-width text-align
country text-indent
cue-after top
cue-before voice-family
display-align volume
dominant-baseline width
elevation  
height  
id  
inline-progression-dimension  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO layout-master-set 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:layout-master-set> 对象保存所有在文档中使用的宿主(master)。

注意:<fo:root> 是 <fo:layout-master-set> 的父类。

注意:<fo:layout-master-set> 的每个子类的宿主名(master-name)在文档中必须是独一无二的。


语法

<fo:layout-master-set><!--Contents:(simple-page-master|page-sequence-master)+--></fo:layout-master-set> 

属性

实例 1

XSL-FO 文档结构如下所示:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"><!-- Page template goes here --></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><!-- Page content goes here --></fo:page-sequence></fo:root> 


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO leader 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:leader> 对象的作用如下:

  • 生成 "." 符号来分隔内容表格中页面数字的标题
  • 创建表单中的输入字段
  • 创建水平规则

如果前导字符长度太长,与整个区域明显不适应,那么它将会另起一行。

只用在 leader-pattern 属性设置为 "use-content" 的情况下,<fo:leader> 对象的子类才不会被忽略;如果 <fo:leader> 不包含子类,并且 leader-pattern 属性设置为 "use-content",那么前导字符会被填充为空白。

如果前导字符需要在一行中填充所有的空格,那么前导字符的最大长度至少与列的宽度相同。


语法

<fo:leader><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|page-number|page-number-citation|basic-link|multi-toggle)*--></fo:leader>

属性

属性 [A-K] 属性 [L-Z]
azimuth leader-alignment
alignment-adjust leader-length
alignment-baseline leader-pattern
background-attachment leader-pattern-width
background-color left
background-image letter-spacing
background-repeat line-height
background-position-horizontal margin-bottom
background-position-vertical margin-left
baseline-shift margin-right
border-after-color margin-top
border-after-style padding-after
border-after-width padding-before
border-before-color padding-bottom
border-before-style padding-end
border-before-width padding-left
border-bottom-color padding-right
border-bottom-style padding-start
border-bottom-width padding-top
border-end-color pause-after
border-end-style pause-before
border-end-width pitch
border-left-color pitch-range
border-left-style play-during
border-left-width relative-position
border-right-color richness
border-right-style right
border-right-width role
border-start-color rule-style
border-start-style rule-thickness
border-start-width source-document
border-top-color space-end
border-top-style space-start
border-top-width speak
bottom speak-header
color speak-numeral
cue-after speak-punctuation
cue-before speech-rate
dominant-baseline stress
elevation text-altitude
font-family text-depth
font-selection-strategy text-shadow
font-size top
font-size-adjust visibility
font-stretch voice-family
font-style volume
font-variant word-spacing
font-weight  
id  
keep-with-next  
keep-with-previous  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO list-block 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:list-block> 对象用于格式化整个列表。

下面列举了四个用于创建列表的 XSL-FO 对象:

  • fo:list-block(包含了整个列表)
  • fo:list-item(包含了列表中的每个项)
  • fo:list-item-label(包含了 list-item 标签 - 通常情况下,<fo:block> 包含数字、字符等)
  • fo:list-item-body(包含了 list-item 的内容/主体 - 通常是一个或多个 <fo:block> 对象)

语法

<fo:list-block><!--Contents:(list-item+)--></fo:list-block> 

属性

属性 [A-J] 属性 [K-Z]
azimuth keep-together
background-attachment keep-with-next
background-color keep-with-previous
background-image left
background-repeat margin-bottom
background-position-horizontal margin-left
background-position-vertical margin-right
border-after-color margin-top
border-after-style padding-after
border-after-width padding-before
border-before-color padding-bottom
border-before-style padding-end
border-before-width padding-left
border-bottom-color padding-right
border-bottom-style padding-start
border-bottom-width padding-top
border-end-color pause-after
border-end-style pause-before
border-end-width pitch
border-left-color pitch-range
border-left-style play-during
border-left-width provisional-distance-between-starts
border-right-color provisional-label-separation
border-right-style relative-position
border-right-width richness
border-start-color right
border-start-style role
border-start-width source-document
border-top-color space-after
border-top-style space-before
border-top-width speak
bottom speak-header
break-after speak-numeral
break-before speak-punctuation
cue-after speech-rate
cue-before start-indent
elevation stress
end-indent top
id voice-family
intrusion-displace volume

实例 1

一个 XSL-FO 列表实例:

<fo:list-block>

<fo:list-item>
<fo:list-item-label>
<fo:block>*</fo:block>
</fo:list-item-label>
<fo:list-item-body>
<fo:block>Volvo</fo:block>
</fo:list-item-body>
</fo:list-item>

<fo:list-item>
<fo:list-item-label>
<fo:block>*</fo:block>
</fo:list-item-label>
<fo:list-item-body>
<fo:block>Saab</fo:block>
</fo:list-item-body>
</fo:list-item>

</fo:list-block>

上面代码将输出:


* Volvo
* Saab


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO list-item 对象

XSL-FO 参考手册 XSL-FO 参考手册

你可以对 XSL-FO 中的列表的每个项使用 list-item 对象。


定义和用法

<fo:list-item> 对象用于列表中的每个项。

下面列举了四个用于创建列表的 XSL-FO 对象:

  • fo:list-block(包含了整个列表)
  • fo:list-item(包含了列表中的每个项)
  • fo:list-item-label(包含了 list-item 标签 - 通常情况下,<fo:block> 包含数字、字符等)
  • fo:list-item-body(包含了 list-item 的内容/主体 - 通常是一个或多个 <fo:block> 对象)

语法

<fo:list-item><!--Contents:(list-item-label,list-item-body)--></fo:list-item>

属性

属性 [A-J] 属性 [K-Z]
azimuth keep-together
background-attachment keep-with-next
background-color keep-with-previous
background-image left
background-repeat margin-bottom
background-position-horizontal margin-left
background-position-vertical margin-right
border-after-color margin-top
border-after-style padding-after
border-after-width padding-before
border-before-color padding-bottom
border-before-style padding-end
border-before-width padding-left
border-bottom-color padding-right
border-bottom-style padding-start
border-bottom-width padding-top
border-end-color pause-after
border-end-style pause-before
border-end-width pitch
border-left-color pitch-range
border-left-style play-during
border-left-width relative-align
border-right-color relative-position
border-right-style richness
border-right-width right
border-start-color role
border-start-style source-document
border-start-width space-after
border-top-color space-before
border-top-style speak
border-top-width speak-header
bottom speak-numeral
break-after speak-punctuation
break-before speech-rate
cue-after start-indent
cue-before stress
elevation top
end-indent voice-family
id volume
intrusion-displace  

实例 1

一个 XSL-FO 列表实例:

<fo:list-block><fo:list-item><fo:list-item-label><fo:block>*</fo:block></fo:list-item-label><fo:list-item-body><fo:block>Volvo</fo:block></fo:list-item-body></fo:list-item><fo:list-item><fo:list-item-label><fo:block>*</fo:block></fo:list-item-label><fo:list-item-body><fo:block>Saab</fo:block></fo:list-item-body></fo:list-item></fo:list-block> 

上面代码将输出:


* Volvo
* Saab


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO list-item-body 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:list-item-body> 对象包含了 list-item 的内容/主体 - 通常是一个或多个 <fo:block> 对象。

下面列举了四个用于创建列表的 XSL-FO 对象:

  • fo:list-block(包含了整个列表)
  • fo:list-item(包含了列表中的每个项)
  • fo:list-item-label(包含了 list-item 标签 - 通常情况下,<fo:block> 包含数字、字符等)
  • fo:list-item-body(包含了 list-item 的内容/主体 - 通常是一个或多个 <fo:block> 对象)

语法

<fo:list-item-body><!--Contents:(block|block-container|table-and-caption|table|list-block|list-item)+--></fo:list-item-body> 

属性

属性
id
keep-together
role
source-document

实例 1

一个 XSL-FO 列表实例:

<fo:list-block><fo:list-item><fo:list-item-label><fo:block>*</fo:block></fo:list-item-label><fo:list-item-body><fo:block>Volvo</fo:block></fo:list-item-body></fo:list-item><fo:list-item><fo:list-item-label><fo:block>*</fo:block></fo:list-item-label><fo:list-item-body><fo:block>Saab</fo:block></fo:list-item-body></fo:list-item></fo:list-block> 

上面代码将输出:


* Volvo
* Saab


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO list-item-label 对象

XSL-FO 参考手册 XSL-FO 参考手册

你可以使用 list-item-label 对象设置 list-item 的标签。


定义和用法

<fo:list-item-label> 对象包含了 list-item 标签 - 通常情况下,<fo:block> 包含数字、字符等。

下面列举了四个用于创建列表的 XSL-FO 对象:

  • fo:list-block(包含了整个列表)
  • fo:list-item(包含了列表中的每个项)
  • fo:list-item-label(包含了 list-item 标签 - 通常情况下,<fo:block> 包含数字、字符等)
  • fo:list-item-body(包含了 list-item 的内容/主体 - 通常是一个或多个 <fo:block> 对象)

语法

<fo:list-item-label><!--Contents:(block|block-container|table-and-caption|table|list-block|list-item)+--></fo:list-item-label> 

属性

属性
id
keep-together
role
source-document

实例 1

一个 XSL-FO 列表实例:

<fo:list-block><fo:list-item><fo:list-item-label><fo:block>*</fo:block></fo:list-item-label><fo:list-item-body><fo:block>Volvo</fo:block></fo:list-item-body></fo:list-item><fo:list-item><fo:list-item-label><fo:block>*</fo:block></fo:list-item-label><fo:list-item-body><fo:block>Saab</fo:block></fo:list-item-body></fo:list-item></fo:list-block>

上面代码将输出:


* Volvo
* Saab


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO marker 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:marker> 对象与 <fo:retrieve-marker> 一起使用来创建运行的页眉或页脚(举例:让页眉展示页面的章节以及区域标题)。

注意:<fo:marker> 对象仅被允许用作 <fo:flow> 对象的子类。


语法

<fo:marker><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|inline-container|leader|page-number|page-number-citation|basic-link|multi-toggle|block|block-container|table-and-caption|table|list-block)*--></fo:marker> 

属性

属性
marker-class-name


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO multi-case 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:multi-case> 对象包含 XSL-FO 对象的每个供选择的子树(在 <fo:multi-switch> 内部)。父元素 <fo:multi-switch> 会选择要显示的那个选项并隐藏其余的选项。


语法

<fo:multi-case><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|inline-container|leader|page-number|page-number-citation|basic-link|multi-toggle|block|block-container|table-and-caption|table|list-block)*--></fo:multi-case>

属性

属性
case-name
case-title
id
role
source-document
starting-state


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO multi-properties 对象

XSL-FO 参考手册 XSL-FO 参考手册

如果你需要切换属性集,可以使用 XSL-FO 的 multi-properties 对象。


定义和用法

<fo:multi-properties> 对象用于两个或多个属性集之间切换。

该对象可用于给一部分内容呈现不同的布局。比如:当链接从未访问变成已访问,布局会改变(这是通过改变属性集来完成的)。注意:在改变引起文本回流的属性时要格外小心。像 "color" 或 "text-decoration" 这样的属性不会导致文本回流。


语法

<fo:multi-properties><!--Contents:(multi-property-set+,wrapper)--></fo:multi-properties>

属性

属性
id
role
source-document


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO multi-property-set 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:multi-property-set> 对象规定一个用于交替出现的格式化属性的可选集合。


语法

<fo:multi-property-set><!--Contents:EMPTY--></fo:multi-property-set> 

属性

属性
active-state
id


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO multi-switch 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:multi-switch> 对象保留一个或多个 <fo:multi-case> 对象,控制它们(由 <fo:multi-toggle> 触发)彼此之间的转换。

该对象可用于交互式任务,比如:表格内容视图切换以及下一页/上一页视图切换。

这些对象的子类为一个或多个 <fo:multi-case> 对象。然而,在一个时间内只有一个 <fo:multi-case> 对象是可视的。每个 <fo:multi-case> 对象都可能包含一个或多个 <fo:multi-toggle> 对象,<fo:multi-toggle>对象是用于控制 <fo:multi-switch> 的 <fo:multi-case> 切换的。


语法

<fo:multi-switch><!--Contents:(multi-case+)--></fo:multi-switch> 

属性

属性
auto-restore
id
role
source-document


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO multi-toggle 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

The <fo:multi-toggle> 对象用于当对象被激活时(如:单击),创建一个域,并从一个 <fo:multi-case> 切换到另一个 <fo:multi-case>。

"switch-to" 属性通常是匹配要切换到的 <fo:multi-case> 的 "case-name" 属性。

<fo:multi-toggle> 对象必须是 <fo:multi-case> 对象的子类。


语法

<fo:multi-toggle><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|inline-container|leader|page-number|page-number-citation|basic-link|multi-toggle|block|block-container|table-and-caption|table|list-block)*--></fo:multi-toggle> 

属性

属性
id
role
source-document
switch-to


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO page-number 对象

XSL-FO 参考手册 XSL-FO 参考手册

如何显示当前的页码?你可以使用 page-number 对象。


定义和用法

<fo:page-number> 对象用于表示当前页码。


语法

<fo:page-number><!--Contents:EMPTY--></fo:page-number> 

属性

属性 [A-J] 属性 [K-Z]
azimuth keep-with-next
alignment-adjust keep-with-previous
alignment-baseline left
background-attachment letter-spacing
background-color line-height
background-image margin-bottom
background-repeat margin-left
background-position-horizontal margin-right
background-position-vertical margin-top
baseline-shift padding-after
border-after-color padding-before
border-after-style padding-bottom
border-after-width padding-end
border-before-color padding-left
border-before-style padding-right
border-before-width padding-start
border-bottom-color padding-top
border-bottom-style pause-after
border-bottom-width pause-before
border-end-color pitch
border-end-style pitch-range
border-end-width play-during
border-left-color relative-position
border-left-style richness
border-left-width right
border-right-color role
border-right-style score-spaces
border-right-width source-document
border-start-color space-end
border-start-style space-start
border-start-width speak
border-top-color speak-header
border-top-style speak-numeral
border-top-width speak-punctuation
bottom speech-rate
cue-after stress
cue-before text-altitude
dominant-baseline text-decoration
elevation text-depth
font-family text-shadow
font-selection-strategy text-transform
font-size top
font-size-adjust visibility
font-stretch voice-family
font-style volume
font-variant word-spacing
font-weight wrap-option
id  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO page-number-citation 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:page-number-citation> 对象为页面引用页码,此页面包含由被引用对象返回的第一个标准域。/p>

被引用页码指出了页面的数量,该页面包含了作为其子类的通过标准域的 id 与 <fo:page-number-citation> 的 ref-id 相匹配返回的第一个标准域。

该对象可用于提供内容表、交叉引用以及索引的页码。


语法

<fo:page-number-citation><!--Contents:EMPTY--></fo:page-number-citation> 

属性

属性 [A-J] 属性 [K-Z]
azimuth keep-with-next
alignment-adjust keep-with-previous
alignment-baseline left
background-attachment letter-spacing
background-color line-height
background-image margin-bottom
background-repeat margin-left
background-position-horizontal margin-right
background-position-vertical margin-top
baseline-shift padding-after
border-after-color padding-before
border-after-style padding-bottom
border-after-width padding-end
border-before-color padding-left
border-before-style padding-right
border-before-width padding-start
border-bottom-color padding-top
border-bottom-style pause-after
border-bottom-width pause-before
border-end-color pitch
border-end-style pitch-range
border-end-width play-during
border-left-color ref-id
border-left-style relative-position
border-left-width richness
border-right-color right
border-right-style role
border-right-width score-spaces
border-start-color source-document
border-start-style space-end
border-start-width space-start
border-top-color speak
border-top-style speak-header
border-top-width speak-numeral
bottom speak-punctuation
cue-after speech-rate
cue-before stress
dominant-baseline text-altitude
elevation text-decoration
font-family text-depth
font-selection-strategy text-shadow
font-size text-transform
font-size-adjust top
font-stretch visibility
font-style voice-family
font-variant volume
font-weight word-spacing
id wrap-option


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO page-sequence 对象

XSL-FO 参考手册 XSL-FO 参考手册

本节介绍 page-sequence 对象在 XSL-FO 中起到的作用。


定义和用法

<fo:page-sequence> 对象是作为页面输出元素的容器使用的。

每个页面布局都包含一个 <fo:page-sequence> 对象。<fo:page-sequence> 的子类对象规定了页面的内容。

每个 fo:page-sequence 对象都引用了一个 <fo:page-sequence-master> 或是一个 <fo:simple-page-master>。


语法

<fo:page-sequence><!--Contents:title?,static-content*,flow--></fo:page-sequence> 

属性

属性
country
force-page-count
format
grouping-separator
grouping-size
id
initial-page-number
language
letter-value
master-reference

实例 1

XSL-FO 文档结构如下所示:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"><!-- Page template goes here --></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><!-- Page content goes here --></fo:page-sequence></fo:root> 

实例 2

一个"真实的" XSL-FO 实例:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><fo:flow flow-name="xsl-region-body"><fo:block>Hello W3CSchool</fo:block></fo:flow></fo:page-sequence></fo:root> 

上面代码的输出如下所示:

Hello W3CSchool


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO page-sequence-master 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:page-sequence-master> 对象规定要使用的 simple-page-masters 以及使用顺序。


语法

<fo:page-sequence-master><!--Contents:(single-page-master-reference|repeatable-page-master-reference|repeatable-page-master-alternatives)+--></fo:page-sequence-master> 

属性

属性
master-name


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO region-after 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:region-after> 对象定义了页面的底部区域(页脚)。

XSL-FO 使用下列元素来定义页面的区域:

  • <fo:region-body> 定义了主体区域
  • <fo:region-before> 定义了顶部区域(页眉)
  • <fo:region-after> 定义了底部区域(页脚)
  • <fo:region-start> 定义了左部区域(左侧栏)
  • <fo:region-end> 定义了右部区域(右侧栏)

注意:region-before、region-after、region-start 以及 region-end 都是 region-body 的一部分。为了避免 region-body 内的文本覆盖其它区域的文本, region-body 的边距至少必须与上述四个子区域的尺寸相同。

注意:根据 XSL-FO 1.0 版本的推荐标准,padding 和 border-width 属性必须为 0。


语法

<fo:region-after><!--Contents:EMPTY--></fo:region-after

属性

属性 [A-B] 属性 [C-Z]
background-attachment clip
background-color display-align
background-image extent
background-repeat overflow
background-position-horizontal padding-after
background-position-vertical padding-before
border-after-color padding-bottom
border-after-style padding-end
border-after-width padding-left
border-before-color padding-right
border-before-style padding-start
border-before-width padding-top
border-bottom-color precedence
border-bottom-style region-name
border-bottom-width reference-orientation
border-end-color writing-mode
border-end-style  
border-end-width  
border-left-color  
border-left-style  
border-left-width  
border-right-color  
border-right-style  
border-right-width  
border-start-color  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  

实例 1

XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。每个模板必须拥有一个唯一的名称:

<fo:simple-page-master master-name="intro"><fo:region-body margin="5in" /></fo:simple-page-master><fo:simple-page-master master-name="left"><fo:region-body margin-left="2in" margin-right="3in" /></fo:simple-page-master><fo:simple-page-master master-name="right"><fo:region-body margin-left="3in" margin-right="2in" /></fo:simple-page-master> 

在上面的实例中,三个 <fo:simple-page-master> 元素,定义了三个不同的模板。每个模板(page-master)都有不同的名称。

第一个模板名为 "intro"。它可作为介绍页面的模板使用。

第二个和第三个模板名为 "left" 和 "right"。它们可作为偶数和奇数页码的页面模板使用。

实例 2

这是从某个 XSL-FO 文档中提取的一个片断:

<fo:simple-page-master master-name="A4"page-width="297mm" page-height="210mm"margin-top="1cm" margin-bottom="1cm"margin-left="1cm" margin-right="1cm"><fo:region-body margin="3cm"/><fo:region-before extent="2cm"/><fo:region-after extent="2cm"/><fo:region-start extent="2cm"/><fo:region-end extent="2cm"/></fo:simple-page-master>

上面的代码定义了一个名称为 "A4" 的 "Simple Page Master Template"。

页面的宽度是 297 毫米,高度是 210 毫米。

页面的四个边距(上边距、下边距、左边距、右边距)均为 1 厘米。

主体的边距是 3 厘米(四个边都是)。

主体的 before、after、start 以及 end 区均为 2 厘米。

上面的实例中的主体的宽度可通过页面宽度减去左右边距以及 region-body 的边距来计算得出:

297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm

请注意,region(region-start 和 region-end)没有被计算进来。正如之前讲解过的,这些区(region)是主体的组成部分。


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO region-before 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:region-before> 对象定义了页面的顶部区域(页眉)。

XSL-FO 使用下列元素来定义页面的区域:

  • <fo:region-body> 定义了主体区域
  • <fo:region-before> 定义了顶部区域(页眉)
  • <fo:region-after> 定义了底部区域(页脚)
  • <fo:region-start> 定义了左部区域(左侧栏)
  • <fo:region-end> 定义了右部区域(右侧栏)

注意:region-before、region-after、region-start 以及 region-end 都是 region-body 的一部分。为了避免 region-body 内的文本覆盖其它区域的文本, region-body 的边距至少必须与上述四个子区域的尺寸相同。

注意:根据 XSL-FO 1.0 版本的推荐标准,padding 和 border-width 属性必须为 0。


语法

<fo:region-before><!--Contents:EMPTY--></fo:region-before> 

属性

属性 [A-B] 属性 [C-Z]
background-attachment clip
background-color display-align
background-image extent
background-repeat overflow
background-position-horizontal padding-after
background-position-vertical padding-before
border-after-color padding-bottom
border-after-style padding-end
border-after-width padding-left
border-before-color padding-right
border-before-style padding-start
border-before-width padding-top
border-bottom-color precedence
border-bottom-style region-name
border-bottom-width reference-orientation
border-end-color writing-mode
border-end-style  
border-end-width  
border-left-color  
border-left-style  
border-left-width  
border-right-color  
border-right-style  
border-right-width  
border-start-color  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  

实例 1

XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。每个模板必须拥有一个唯一的名称:

<fo:simple-page-master master-name="intro"><fo:region-body margin="5in" /></fo:simple-page-master><fo:simple-page-master master-name="left"><fo:region-body margin-left="2in" margin-right="3in" /></fo:simple-page-master><fo:simple-page-master master-name="right"><fo:region-body margin-left="3in" margin-right="2in" /></fo:simple-page-master> 

在上面的实例中,三个 <fo:simple-page-master> 元素,定义了三个不同的模板。每个模板(page-master)都有不同的名称。

第一个模板名为 "intro"。它可作为介绍页面的模板使用。

第二个和第三个模板名为 "left" 和 "right"。它们可作为偶数和奇数页码的页面模板使用。

实例 2

这是从某个 XSL-FO 文档中提取的一个片断:

<fo:simple-page-master master-name="A4"page-width="297mm" page-height="210mm"margin-top="1cm" margin-bottom="1cm"margin-left="1cm" margin-right="1cm"><fo:region-body margin="3cm"/><fo:region-before extent="2cm"/><fo:region-after extent="2cm"/><fo:region-start extent="2cm"/><fo:region-end extent="2cm"/></fo:simple-page-master> 

上面的代码定义了一个名称为 "A4" 的 "Simple Page Master Template"。

页面的宽度是 297 毫米,高度是 210 毫米。

页面的四个边距(上边距、下边距、左边距、右边距)均为 1 厘米。

主体的边距是 3 厘米(四个边都是)。

主体的 before、after、start 以及 end 区均为 2 厘米。

上面的实例中的主体的宽度可通过页面宽度减去左右边距以及 region-body 的边距来计算得出:

297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm

请注意,region(region-start 和 region-end)没有被计算进来。正如之前讲解过的,这些区(region)是主体的组成部分。


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO region-body 对象

XSL-FO 参考手册 XSL-FO 参考手册

使用 XSL-FO 的时候,一个页面的主体区域是通过 region-body 对象定义的。


定义和用法

<fo:region-body> 对象定义了页面的主体区域。

XSL-FO 使用下列元素来定义页面的区域:

  • <fo:region-body> 定义了主体区域
  • <fo:region-before> 定义了顶部区域(页眉)
  • <fo:region-after> 定义了底部区域(页脚)
  • <fo:region-start> 定义了左部区域(左侧栏)
  • <fo:region-end> 定义了右部区域(右侧栏)

注意:region-before、region-after、region-start 以及 region-end 都是 region-body 的一部分。为了避免 region-body 内的文本覆盖其它区域的文本, region-body 的边距至少必须与上述四个子区域的尺寸相同。

提示:为了在 region-body 区提供多个列, 需要把 column-count 属性设置为大于 1!/p>

注意:如果 overflow 属性的值为 "scroll",则您不能把 column-count 属性设置为大于 1!

注意:根据 XSL-FO 1.0 版本的推荐标准,padding 和 border-width 属性必须为 0。


语法

<fo:region-body><!--Contents:EMPTY--></fo:region-body> 

属性

属性 [A-B] 属性 [C-Z]
background-attachment clip
background-color column-count
background-image column-gap
background-repeat display-align
background-position-horizontal end-indent
background-position-vertical margin-bottom
border-after-color margin-left
border-after-style margin-right
border-after-width margin-top
border-before-color overflow
border-before-style padding-after
border-before-width padding-before
border-bottom-color padding-bottom
border-bottom-style padding-end
border-bottom-width padding-left
border-end-color padding-right
border-end-style padding-start
border-end-width padding-top
border-left-color region-name
border-left-style reference-orientation
border-left-width space-after
border-right-color space-before
border-right-style writing-mode
border-right-width  
border-start-color  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  

实例 1

XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。每个模板必须拥有一个唯一的名称:

<fo:simple-page-master master-name="intro"><fo:region-body margin="5in" /></fo:simple-page-master><fo:simple-page-master master-name="left"><fo:region-body margin-left="2in" margin-right="3in" /></fo:simple-page-master><fo:simple-page-master master-name="right"><fo:region-body margin-left="3in" margin-right="2in" /></fo:simple-page-master> 

在上面的实例中,三个 <fo:simple-page-master> 元素,定义了三个不同的模板。每个模板(page-master)都有不同的名称。

第一个模板名为 "intro"。它可作为介绍页面的模板使用。

第二个和第三个模板名为 "left" 和 "right"。它们可作为偶数和奇数页码的页面模板使用。

实例 2

这是从某个 XSL-FO 文档中提取的一个片断:

<fo:simple-page-master master-name="A4"page-width="297mm" page-height="210mm"margin-top="1cm" margin-bottom="1cm"margin-left="1cm" margin-right="1cm"><fo:region-body margin="3cm"/><fo:region-before extent="2cm"/><fo:region-after extent="2cm"/><fo:region-start extent="2cm"/><fo:region-end extent="2cm"/></fo:simple-page-master>

上面的代码定义了一个名称为 "A4" 的 "Simple Page Master Template"。

页面的宽度是 297 毫米,高度是 210 毫米。

页面的四个边距(上边距、下边距、左边距、右边距)均为 1 厘米。

主体的边距是 3 厘米(四个边都是)。

主体的 before、after、start 以及 end 区均为 2 厘米。

上面的实例中的主体的宽度可通过页面宽度减去左右边距以及 region-body 的边距来计算得出:

297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm

请注意,region(region-start 和 region-end)没有被计算进来。正如之前讲解过的,这些区(region)是主体的组成部分。


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO region-end 对象

XSL-FO 参考手册 XSL-FO 参考手册

在一个页面的区域组成中,页面的右部由 region-end 对象定义。


定义和用法

<fo:region-end> 对象定义了页面的右部区域(右侧栏)。

XSL-FO 使用下列元素来定义页面的区域:

  • <fo:region-body> 定义了主体区域
  • <fo:region-before> 定义了顶部区域(页眉)
  • <fo:region-after> 定义了底部区域(页脚)
  • <fo:region-start> 定义了左部区域(左侧栏)
  • <fo:region-end> 定义了右部区域(右侧栏)

注意:region-before、region-after、region-start 以及 region-end 都是 region-body 的一部分。为了避免 region-body 内的文本覆盖其它区域的文本, region-body 的边距至少必须与上述四个子区域的尺寸相同。

注意:根据 XSL-FO 1.0 版本的推荐标准,padding 和 border-width 属性必须为 0。


语法

<fo:region-end><!--Contents:EMPTY--></fo:region-end>

属性

属性 [A-B] 属性 [C-Z]
background-attachment clip
background-color display-align
background-image extent
background-repeat overflow
background-position-horizontal padding-after
background-position-vertical padding-before
border-after-color padding-bottom
border-after-style padding-end
border-after-width padding-left
border-before-color padding-right
border-before-style padding-start
border-before-width padding-top
border-bottom-color region-name
border-bottom-style reference-orientation
border-bottom-width writing-mode
border-end-color  
border-end-style  
border-end-width  
border-left-color  
border-left-style  
border-left-width  
border-right-color  
border-right-style  
border-right-width  
border-start-color  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  

实例 1

XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。每个模板必须拥有一个唯一的名称:

<fo:simple-page-master master-name="intro"><fo:region-body margin="5in" /></fo:simple-page-master><fo:simple-page-master master-name="left"><fo:region-body margin-left="2in" margin-right="3in" /></fo:simple-page-master><fo:simple-page-master master-name="right"><fo:region-body margin-left="3in" margin-right="2in" /></fo:simple-page-master>

在上面的实例中,三个 <fo:simple-page-master> 元素,定义了三个不同的模板。每个模板(page-master)都有不同的名称。

第一个模板名为 "intro"。它可作为介绍页面的模板使用。

第二个和第三个模板名为 "left" 和 "right"。它们可作为偶数和奇数页码的页面模板使用。

实例 2

这是从某个 XSL-FO 文档中提取的一个片断:

<fo:simple-page-master master-name="A4"page-width="297mm" page-height="210mm"margin-top="1cm" margin-bottom="1cm"margin-left="1cm" margin-right="1cm"><fo:region-body margin="3cm"/><fo:region-before extent="2cm"/><fo:region-after extent="2cm"/><fo:region-start extent="2cm"/><fo:region-end extent="2cm"/></fo:simple-page-master>

上面的代码定义了一个名称为 "A4" 的 "Simple Page Master Template"。

页面的宽度是 297 毫米,高度是 210 毫米。

页面的四个边距(上边距、下边距、左边距、右边距)均为 1 厘米。

主体的边距是 3 厘米(四个边都是)。

主体的 before、after、start 以及 end 区均为 2 厘米。

上面的实例中的主体的宽度可通过页面宽度减去左右边距以及 region-body 的边距来计算得出:

297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm

请注意,region(region-start 和 region-end)没有被计算进来。正如之前讲解过的,这些区(region)是主体的组成部分。


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO region-start 对象

XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO 中,页面的左侧栏由 region-start 对象定义。


定义和用法

<fo:region-start> 对象定义了页面的左部区域(左侧栏)。

XSL-FO 使用下列元素来定义页面的区域:

  • <fo:region-body> 定义了主体区域
  • <fo:region-before> 定义了顶部区域(页眉)
  • <fo:region-after> 定义了底部区域(页脚)
  • <fo:region-start> 定义了左部区域(左侧栏)
  • <fo:region-end> 定义了右部区域(右侧栏)

注意:region-before、region-after、region-start 以及 region-end 都是 region-body 的一部分。为了避免 region-body 内的文本覆盖其它区域的文本, region-body 的边距至少必须与上述四个子区域的尺寸相同。

注意:根据 XSL-FO 1.0 版本的推荐标准,padding 和 border-width 属性必须为 0。


语法

<fo:region-start><!--Contents:EMPTY--></fo:region-start>

属性

属性 [A-B] 属性 [C-Z]
background-attachment clip
background-color display-align
background-image extent
background-repeat overflow
background-position-horizontal padding-after
background-position-vertical padding-before
border-after-color padding-bottom
border-after-style padding-end
border-after-width padding-left
border-before-color padding-right
border-before-style padding-start
border-before-width padding-top
border-bottom-color region-name
border-bottom-style reference-orientation
border-bottom-width writing-mode
border-end-color  
border-end-style  
border-end-width  
border-left-color  
border-left-style  
border-left-width  
border-right-color  
border-right-style  
border-right-width  
border-start-color  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  

实例 1

XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。每个模板必须拥有一个唯一的名称:

<fo:simple-page-master master-name="intro"><fo:region-body margin="5in" /></fo:simple-page-master><fo:simple-page-master master-name="left"><fo:region-body margin-left="2in" margin-right="3in" /></fo:simple-page-master><fo:simple-page-master master-name="right"><fo:region-body margin-left="3in" margin-right="2in" /></fo:simple-page-master> 

在上面的实例中,三个 <fo:simple-page-master> 元素,定义了三个不同的模板。每个模板(page-master)都有不同的名称。

第一个模板名为 "intro"。它可作为介绍页面的模板使用。

第二个和第三个模板名为 "left" 和 "right"。它们可作为偶数和奇数页码的页面模板使用。

实例 2

这是从某个 XSL-FO 文档中提取的一个片断:

<fo:simple-page-master master-name="A4"page-width="297mm" page-height="210mm"margin-top="1cm" margin-bottom="1cm"margin-left="1cm" margin-right="1cm"><fo:region-body margin="3cm"/><fo:region-before extent="2cm"/><fo:region-after extent="2cm"/><fo:region-start extent="2cm"/><fo:region-end extent="2cm"/></fo:simple-page-master>

上面的代码定义了一个名称为 "A4" 的 "Simple Page Master Template"。

页面的宽度是 297 毫米,高度是 210 毫米。

页面的四个边距(上边距、下边距、左边距、右边距)均为 1 厘米。

主体的边距是 3 厘米(四个边都是)。

主体的 before、after、start 以及 end 区均为 2 厘米。

上面的实例中的主体的宽度可通过页面宽度减去左右边距以及 region-body 的边距来计算得出:

297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm

请注意,region(region-start 和 region-end)没有被计算进来。正如之前讲解过的,这些区(region)是主体的组成部分。


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO repeatable-page-master-alternatives 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:repeatable-page-master-alternatives> 对象规定一组 simple-page-master 的副本。

该对象的子类是 fo:conditional-page-master-references(称之为"方案")。

具体使用哪个方案取决于对条件的评估(该条件允许对第一个页面、奇/偶页面以及空白页面使用不同的 page-masters)。

条件将按照顺序进行测试,最后的方案将引用到用于不包含指定布局的所有页面的 page-master。


语法

<fo:repeatable-page-master-alternatives><!--Contents:(conditional-page-master-reference+)--></fo:repeatable-page-master-alternatives>

属性

属性
maximum-repeats


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO repeatable-page-master-reference 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:repeatable-page-master-reference> 对象规定单个 simple-page-master 的副本。


语法

<fo:repeatable-page-master-reference><!--Contents:EMPTY--></fo:repeatable-page-master-reference>

属性

属性
master-reference
maximum-repeats


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO retrieve-marker 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:retrieve-marker> 对象与 <fo:marker> 一起使用来创建运行的页眉或页脚(举例:让页眉展示页面的章节以及区域标题)。

注意:<fo:retrieve-marker> 对象仅被允许用作 <fo:static-content> 对象的子类。


语法

<fo:retrieve-marker><!--Contents:EMPTY--></fo:retrieve-marker> 

属性

属性
retrieve-boundary
retrieve-class-name
retrieve-position


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO root 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:root> 对象是 XSL-FO 文档的根(顶级)节点。

<fo:root> 对象的子类是一个单独的 <fo:layout-master-set> 对象(该对象保留了在文档中使用的所有页面主 [master]),一个可选的 <fo:declarations> 对象,以及是一个或多个 <fo:page-sequence> 对象。

注意:一个 XSL-FO 文档可以包含多个 <fo:page-sequences> 对象(举例:文档的每个章节都可以作为一个独立的 <fo:page-sequence> 对象 - 它允许使用chapter-specific [具体的章节]内容,如:章节的标题,它可以被放置在页眉或页脚内)。


语法

<fo:root><!--Children:layout-master-set,declarations?,page-sequence+--></fo:root>

属性

属性
media-usage

实例 1

XSL-FO 文档结构如下所示:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"><!-- Page template goes here --></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><!-- Page content goes here --></fo:page-sequence></fo:root>


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO simple-page-master 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:simple-page-master> 对象定义了一个页面的尺寸和形状。对于每个页面布局来说,都包含一个指定的 simple-page-master。

一个页面最多可以包含五个区域:region-body、region-before、region-after、region-start、region-end。

<fo:simple-page-master> 对象将从 <fo:page-sequence-master> 对象或<fo:page-sequence> 对象中引用。


语法

<fo:simple-page-master><!--Contents:(region-body,region-before?,region-after?,region-start?,region-end?)--></fo:simple-page-master>

属性

属性
end-indent
margin-bottom
margin-left
margin-right
margin-top
master-name
page-height
page-width
reference-orientation
space-after
space-before
start-indent
writing-mode

实例 1

XSL-FO 文档结构如下所示:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"><!-- Page template goes here --></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><!-- Page content goes here --></fo:page-sequence></fo:root> 

实例 2

一个"真实的" XSL-FO 实例:

<?xml version="1.0" encoding="ISO-8859-1"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master master-name="A4"></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="A4"><fo:flow flow-name="xsl-region-body"><fo:block>Hello W3CSchool</fo:block></fo:flow></fo:page-sequence></fo:root>

上面代码的输出如下所示:

Hello W3CSchool



XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO single-page-master-reference 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:single-page-master-reference> 对象为用在页面序列的给定点中的具体的 page-master 保留一个参数。

注意:<fo:page-sequence-master> 对象是 <fo:single-page-master-reference> 对象的父类。


语法

<fo:single-page-master-reference><!--Contents:EMPTY--></fo:single-page-master-reference> 

属性

属性
master-reference


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO static-content 对象

XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO static-content 对象用于存放静态内容。


定义和用法

<fo:static-content> 对象包含了静态内容(如:页眉和页脚),该静态内容将在多个页面中重复调用。

<fo:static-content> 对象有一个 "flow-name" 属性,该属性定义了 <fo:static-content> 对象的内容走向。


语法

<fo:static-content><!--Contents:(block|block-container|table-and-caption|table|list-block)+--></fo:static-content>

属性

属性
flow-name


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:table> 对象用于格式化表格的表格式材料。

<fo:table> 对象包含了可选的 <fo:table-column> 对象、一个可选的 <fo:table-header> 对象、一个 <fo:table-body> 对象,以及一个可选的 <fo:table-footer> 对象。上述对象中的每个对象都包含一个或多个 <fo:table-row> 对象(该对象中同样包含一个或多个 <fo:table-cell> 对象)。


语法

<fo:table><!--Contents:(table-column*,table-header?,table-footer?,table-body+)--></fo:table>

属性

属性 [A-J] 属性 [K-Z]
azimuth keep-together
background-attachment keep-with-next
background-color keep-with-previous
background-image left
background-repeat margin-bottom
background-position-horizontal margin-left
background-position-vertical margin-right
block-progression-dimension margin-top
border-after-color padding-after
border-after-precedence padding-before
border-after-style padding-bottom
border-after-width padding-end
border-before-color padding-left
border-before-precedence padding-right
border-before-style padding-start
border-before-width padding-top
border-bottom-color pause-after
border-bottom-style pause-before
border-bottom-width pitch
border-collapse pitch-range
border-end-color play-during
border-end-precedence relative-position
border-end-style richness
border-end-width right
border-left-color role
border-left-style source-document
border-left-width space-after
border-right-color space-before
border-right-style speak
border-right-width speak-header
border-separation speak-numeral
border-start-color speak-punctuation
border-start-precedence speech-rate
border-start-style start-indent
border-start-width stress
border-top-color table-layout
border-top-style table-omit-footer-at-break
border-top-width table-omit-header-at-break
bottom top
break-after voice-family
break-before volume
cue-after width
cue-before writing-mode
elevation  
end-indent  
height  
id  
inline-progression-dimension  
intrusion-displace  

实例 1

一个简单的表格:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:table-and-caption> 

上面代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table-and-caption 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

下面列举了 9 个可以用来创建表格的 XSL-FO 对象:

  • fo:table-and-caption
  • fo:table
  • fo:table-caption
  • fo:table-column
  • fo:table-header
  • fo:table-footer
  • fo:table-body
  • fo:table-row
  • fo:table-cell

<fo:table-and-caption> 对象是一个包含所有表格对象的容器,它用于格式化表格及其标题。

<fo:table-and-caption> 对象包含了一个 <fo:table> 对象和一个可选的 <fo:caption> 对象。


语法

<fo:table-and-caption><!--Contents:(table-caption?,table)--></fo:table-and-caption> 

属性

属性 [A-J] 属性 [K-Z]
azimuth keep-together
background-attachment keep-with-next
background-color keep-with-previous
background-image left
background-repeat margin-bottom
background-position-horizontal margin-left
background-position-vertical margin-right
border-after-color margin-top
border-after-style padding-after
border-after-width padding-before
border-before-color padding-bottom
border-before-style padding-end
border-before-width padding-left
border-bottom-color padding-right
border-bottom-style padding-start
border-bottom-width padding-top
border-end-color pause-after
border-end-style pause-before
border-end-width pitch
border-left-color pitch-range
border-left-style play-during
border-left-width relative-position
border-right-color richness
border-right-style right
border-right-width role
border-start-color source-document
border-start-style space-after
border-start-width space-before
border-top-color speak
border-top-style speak-header
border-top-width speak-numeral
bottom speak-punctuation
break-after speech-rate
break-before start-indent
caption-side stress
cue-after text-align
cue-before top
elevation voice-family
end-indent volume
id  
intrusion-displace  

实例 1

一个简单的表格:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:table-and-caption> 

上面代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table-body 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:table-body> 对象是一个包含表格行和表格单元格的容器。


语法

<fo:table-body><!--Contents:(table-row+|table-cell+)--></fo:table-body> 

属性

注意:只有在表格的 border-collapse 值为 "collapse" 或 "collapse-with-precedence" 时,才允许使用 border 属性。

属性 [A-B] 属性 [C-Z]
azimuth cue-after
background-attachment cue-before
background-color elevation
background-image id
background-repeat left
background-position-horizontal pause-after
background-position-vertical pause-before
border-after-color pitch
border-after-precedence pitch-range
border-after-style play-during
border-after-width relative-position
border-before-color richness
border-before-precedence role
border-before-style right
border-before-width source-document
border-bottom-color speak
border-bottom-style speak-header
border-bottom-width speak-numeral
border-collapse speak-punctuation
border-end-color speech-rate
border-end-precedence stress
border-end-style top
border-end-width visibility
border-left-color voice-family
border-left-style volume
border-left-width  
border-right-color  
border-right-style  
border-right-width  
border-separation  
border-start-color  
border-start-precedence  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  
bottom  

实例 1

一个简单的表格:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:table-and-caption>

上面代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table-caption 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:table-caption> 对象包含了使用 <fo:table-and-caption> 对象定义的表格标题。


语法

<fo:table-caption><!--Contents:(block|block-container|list-block)+--></fo:table-caption>

属性

属性 [A-J] 属性 [K-Z]
azimuth keep-together
background-attachment left
background-color padding-after
background-image padding-before
background-repeat padding-bottom
background-position-horizontal padding-end
background-position-vertical padding-left
block-progression-dimension padding-right
border-after-color padding-start
border-after-style padding-top
border-after-width pause-after
border-before-color pause-before
border-before-style pitch
border-before-width pitch-range
border-bottom-color play-during
border-bottom-style relative-position
border-bottom-width richness
border-end-color right
border-end-style role
border-end-width source-document
border-left-color speak
border-left-style speak-header
border-left-width speak-numeral
border-right-color speak-punctuation
border-right-style speech-rate
border-right-width stress
border-start-color top
border-start-style voice-family
border-start-width volume
border-top-color width
border-top-style  
border-top-width  
bottom  
cue-after  
cue-before  
elevation  
height  
id  
inline-progression-dimension  
intrusion-displace  

实例 1

一个简单的表格:

<fo:table-and-caption><fo:table-caption><fo:block>Caption for this table</fo:block></fo:table-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:table-and-caption>

上面代码的输出如下所示:

表格的标题

Car Price
Volvo $50000
SAAB $48000


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table-cell 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:table-cell> 对象是一个包含表格单元格内容的容器。


语法

<fo:table-cell><!--Contents:(block|block-container|table-and-caption|table|list-block)+--></fo:table-cell> 

属性

属性 [A-C] 属性 [D-Z]
azimuth display-align
background-attachment elevation
background-color empty-cells
background-image ends-row
background-repeat height
background-position-horizontal id
background-position-vertical inline-progression-dimension
block-progression-dimension left
border-after-color number-columns-spanned
border-after-precedence number-rows-spanned
border-after-style padding-after
border-after-width padding-before
border-before-color padding-bottom
border-before-precedence padding-end
border-before-style padding-left
border-before-width padding-right
border-bottom-color padding-start
border-bottom-style padding-top
border-bottom-width pause-after
border-end-color pause-before
border-end-precedence pitch
border-end-style pitch-range
border-end-width play-during
border-left-color relative align
border-left-style relative-position
border-left-width richness
border-right-color right
border-right-style role
border-right-width source-document
border-start-color speak
border-start-precedence speak-header
border-start-style speak-numeral
border-start-width speak-punctuation
border-top-color speech-rate
border-top-style starts-row
border-top-width stress
bottom top
column-number voice-family
cue-after volume
cue-before width

实例 1

一个简单的表格:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:table-and-caption> 

上面代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table-column 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:table-column> 对象用于规定位于同一列的表格单元格特征属性。

该对象中最重要的属性是 "column-width"。


语法

<fo:table-column><!--Contents:EMPTY--></fo:table-column>

属性

注意:只有在表格的 border-collapse 值为 "collapse" 或 "collapse-with-precedence" 时,才允许使用 border 属性。

属性
background-attachment
background-color
background-image
background-repeat
background-position-horizontal
background-position-vertical
border-after-color
border-after-precedence
border-after-style
border-after-width
border-before-color
border-before-precedence
border-before-style
border-before-width
border-bottom-color
border-bottom-style
border-bottom-width
border-collapse
border-end-color
border-end-precedence
border-end-style
border-end-width
border-left-color
border-left-style
border-left-width
border-right-color
border-right-style
border-right-width
border-separation
border-start-color
border-start-precedence
border-start-style
border-start-width
border-top-color
border-top-style
border-top-width
column-number
column-width
number-columns-repeated
number-columns-spanned
visibility

实例 1

一个简单的表格:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:table-and-caption>

上面代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table-footer 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:table-footer> 对象包含了表格页脚的内容。


语法

<fo:table-footer><!--Contents:(table-row+|table-cell+)--></fo:table-footer>

属性

注意:只有在表格的 border-collapse 值为 "collapse" 或 "collapse-with-precedence" 时,才允许使用 border 属性。

属性 [A-B] 属性 [C-Z]
azimuth cue-after
background-attachment cue-before
background-color elevation
background-image id
background-repeat left
background-position-horizontal pause-after
background-position-vertical pause-before
border-after-color pitch
border-after-precedence pitch-range
border-after-style play-during
border-after-width relative-position
border-before-color richness
border-before-precedence right
border-before-style role
border-before-width source-document
border-bottom-color speak
border-bottom-style speak-header
border-bottom-width speak-numeral
border-collapse speak-punctuation
border-end-color speech-rate
border-end-precedence stress
border-end-style top
border-end-width visibility
border-left-color voice-family
border-left-style volume
border-left-width  
border-right-color  
border-right-style  
border-right-width  
border-separation  
border-start-color  
border-start-precedence  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  
bottom  

实例 1

一个简单的表格:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body><fo:table-footer><fo:table-cell><fo:block font-weight="bold">Some text</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Some text</fo:block></fo:table-cell></fo:table-footer></fo:table></fo:table-and-caption>

上面代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000
Some text Some text


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table-header 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:table-header> 对象包含了表格页眉的内容。


语法

<fo:table-header><!--Contents:(table-row+|table-cell+)--></fo:table-header> 

属性

注意:只有在表格的 border-collapse 值为 "collapse" 或 "collapse-with-precedence" 时,才允许使用 border 属性。

属性 [A-B] 属性 [C-Z]
azimuth cue-after
background-attachment cue-before
background-color elevation
background-image id
background-repeat left
background-position-horizontal pause-after
background-position-vertical pause-before
border-after-color pitch
border-after-precedence pitch-range
border-after-style play-during
border-after-width relative-position
border-before-color richness
border-before-precedence right
border-before-style role
border-before-width source-document
border-bottom-color speak
border-bottom-style speak-header
border-bottom-width speak-numeral
border-collapse speak-punctuation
border-end-color speech-rate
border-end-precedence stress
border-end-style top
border-end-width visibility
border-left-color voice-family
border-left-style volume
border-left-width  
border-right-color  
border-right-style  
border-right-width  
border-separation  
border-start-color  
border-start-precedence  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  
bottom  

实例 1

一个简单的表格:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body><fo:table-footer><fo:table-cell><fo:block font-weight="bold">Some text</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Some text</fo:block></fo:table-cell></fo:table-footer></fo:table></fo:table-and-caption>

上面代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000
Some text Some text


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO table-row 对象

XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO 中表格的行通过 table-row 对象定义。


定义和用法

<fo:table-row> 对象定义表格行。


语法

<fo:table-row><!--Contents:(table-cell+)--></fo:table-row> 

属性

注意:只有在表格的 border-collapse 值为 "collapse" 或 "collapse-with-precedence" 时,才允许使用 border 属性。

属性 [A-B] 属性 [C-Z]
azimuth cue-after
background-attachment cue-before
background-color elevation
background-image height
background-repeat id
background-position-horizontal keep-together
background-position-vertical keep-with-next
block-progression-dimension keep-with-previous
border-after-color left
border-after-precedence pause-after
border-after-style pause-before
border-after-width pitch
border-before-color pitch-range
border-before-precedence play-during
border-before-style relative-position
border-before-width richness
border-bottom-color right
border-bottom-style role
border-bottom-width source-document
border-collapse speak
border-end-color speak-header
border-end-precedence speak-numeral
border-end-style speak-punctuation
border-end-width speech-rate
border-left-color stress
border-left-style top
border-left-width visibility
border-right-color voice-family
border-right-style volume
border-right-width  
border-separation  
border-start-color  
border-start-precedence  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  
bottom  
break-after  
break-before  

实例

一个简单的表格:

<fo:table-and-caption><fo:table><fo:table-column column-width="25mm"/><fo:table-column column-width="25mm"/><fo:table-header><fo:table-cell><fo:block font-weight="bold">Car</fo:block></fo:table-cell><fo:table-cell><fo:block font-weight="bold">Price</fo:block></fo:table-cell></fo:table-header><fo:table-body><fo:table-row><fo:table-cell><fo:block>Volvo</fo:block></fo:table-cell><fo:table-cell><fo:block>$50000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>SAAB</fo:block></fo:table-cell><fo:table-cell><fo:block>$48000</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:table-and-caption>

上面代码的输出如下所示:

Car Price
Volvo $50000
SAAB $48000


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO title 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:title> 对象为一个 page-sequence 定义一个标题。该标题是用于标识页面的。举个例子来说,标题内容可以在 "title" 窗口中或在"tool tip[工具栏]" 中显示。


语法

<fo:title><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|inline-container|leader|page-number|page-number-citation|basic-link|multi-toggle)*--></fo:title>

属性

属性 [A-K] 属性 [L-Z]
azimuth line-height
background-attachment margin-bottom
background-color margin-left
background-image margin-right
background-repeat margin-top
background-position-horizontal padding-after
background-position-vertical padding-before
border-after-color padding-bottom
border-after-style padding-end
border-after-width padding-left
border-before-color padding-right
border-before-style padding-start
border-before-width padding-top
border-bottom-color pause-after
border-bottom-style pause-before
border-bottom-width pitch
border-end-color pitch-range
border-end-style play-during
border-end-width richness
border-left-color role
border-left-style source-document
border-left-width space-end
border-right-color space-start
border-right-style speak
border-right-width speak-header
border-start-color speak-numeral
border-start-style speak-punctuation
border-start-width speech-rate
border-top-color stress
border-top-style visibility
border-top-width voice-family
color volume
cue-after  
cue-before  
elevation  
font-family  
font-selection-strategy  
font-size  
font-size-adjust  
font-stretch  
font-style  
font-variant  
font-weight  


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO wrapper 对象

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

<fo:wrapper> 对象为一组 XSL-FO 对象规定 inherited[继承] 属性。

<fo:wrapper> 仅能包含子类对象(该子类对象必须是其父类对象中所允许使用的子类对象)。


语法

<fo:wrapper><!--Contents:(#PCDATA|bidi-override|character|external-graphic|instream-foreign-object|inline|inline-container|leader|page-number|page-number-citation|basic-link|multi-toggle|block|block-container|table-and-caption|table|list-block)*--></fo:wrapper>

属性

属性
id


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO azimuth 属性

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

azimuth属性仅能用于Aural StylesheetsAural Stylesheets(音频样式表)

对文档的音频描述包含自然声音和人为发出的声音,它贯穿于整个文本的内容。音频通常通过将文档转化为无格式文本,并将它输入一个屏幕浏览器中产生。

需要制作音频信息的原因如下:

  • 帮助盲人理解
  • 开车时
  • 帮助用户阅读

方位和高度是音频的重要属性。这些属性用于保存部分声音片断。在现实生活中,所有人不可能位于一个房间内的同一个点。

azimuth属性用于指定了声音发出的方向。


详情

  • 继承性:允许
  • 百分比:N/A
  • 媒体类型:音频

属性值

说明
angle

指定一个从-360度到360度的方位值。

  • 0度指明位于中央前部
  • 90度指明向右
  • 180度指明中央后部
  • 270度指明向左
left-side 270度或在270度之后
far-left 300度或在240度之后
left 320度或在220度之后
center-left 340度或在200度之后
center 默认值。0度或在180度之后
center-right 20度或在160度之后
right 40度或在140度之后
far-right 60度或在120度之后
right-side 90度或在90度之后
leftwards 左音箱发声
rightwards 右音箱发声


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO background-attachment 属性

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

background-attachment属性的作用是:定义背景图像是固定的还是随滚动条滚动而滚动的。


详情

  • 继承性:不可
  • 百分比:N/A
  • 媒体类型:可视化

属性值

说明
scroll 默认值。指定背景图像是随滚动条滚动而滚动的
fixed 指定背景图像是固定的


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO keep-with-previous 属性

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

keep-with-previous属性在XSL-FO对象中创建keep-with-previous 条件。


详情

  • 继承性:允许
  • 百分比:N/A
  • 媒体类型:视频

属性值

说明
auto 默认值。不创建keep-with-previous 条件
always 创建keep-with-previous 条件为:"always"强度
integer 创建keep-with-previous 条件为:"一个给定的整数"强度


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO keep-with-next 属性

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

keep-with-next属性在XSL-FO对象中创建keep-with-next 条件。


详情

  • 继承性:允许
  • 百分比:N/A
  • 媒体类型:视频

属性值

说明
auto 默认值。不创建keep-with-next 条件
always 创建keep-with-next 条件为:"always"强度
integer 创建keep-with-next 条件为:"一个给定的整数"强度


XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO keep-together 属性

XSL-FO 参考手册 XSL-FO 参考手册

定义和用法

keep-together 属性用于在XSL-FO对象中创建keep-together条件。


详情

  • 继承性:允许
  • 百分比:N/A
  • 媒体类型:视频

属性值

说明
auto 默认值。不创建keep-together 条件
always 创建keep-together 条件为:"always"强度
integer 创建keep-together 条件为:"一个给定的整数"强度


XSL-FO 参考手册 XSL-FO 参考手册