让docbook支持颜色的渲染

docbook默认是不能够对字体进行颜色设置的。但是通过扩展可以达到对html和pdf输出的颜色设置。

(一)首先,我们来谈论一下如何对html的输出进行颜色设置。

对html的输出情况下要简单一些,只需要通过css样式控制即可,而且这个docbook是内嵌支持的。

在docbook的xml文件中,我们如下书写:

这是一个测试DocBook<emphasis role="mytestclass">颜色</emphasis>支持的样例

         经过转换后输出的xml则为:
这是一个测试DocBook<span class="mytestclass">颜色</span>支持的样例
   
当然,我们需要在docbook所应用的stylesheet文件中增加相应的css标签。

(二)其次,来谈论谈论如何对pdf的输出进行颜色设置。

        docbook的pdf输出是采用的fop,目前推荐大家采用FOP 0.20.5版本,其最新版本还不是很稳定,对中文的支持有问题。docbook首先会对我们的xml文件通过xslt进行转换后转换成fo格式文件,然后通过fop对fo进行编译成pdf文件。
    
        所以,我们需要对xslt文件进行一定的修改,来增加对颜色的支持转换。也如同上面的例子,我们增加如下的转换:
    

<xsl:template match="emphasis[@role = 'mytestclass']">
  <fo:inline color="#FF0000">
    <xsl:apply-templates/>
  </fo:inline>
</xsl:template>

         这样就会在遇到对emphasis标签解析的时候,如果匹配role属性,则利用 fo:inline对当前的字符进行颜色设置。 这个原理比较简单,也比较容易复制和扩展。 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值