XSL-FO 基础知识(三)

基本块格式化 第 1 页(共4 页)


既然您已经接触到了 <fo:block><fo:inline> 元素的一些基本知识,您可以研究它们的更多特性以及用文本块可以做的其它一些事情。让我们首先看看上一章中介绍的 <fo:block>


<fo:block font-size="14pt" line-height="17pt">
  This is a paragraph of text.  Notice that as 
  <fo:inline font-style="italic">this meaningless 
  prose</fo:inline> drones on and on, the FOP 
  software automatically calculates line breaks for us.  
  Isn't that fascinating?
</fo:block>

该示例使用 line-height 特性来更改行间距。如果不使用该特性,line-height 会和 font-size 相同。使 line-heightfont-size 大 3 到 6 个点通常是好的做法;如果行与行之间没有小的空间,文本可能会难以辨认和阅读。所需的空间大小取决于字体的特征和文本列宽;如果您正与团队中的图形设计师一起工作,那么请遵循您的这位专家对该值的建议。

<fo:inline> 元素进行文本格式化 第 2 页(共4 页)


下面介绍如何用 XSL-FO <fo:inline> 元素来格式化文本:

  • 粗体字:使用带 font-weight="bold" 属性的 <fo:inline> 元素。
  • 斜体字:使用带 font-style="italic" 属性的 <fo:inline> 元素。
  • 等宽字:使用带 font-family="monospace" 属性的 <fo:inline> 元素。
  • 更改字体:要采用 serif 字体(通常类似于 Times-Roman),可使用带 font-family="serif" 属性的 <fo:inline> 元素。要采用 sans serif 字体(通常类似于 Arial),可使用属性 font-family="sans-serif"(请参阅 FOP 文档以了解如何将机器上安装的字体转换为 FOP 可以使用的字体)。

关于特性的一句话 第 3 页(共4 页)


即使简单的 XSL-FO 文件也会用到几个特性,如 font-sizeline-heightfont-style。许多 XSL-FO 特性与您可能知道的 CSS 特性相同。XSL-FO 和 CSS 还有共同之处:即元素常常从其祖先元素继承特性。下面还是那个示例段:


    <fo:flow flow-name="xsl-region-body">
      <fo:block font-size="14pt" line-height="17pt">
        This is a paragraph of text.  Notice that as 
        <fo:inline font-style="italic">this meaningless 
        prose</fo:inline> drones on and on, the FOP 
        software automatically calculates line breaks for us.  
        Isn't that fascinating?
      </fo:block>
    </fo:flow>

请注意,在定义 <fo:inline> 元素时,示例没有指定 font-sizeline-height 特性。那是因为那些特性是从包含 <fo:inline> 元素的 <fo:block> 元素继承而来。

关于特性要记住的另一件事:XSL-FO 特性只是 XML 属性。

您会注意到我在本教程中将特性(property)和属性(attribute)互换使用。XSL-FO 规范也是这样做的。

字符实体 第 4 页(共4 页)


以下是对于文本格式化要记住的另一方面:字符实体。不象 HTML,XSL-FO 没有定义字符实体。这意味着每次您想使用字符实体时,必须自己定义它。下面是定义字符实体的语法:


<!DOCTYPE fo:root [
  <!ENTITY frac14 "&#188;">
]>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
         xmlns:fox="http://xml.apache.org/fop/extensions"> 

该代码定义了一个实体,并将它与一个特定字符相结合(DOCTYPE 关键字后的第一个单词必须是文档根元素的名称)。一旦您已经定义了字符实体,就可以在 XSL-FO 文档中使用它,就象您在 HTML 文档中所做的那样。当您在本教程的后续部分“XSL 格式化对象(XSL Formatting Object,XSL-FO)高级技术”阅读到无序列表时,您将看到另一个在 XSL-FO 中使用字符实体的示例。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值