XSL-FO 表格学习笔记

什么是 XSL-FO

XSL-FO(eXtensible Stylesheet Language Formatting Objects)是一种用于描述和格式化 XML 文档的语言,主要用于生成可打印的内容,例如 PDF 文件。

XSL-FO 与 CSS 相似,但是 XSL-FO 的功能更加强大,可以描述很多 CSS 无法描述的复杂版面布局和排版效果。

XSL-FO 表格基础

创建表格

要创建一个简单的表格,我们需要使用 <fo:table> 元素和其中的 <fo:table-row><fo:table-cell> 元素。

xmlCopy Code
<fo:table> <fo:table-row> <fo:table-cell> <!-- 第一列 --> </fo:table-cell> <fo:table-cell> <!-- 第二列 --> </fo:table-cell> </fo:table-row> </fo:table>

设置表格属性

我们可以设置表格的各种属性,例如宽度、边框、背景颜色等。以下是一些常用的表格属性:

xmlCopy Code
<fo:table width="100%" border="1pt solid black" background-color="#f0f0f0"> ... </fo:table>

设置表格行属性

我们可以设置表格中每一行的属性,例如高度、背景颜色等。以下是一些常用的表格行属性:

xmlCopy Code
<fo:table-row height="20mm" background-color="#e0e0e0"> ... </fo:table-row>

设置表格单元格属性

我们可以设置表格中每个单元格的属性,例如宽度、对齐方式、边框等。以下是一些常用的表格单元格属性:

xmlCopy Code
<fo:table-cell width="50%" text-align="center" border="1pt solid black"> ... </fo:table-cell>

XSL-FO 表格实例

以下是一个简单的 XSL-FO 表格实例,包含两行两列:

xmlCopy Code
<fo:table width="100%" border="1pt solid black"> <fo:table-row> <fo:table-cell text-align="center"> <fo:block>姓名</fo:block> </fo:table-cell> <fo:table-cell text-align="center"> <fo:block>年龄</fo:block> </fo:table-cell> </fo:table-row> <fo:table-row> <fo:table-cell> <fo:block>张三</fo:block> </fo:table-cell> <fo:table-cell> <fo:block>25</fo:block> </fo:table-cell> </fo:table-row> </fo:table>

该表格有黑色实线边框,并且第一行和第二行分别为“姓名”和“年龄”,第二行的第一列为“张三”,第二行的第二列为“25”。