引言
XSL-FO(Extensible Stylesheet Language Formatting Objects)是一種基於XML的標記言語,用于格局化XML數據,生成高品質的文檔輸出,如PDF、PostScript等。本文將帶妳摸索XSL-FO的奧秘,並經由過程實戰在線示例,幫助妳輕鬆控制頁面規劃藝術。
XSL-FO基本
XSL-FO的不雅點
XSL-FO是W3C的標準,用於將XML文檔格局化為PDF、PostScript等格局的高品質輸出文檔。它特別合適構造化數據的排版須要。
XSL-FO的元素
XSL-FO利用矩形框(地區)來表現輸出。重要元素包含:
- 頁面(Pages):XSL-FO輸出會被格局化到頁面中。
- 地區(Regions):每個XSL-FO頁面包含一系列的Regions(區),如頁眉、頁腳、主體等。
- 塊地區(Block Areas):塊地區可定義小的塊元素,如段落、表格以及列表。
- 行地區(Line Areas):行地區定義了塊地區外部的文本行。
實戰在線示例
示例1:創建一個簡單的頁面規劃
以下是一個簡單的XSL-FO示例,展示怎樣創建一個包含頁眉、頁腳跟主體地區的頁面規劃。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<fo:root>
<fo:layout-master-set>
<fo:simple-page-master master-name="simple">
<fo:region-body margin="5mm"/>
<fo:region-before extent="2cm" margin="1cm"/>
<fo:region-after extent="2cm" margin="1cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:root>
<fo:page-master master-name="simple">
<fo:region-body margin="5mm">
<fo:block font-size="12pt" font-family="sans-serif" line-height="5pt" space-after.optimum="3pt" text-align="justify">
<xsl:apply-templates select="/">
</fo:block>
</fo:region-body>
<fo:region-before extent="2cm" margin="1cm">
<fo:block font-size="12pt" font-family="sans-serif" line-height="5pt" space-after.optimum="3pt" text-align="justify">
<xsl:apply-templates select="//header"/>
</fo:block>
</fo:region-before>
<fo:region-after extent="2cm" margin="1cm">
<fo:block font-size="12pt" font-family="sans-serif" line-height="5pt" space-after.optimum="3pt" text-align="justify">
<xsl:apply-templates select="//footer"/>
</fo:block>
</fo:region-after>
</fo:page-master>
</fo:root>
</fo:root>
</xsl:stylesheet>
示例2:創建一個包含表格的頁面規劃
以下是一個包含表格的XSL-FO示例,展示怎樣創建一個包含標題、表頭跟表格主體地區的頁面規劃。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<fo:root>
<fo:layout-master-set>
<fo:simple-page-master master-name="table">
<fo:region-body margin="5mm"/>
<fo:region-before extent="2cm" margin="1cm"/>
<fo:region-after extent="2cm" margin="1cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:root>
<fo:page-master master-name="table">
<fo:region-body margin="5mm">
<fo:block font-size="12pt" font-family="sans-serif" line-height="5pt" space-after.optimum="3pt" text-align="justify">
<xsl:apply-templates select="/">
</fo:block>
</fo:region-body>
<fo:region-before extent="2cm" margin="1cm">
<fo:block font-size="12pt" font-family="sans-serif" line-height="5pt" space-after.optimum="3pt" text-align="justify">
<xsl:apply-templates select="//header"/>
</fo:block>
</fo:region-before>
<fo:region-after extent="2cm" margin="1cm">
<fo:block font-size="12pt" font-family="sans-serif" line-height="5pt" space-after.optimum="3pt" text-align="justify">
<xsl:apply-templates select="//footer"/>
</fo:block>
</fo:region-after>
</fo:page-master>
</fo:root>
</fo:root>
</xsl:stylesheet>
總結
經由過程以上實戰在線示例,妳曾經控制了XSL-FO的基本不雅點跟元素,以及怎樣創建簡單的頁面規劃。盼望這些示例可能幫助妳在頁面規劃藝術的道路上更進一步。