XSL-FO


XSL-FO 的输出坐落块区域中。


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

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

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

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


块区域的特点

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

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

因为块区域是矩形框,所以可同享许多公共的区域特点:

  • space before 和 space after
  • margin
  • border
  • padding
Content Margins and Padding

space beforespace after 是块与块之间起切割效果的空白。

margin 是块外侧的空白区域。

border 是区域外部边际的矩形。其四个边均可有不同的宽度。它也可被填充为不同的色彩和布景图画。

padding 是坐落 border 与 content 区域之间的区域。

content 区域可包括实践的内容,比方文本、图片、图形等等。


块边距(Block Margin)

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

块边框(Block Border)

边框款式特点:

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

边框色彩特点:

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

边框宽度特点:

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

块填充(Block Padding)

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

块布景(Block Background)

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

块款式特点(Block Styling Attributes)

块是可被独自款式化的输出序列:

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

字体特点:

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

文本特点:

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

实例

<fo:block font-size="14pt" font-family="verdana" color="red"
space-before="5mm" space-after="5mm">
W3CSchool
</fo:block>

<fo:block text-indent="5mm" font-family="verdana" font-size="12pt">
At W3CSchool you will find all the Web-building tutorials you
need, 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。