XSL-FO 全称为 Extensible Stylesheet Language Formatting Objects(格式化对象的可扩展样式表语言)。
XSL-FO 用于格式化供输出的 XML 数据。
在您学习 XSL-FO 之前,应当对 XML 和 XML 命名空间有基本的了解。
如果您希望首先学习这些项目,请阅读我们的 XML 教程。
XSL-FO 是一种基于 XML 的标记语言,用于描述向屏幕、纸或者其他媒介输出 XML 数据的格式化(信息)。
为什么会存在这样的混淆呢?XSL-FO 和 XSL 是一回事吗?
可以这么说,不过我们需要向您作一个解释:
样式化(Styling)是关于转换信息和格式化信息两方面。在万维网联盟(W3C)编写他们的首个 XSL 工作草案的时候,这个草案包括了有关转换和格式化 XML 文档的语言语法。
后来,W3C 工作组把这个原始的草案分为独立的标准:
本教程的其余内容均与格式化 XML 文档有关:XSL-FO,也被称为 XSL。
XSL-FO 在 2001 年 10 月 15 日 被确立为 W3C 推荐标准。通常被称为 XSL。
如需阅读更多有关 W3C 的 XSL 活动的内容,请阅读我们的 W3C 教程。
在下一节内容中,我们将开始学习 XSL-FO 的使用。
本节为你介绍 XSL-FO 文档。
XSL-FO 文档是带有输出信息的 XML 文件。
XSL-FO 文档存储在以 .fo 或 .fob 为文件扩展名的文件中。您也可以把 XSL-FO 文档存储为以 .xml 为扩展名的文件,这样做的话可以使 XSL-FO 文档更易被 XML 编辑器存取。
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" 等等。
XSL-FO 使用矩形框(区域)来显示输出。
XSL 格式化模型定义了一系列的矩形区域(框)来显示输出。
所有的输出(文本、图片,等等)都会被格式化到这些框中,然后会被显示或打印到某个目标媒介。
让我们研究一下下面这些区域:
XSL-FO 输出会被格式化到页面中。打印输出通常会分为许多分割的页面。浏览器输出经常会成为一个长的页面。
XSL-FO Pages(页面)包含区(Region)。
每个 XSL-FO 页面均包含一系列的 Regions(区):
XSL-FO Regions(区)包含块区域(Block Area)。
XSL-FO Block Areas(块区域)定义了小的块元素(通常由一个新行开始),比如段落、表格以及列表。
XSL-FO Block Areas(块区域)包含其他的块区域,不过大多数时候它们包含的是行区域(Line Area)。
XSL-FO Line Areas(行区域)定义了块区域内部的文本行。
XSL-FO Line Areas(行区域)包含行内区域(Inline Area)。
XSL-FO Inline Areas(行内区域)定义了行内部的文本(着重号、单字符、图像,等等)。
通过本节你了解了 XSL-FO 的区域的作用与属性,在下一节内容中,一起来掌握与 XSL-FO 输出相关的知识。
XSL-FO 在 <fo:flow> 元素内部定义输出。
内容"块"会"流"入"页面"中,然后输出到媒介。
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 实例:
<?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 页面使用来自 <fo:flow> 元素的数据进行填充。
XSL-FO 使用 <fo:page-sequence> 元素来定义输出页面。
每个输出页面都会引用一个定义布局的 page master。
每个输出页面都有一个定义输出的 <fo:flow> 元素。
每个输出页面均会按序列(顺序)被打印或显示。
XSL-FO 页面使用来自 <fo:flow> 元素的内容进行填充。
<fo:flow> 元素包含所有被打印到页面的元素。
当页面被印满以后,相同的 page master 会被一遍又一遍地被使用,直到所有文本被打印为止。
<fo:flow> 元素有一个 "flow-name" 属性。
flow-name 属性的值定义 <fo:flow> 元素的内容会去往何处。
合法的值:
在下一节内容中,我们将为你讲解 XSL-FO 的页面。
XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。
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 使用下面的属性定义页面的尺寸:
XSL-FO 使用下面的属性定义页面的边距:
提示:你可以在本站的“CSS属性”中了解更多与页面边距属性相关的知识!
XSL-FO 使用下面的元素定义页面的区:
请注意,region-before、region-after、region-start 以及 region-end 是主体区的一部分。为了避免主体区的文本覆盖到这些区域的文本,主体区的边距至少要等于其他区的尺寸。
这是从某个 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 输出通常被嵌套在 <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 是位于 border 与 content 区域之间的区域。
content 区域可包含实际的内容,比如文本、图片、图形等等。
边框样式属性:
边框颜色属性:
边框宽度属性:
块是可被单独样式化的输出序列:
<fo:block font-size="12pt" font-family="sans-serif">This block of output will be written in a 12pt sans-serif font.</fo:block>
字体属性:
文本属性:
<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。
在 XSL-FO 中,怎么定义列表?
XSL-FO 使用 <fo:list-block> 元素来定义列表。
有四种 XSL-FO 对象可用来创建列表:
一个 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 使用 <fo:table-and-caption> 元素来定义表格。
XSL-FO 表格模型与 HTML 表格模型不是完全不同的。
有九种 XSL-FO 对象可用来创建表格:
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 |
本节为你介绍 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 块区域的那一章节。
从文档移除 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 的介绍内容。
XSL-FO 需要格式化软件来产生输出。
一个 XSL-FO 处理器是一个用于格式化输出 XSL 文档的软件程序。
大多数的 XSL-FO 处理器可以输出 HTML、PDF 文档和质量打印。
下面介绍一些知名的 XSL-FO 处理器。
Antenna House Formatter V5 是为 PDF 或打印格式化 XML 文档的软件程序。
StyleVision 基于您的设计自动生成一致性标准的 XSLT 和 XSL:FO 样式表,以及相应的 HTML、RTF、PDF、 Word 2007 输出,等等。
XSL-FO 格式化的一些产品!
将描述转换为呈现的过程被称为格式化(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 全称为 Extensible Stylesheet Language Formatting Objects(格式化对象的可扩展样式表语言)。
XSL-FO 用于格式化供输出的 XML 数据。
在您学习 XSL-FO 之前,应当对 XML 和 XML 命名空间有基本的了解。
如果您希望首先学习这些项目,请阅读我们的 XML 教程。
XSL-FO 是一种基于 XML 的标记语言,用于描述向屏幕、纸或者其他媒介输出 XML 数据的格式化(信息)。
为什么会存在这样的混淆呢?XSL-FO 和 XSL 是一回事吗?
可以这么说,不过我们需要向您作一个解释:
样式化(Styling)是关于转换信息和格式化信息两方面。在万维网联盟(W3C)编写他们的首个 XSL 工作草案的时候,这个草案包括了有关转换和格式化 XML 文档的语言语法。
后来,W3C 工作组把这个原始的草案分为独立的标准:
本教程的其余内容均与格式化 XML 文档有关:XSL-FO,也被称为 XSL。
XSL-FO 在 2001 年 10 月 15 日 被确立为 W3C 推荐标准。通常被称为 XSL。
如需阅读更多有关 W3C 的 XSL 活动的内容,请阅读我们的 W3C 教程。
在下一节内容中,我们将开始学习 XSL-FO 的使用。
本节为你介绍 XSL-FO 文档。
XSL-FO 文档是带有输出信息的 XML 文件。
XSL-FO 文档存储在以 .fo 或 .fob 为文件扩展名的文件中。您也可以把 XSL-FO 文档存储为以 .xml 为扩展名的文件,这样做的话可以使 XSL-FO 文档更易被 XML 编辑器存取。
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" 等等。
XSL-FO 使用矩形框(区域)来显示输出。
XSL 格式化模型定义了一系列的矩形区域(框)来显示输出。
所有的输出(文本、图片,等等)都会被格式化到这些框中,然后会被显示或打印到某个目标媒介。
让我们研究一下下面这些区域:
XSL-FO 输出会被格式化到页面中。打印输出通常会分为许多分割的页面。浏览器输出经常会成为一个长的页面。
XSL-FO Pages(页面)包含区(Region)。
每个 XSL-FO 页面均包含一系列的 Regions(区):
XSL-FO Regions(区)包含块区域(Block Area)。
XSL-FO Block Areas(块区域)定义了小的块元素(通常由一个新行开始),比如段落、表格以及列表。
XSL-FO Block Areas(块区域)包含其他的块区域,不过大多数时候它们包含的是行区域(Line Area)。
XSL-FO Line Areas(行区域)定义了块区域内部的文本行。
XSL-FO Line Areas(行区域)包含行内区域(Inline Area)。
XSL-FO Inline Areas(行内区域)定义了行内部的文本(着重号、单字符、图像,等等)。
通过本节你了解了 XSL-FO 的区域的作用与属性,在下一节内容中,一起来掌握与 XSL-FO 输出相关的知识。
XSL-FO 在 <fo:flow> 元素内部定义输出。
内容"块"会"流"入"页面"中,然后输出到媒介。
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 实例:
<?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 页面使用来自 <fo:flow> 元素的数据进行填充。
XSL-FO 使用 <fo:page-sequence> 元素来定义输出页面。
每个输出页面都会引用一个定义布局的 page master。
每个输出页面都有一个定义输出的 <fo:flow> 元素。
每个输出页面均会按序列(顺序)被打印或显示。
XSL-FO 页面使用来自 <fo:flow> 元素的内容进行填充。
<fo:flow> 元素包含所有被打印到页面的元素。
当页面被印满以后,相同的 page master 会被一遍又一遍地被使用,直到所有文本被打印为止。
<fo:flow> 元素有一个 "flow-name" 属性。
flow-name 属性的值定义 <fo:flow> 元素的内容会去往何处。
合法的值:
在下一节内容中,我们将为你讲解 XSL-FO 的页面。
XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。
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 使用下面的属性定义页面的尺寸:
XSL-FO 使用下面的属性定义页面的边距:
提示:你可以在本站的“CSS属性”中了解更多与页面边距属性相关的知识!
XSL-FO 使用下面的元素定义页面的区:
请注意,region-before、region-after、region-start 以及 region-end 是主体区的一部分。为了避免主体区的文本覆盖到这些区域的文本,主体区的边距至少要等于其他区的尺寸。
这是从某个 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 输出通常被嵌套在 <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 是位于 border 与 content 区域之间的区域。
content 区域可包含实际的内容,比如文本、图片、图形等等。
边框样式属性:
边框颜色属性:
边框宽度属性:
块是可被单独样式化的输出序列:
<fo:block font-size="12pt" font-family="sans-serif">This block of output will be written in a 12pt sans-serif font.</fo:block>
字体属性:
文本属性:
<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。
在 XSL-FO 中,怎么定义列表?
XSL-FO 使用 <fo:list-block> 元素来定义列表。
有四种 XSL-FO 对象可用来创建列表:
一个 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 使用 <fo:table-and-caption> 元素来定义表格。
XSL-FO 表格模型与 HTML 表格模型不是完全不同的。
有九种 XSL-FO 对象可用来创建表格:
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 |
本节为你介绍 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 块区域的那一章节。
从文档移除 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 的介绍内容。
XSL-FO 需要格式化软件来产生输出。
一个 XSL-FO 处理器是一个用于格式化输出 XSL 文档的软件程序。
大多数的 XSL-FO 处理器可以输出 HTML、PDF 文档和质量打印。
下面介绍一些知名的 XSL-FO 处理器。
Antenna House Formatter V5 是为 PDF 或打印格式化 XML 文档的软件程序。
StyleVision 基于您的设计自动生成一致性标准的 XSLT 和 XSL:FO 样式表,以及相应的 HTML、RTF、PDF、 Word 2007 输出,等等。
XSL-FO 格式化的一些产品!
将描述转换为呈现的过程被称为格式化(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 对象,你将了解该对象的定义、语法以及属性。
<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 中的 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 中的 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 |
块是矩形框中的输出序列:
<fo:blockborder-width="1mm">This block of output will have a one millimeter border around it.</fo:block>
块是可独立样式化的输出序列:
<fo:blockfont-size="12pt"font-family="sans-serif">This block of output will be written in a 12pt sans-serif font.</fo:block>
<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>
结果:
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 中的 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 |
在本节中,你将了解 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 中 color-profile 对象的作用是什么?请参考本节内容。
<fo:color-profile> 对象定义样式表的一个颜色配置文件。
颜色配置文件是通过 "color-profile-name" 属性中的名称引用,并通过 "src" 属性中的 URI 标识。
<fo:color-profile><!--Contents:EMPTY--></fo:color-profile>
属性 |
---|
color-profile-name |
rendering-intent |
src |
<fo:conditional-page-master-reference> 对象对象规定一个当所定义的条件成立时使用的 page-maste。
这使得不同的页面可以使用不同的 page-masters。(比如,偶数和奇数页面、第一个页面、空白页。)
三个属性,odd-or-even、blank-or-not-blank、page-postion 规定条件。所有三个条件都成立时,<fo:conditional-page-master-reference> 成立。
<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 declarations 对象的定义与语法。
<fo:declarations> 对象用于组合样式表的全局声明。
<fo:declarations> 对象是一个对象的包装,其内容是用于格式化程序的一种资源。
<fo:declarations><!--Contents:(color-profile)+--></fo:declarations>
无
<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 |
通过本节,你将了解 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 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 |
一个"真实的" 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 |
<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 |
<fo:footnote-body> 对象定义脚注的内容。
<fo:footnote-body><!--Contents:(block|block-container|table-and-caption|table|list-block)+--></fo:footnote-body>
属性 |
---|
role |
source-document |
本节介绍 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 |
<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 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 |
<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 |
<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>
无
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>
<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 |
<fo:list-block> 对象用于格式化整个列表。
下面列举了四个用于创建列表的 XSL-FO 对象:
<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 |
一个 XSL-FO 列表实例:
上面代码将输出:
* Volvo * Saab |
你可以对 XSL-FO 中的列表的每个项使用 list-item 对象。
<fo:list-item> 对象用于列表中的每个项。
下面列举了四个用于创建列表的 XSL-FO 对象:
<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 |
一个 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 |
<fo:list-item-body> 对象包含了 list-item 的内容/主体 - 通常是一个或多个 <fo:block> 对象。
下面列举了四个用于创建列表的 XSL-FO 对象:
<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 |
一个 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 |
你可以使用 list-item-label 对象设置 list-item 的标签。
<fo:list-item-label> 对象包含了 list-item 标签 - 通常情况下,<fo:block> 包含数字、字符等。
下面列举了四个用于创建列表的 XSL-FO 对象:
<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 |
一个 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 |
<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 |
<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 的 multi-properties 对象。
<fo:multi-properties> 对象用于两个或多个属性集之间切换。
该对象可用于给一部分内容呈现不同的布局。比如:当链接从未访问变成已访问,布局会改变(这是通过改变属性集来完成的)。注意:在改变引起文本回流的属性时要格外小心。像 "color" 或 "text-decoration" 这样的属性不会导致文本回流。
<fo:multi-properties><!--Contents:(multi-property-set+,wrapper)--></fo:multi-properties>
属性 |
---|
id |
role |
source-document |
<fo:multi-property-set> 对象规定一个用于交替出现的格式化属性的可选集合。
<fo:multi-property-set><!--Contents:EMPTY--></fo:multi-property-set>
属性 |
---|
active-state |
id |
<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 |
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 |
如何显示当前的页码?你可以使用 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 |
<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 |
本节介绍 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 |
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 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 |
<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 |
<fo:region-after> 对象定义了页面的底部区域(页脚)。
XSL-FO 使用下列元素来定义页面的区域:
注意: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 |
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 文档中提取的一个片断:
<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)是主体的组成部分。
<fo:region-before> 对象定义了页面的顶部区域(页眉)。
XSL-FO 使用下列元素来定义页面的区域:
注意: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 |
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 文档中提取的一个片断:
<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 的时候,一个页面的主体区域是通过 region-body 对象定义的。
<fo:region-body> 对象定义了页面的主体区域。
XSL-FO 使用下列元素来定义页面的区域:
注意: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 |
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 文档中提取的一个片断:
<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)是主体的组成部分。
在一个页面的区域组成中,页面的右部由 region-end 对象定义。
<fo:region-end> 对象定义了页面的右部区域(右侧栏)。
XSL-FO 使用下列元素来定义页面的区域:
注意: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 |
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 文档中提取的一个片断:
<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 中,页面的左侧栏由 region-start 对象定义。
<fo:region-start> 对象定义了页面的左部区域(左侧栏)。
XSL-FO 使用下列元素来定义页面的区域:
注意: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 |
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 文档中提取的一个片断:
<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)是主体的组成部分。
<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 |
<fo:repeatable-page-master-reference> 对象规定单个 simple-page-master 的副本。
<fo:repeatable-page-master-reference><!--Contents:EMPTY--></fo:repeatable-page-master-reference>
属性 |
---|
master-reference |
maximum-repeats |
<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 |
<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 |
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>
<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 |
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 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
|
<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 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 |
<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 |
一个简单的表格:
<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 |
下面列举了 9 个可以用来创建表格的 XSL-FO 对象:
<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 |
一个简单的表格:
<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 |
<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 |
一个简单的表格:
<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 |
<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 |
一个简单的表格:
<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 |
<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 |
一个简单的表格:
<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 |
<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 |
一个简单的表格:
<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 |
<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 |
一个简单的表格:
<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 |
<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 |
一个简单的表格:
<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 中表格的行通过 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 |
<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 |
<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 |
azimuth属性仅能用于Aural StylesheetsAural Stylesheets(音频样式表)。
对文档的音频描述包含自然声音和人为发出的声音,它贯穿于整个文本的内容。音频通常通过将文档转化为无格式文本,并将它输入一个屏幕浏览器中产生。
需要制作音频信息的原因如下:
方位和高度是音频的重要属性。这些属性用于保存部分声音片断。在现实生活中,所有人不可能位于一个房间内的同一个点。
azimuth属性用于指定了声音发出的方向。
值 | 说明 |
---|---|
angle | 指定一个从-360度到360度的方位值。
|
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 | 右音箱发声 |
background-attachment属性的作用是:定义背景图像是固定的还是随滚动条滚动而滚动的。
值 | 说明 |
---|---|
scroll | 默认值。指定背景图像是随滚动条滚动而滚动的 |
fixed | 指定背景图像是固定的 |
keep-with-previous属性在XSL-FO对象中创建keep-with-previous 条件。
值 | 说明 |
---|---|
auto | 默认值。不创建keep-with-previous 条件 |
always | 创建keep-with-previous 条件为:"always"强度 |
integer | 创建keep-with-previous 条件为:"一个给定的整数"强度 |
keep-with-next属性在XSL-FO对象中创建keep-with-next 条件。
值 | 说明 |
---|---|
auto | 默认值。不创建keep-with-next 条件 |
always | 创建keep-with-next 条件为:"always"强度 |
integer | 创建keep-with-next 条件为:"一个给定的整数"强度 |
keep-together 属性用于在XSL-FO对象中创建keep-together条件。
值 | 说明 |
---|---|
auto | 默认值。不创建keep-together 条件 |
always | 创建keep-together 条件为:"always"强度 |
integer | 创建keep-together 条件为:"一个给定的整数"强度 |
本节介绍的是 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 中的 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 中的 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 |
块是矩形框中的输出序列:
<fo:blockborder-width="1mm">This block of output will have a one millimeter border around it.</fo:block>
块是可独立样式化的输出序列:
<fo:blockfont-size="12pt"font-family="sans-serif">This block of output will be written in a 12pt sans-serif font.</fo:block>
<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>
结果:
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 中的 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 |
在本节中,你将了解 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 中 color-profile 对象的作用是什么?请参考本节内容。
<fo:color-profile> 对象定义样式表的一个颜色配置文件。
颜色配置文件是通过 "color-profile-name" 属性中的名称引用,并通过 "src" 属性中的 URI 标识。
<fo:color-profile><!--Contents:EMPTY--></fo:color-profile>
属性 |
---|
color-profile-name |
rendering-intent |
src |
<fo:conditional-page-master-reference> 对象对象规定一个当所定义的条件成立时使用的 page-maste。
这使得不同的页面可以使用不同的 page-masters。(比如,偶数和奇数页面、第一个页面、空白页。)
三个属性,odd-or-even、blank-or-not-blank、page-postion 规定条件。所有三个条件都成立时,<fo:conditional-page-master-reference> 成立。
<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 declarations 对象的定义与语法。
<fo:declarations> 对象用于组合样式表的全局声明。
<fo:declarations> 对象是一个对象的包装,其内容是用于格式化程序的一种资源。
<fo:declarations><!--Contents:(color-profile)+--></fo:declarations>
无
<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 |
通过本节,你将了解 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 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 |
一个"真实的" 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 |
<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 |
<fo:footnote-body> 对象定义脚注的内容。
<fo:footnote-body><!--Contents:(block|block-container|table-and-caption|table|list-block)+--></fo:footnote-body>
属性 |
---|
role |
source-document |
本节介绍 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 |
<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 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 |
<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 |
<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>
无
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>
<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 |
<fo:list-block> 对象用于格式化整个列表。
下面列举了四个用于创建列表的 XSL-FO 对象:
<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 |
一个 XSL-FO 列表实例:
上面代码将输出:
* Volvo * Saab |
你可以对 XSL-FO 中的列表的每个项使用 list-item 对象。
<fo:list-item> 对象用于列表中的每个项。
下面列举了四个用于创建列表的 XSL-FO 对象:
<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 |
一个 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 |
<fo:list-item-body> 对象包含了 list-item 的内容/主体 - 通常是一个或多个 <fo:block> 对象。
下面列举了四个用于创建列表的 XSL-FO 对象:
<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 |
一个 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 |
你可以使用 list-item-label 对象设置 list-item 的标签。
<fo:list-item-label> 对象包含了 list-item 标签 - 通常情况下,<fo:block> 包含数字、字符等。
下面列举了四个用于创建列表的 XSL-FO 对象:
<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 |
一个 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 |
<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 |
<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 的 multi-properties 对象。
<fo:multi-properties> 对象用于两个或多个属性集之间切换。
该对象可用于给一部分内容呈现不同的布局。比如:当链接从未访问变成已访问,布局会改变(这是通过改变属性集来完成的)。注意:在改变引起文本回流的属性时要格外小心。像 "color" 或 "text-decoration" 这样的属性不会导致文本回流。
<fo:multi-properties><!--Contents:(multi-property-set+,wrapper)--></fo:multi-properties>
属性 |
---|
id |
role |
source-document |
<fo:multi-property-set> 对象规定一个用于交替出现的格式化属性的可选集合。
<fo:multi-property-set><!--Contents:EMPTY--></fo:multi-property-set>
属性 |
---|
active-state |
id |
<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 |
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 |
如何显示当前的页码?你可以使用 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 |
<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 |
本节介绍 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 |
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 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 |
<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 |
<fo:region-after> 对象定义了页面的底部区域(页脚)。
XSL-FO 使用下列元素来定义页面的区域:
注意: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 |
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 文档中提取的一个片断:
<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)是主体的组成部分。
<fo:region-before> 对象定义了页面的顶部区域(页眉)。
XSL-FO 使用下列元素来定义页面的区域:
注意: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 |
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 文档中提取的一个片断:
<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 的时候,一个页面的主体区域是通过 region-body 对象定义的。
<fo:region-body> 对象定义了页面的主体区域。
XSL-FO 使用下列元素来定义页面的区域:
注意: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 |
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 文档中提取的一个片断:
<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)是主体的组成部分。
在一个页面的区域组成中,页面的右部由 region-end 对象定义。
<fo:region-end> 对象定义了页面的右部区域(右侧栏)。
XSL-FO 使用下列元素来定义页面的区域:
注意: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 |
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 文档中提取的一个片断:
<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 中,页面的左侧栏由 region-start 对象定义。
<fo:region-start> 对象定义了页面的左部区域(左侧栏)。
XSL-FO 使用下列元素来定义页面的区域:
注意: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 |
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 文档中提取的一个片断:
<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)是主体的组成部分。
<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 |
<fo:repeatable-page-master-reference> 对象规定单个 simple-page-master 的副本。
<fo:repeatable-page-master-reference><!--Contents:EMPTY--></fo:repeatable-page-master-reference>
属性 |
---|
master-reference |
maximum-repeats |
<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 |
<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 |
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>
<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 |
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 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
|
<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 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 |
<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 |
一个简单的表格:
<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 |
下面列举了 9 个可以用来创建表格的 XSL-FO 对象:
<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 |
一个简单的表格:
<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 |
<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 |
一个简单的表格:
<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 |
<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 |
一个简单的表格:
<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 |
<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 |
一个简单的表格:
<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 |
<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 |
一个简单的表格:
<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 |
<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 |
一个简单的表格:
<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 |
<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 |
一个简单的表格:
<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 中表格的行通过 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 |
<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 |
<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 |
azimuth属性仅能用于Aural StylesheetsAural Stylesheets(音频样式表)。
对文档的音频描述包含自然声音和人为发出的声音,它贯穿于整个文本的内容。音频通常通过将文档转化为无格式文本,并将它输入一个屏幕浏览器中产生。
需要制作音频信息的原因如下:
方位和高度是音频的重要属性。这些属性用于保存部分声音片断。在现实生活中,所有人不可能位于一个房间内的同一个点。
azimuth属性用于指定了声音发出的方向。
值 | 说明 |
---|---|
angle | 指定一个从-360度到360度的方位值。
|
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 | 右音箱发声 |
background-attachment属性的作用是:定义背景图像是固定的还是随滚动条滚动而滚动的。
值 | 说明 |
---|---|
scroll | 默认值。指定背景图像是随滚动条滚动而滚动的 |
fixed | 指定背景图像是固定的 |
keep-with-previous属性在XSL-FO对象中创建keep-with-previous 条件。
值 | 说明 |
---|---|
auto | 默认值。不创建keep-with-previous 条件 |
always | 创建keep-with-previous 条件为:"always"强度 |
integer | 创建keep-with-previous 条件为:"一个给定的整数"强度 |
keep-with-next属性在XSL-FO对象中创建keep-with-next 条件。
值 | 说明 |
---|---|
auto | 默认值。不创建keep-with-next 条件 |
always | 创建keep-with-next 条件为:"always"强度 |
integer | 创建keep-with-next 条件为:"一个给定的整数"强度 |
keep-together 属性用于在XSL-FO对象中创建keep-together条件。
值 | 说明 |
---|---|
auto | 默认值。不创建keep-together 条件 |
always | 创建keep-together 条件为:"always"强度 |
integer | 创建keep-together 条件为:"一个给定的整数"强度 |