最新消息:VPS服务器又从fzhost.net换回Linode了,主题仍用朋友推荐的大前端D8

【已解决】给docbook中的book添加最新的版本号

Docbook crifan 625浏览 0评论

【问题】

docbook中的book生成的pdf或html中,虽然可以正常输入内容和titlepage了,但是在titlepage中却没有最新的版本号的信息。

即,输出现在是这样的:

修改成自己需要的效果

想要添加最新的那个版本号,就像下面这个:

word生成pdf中的最新版本号中的“版本:1.5”,即添加最新的版本号的信息。

【解决过程】

1。找了下,没有发现我所想要的,类似于version等属性,而只有revision这个关键字,但是其parent必须是revhistory,即不能单独使用的,没法添加用其实现version number的效果了。

2.想要尝试着自己添加一个关键字,然后再格式化输出弄到pdf中,但是找了半天,也没找到如何添加自定义的关键字的。只是找到这里:Adding title page elements,添加一个已有的关键字的。所以,还是无法解决问题。

3.突然想起来了,之前好像有个releaseinfo,去找找其下或与其相关的,是否可以写入版本号信息。

然后在bookinfo内添加了:

<releaseinfo>版本:v1.5</releaseinfo>

然后生成的html中,是可以显示的:

html can show releaseinfo

但是生成的pdf中却没有,所以看来是和之前revhistory一样的问题,即pdf中,默认是不包含releaseinfo的。

所以去添加进来:

(1)去titlepage.templates_crl.xml中的<t:titlepage-content t:side="recto">中的subtitle的后面,添加了:

      <releaseinfo 
        text-align="center"
        font-size="&hsize3;"
        space-before="&hsize2space;"
        font-family="{$title.fontset}" />

(2)然后去cygwin中的生成对应的新的xsl文件:

Administrator@K470 /usr/share/sgml/docbook/xsl-ns-stylesheets
$ xsltproc --output fo/titlepage.template_crl.xsl template/titlepage.xsl fo/tit
lepage.templates_crl.xml

(3)重新用xsltproc生成对应的fo,然后再用fop生成对应的pdf:

Administrator@K470 /cygdrive/e/Dev_Root/docbook/dev/src/docbook/books/VBR/src
$ xsltproc.exe --stringparam section.autolabel 1 --stringparam section.label.includes.component.label 1 --stringparam bibliography.numbered 1 --xinclude -o /cygdrive/e/Dev_Root/docbook/dev/src/docbook/books/VBR/output/fo/MPEG_VBR.fo /usr/share/sgml/docbook/xsl-ns-stylesheets/fo/docbook_fo_crl_yahei.xsl /cygdrive/e/Dev_Root/docbook/dev/src/docbook/books/VBR/src/MPEG_VBR.xml
Making portrait pages on USletter paper (8.5inx11in)

Administrator@K470 /cygdrive/e/Dev_Root/docbook/dev/src/docbook/books/VBR/src
$ E:/Dev_Root/docbook/config/tool/fop/fop-1.0/fop.cmd -c E:/Dev_Root/docbook/config/tool/fop/fop-1.0/conf/fop.xconf E:/Dev_Root/docbook/dev/src/docbook/books/VBR/output/fo/MPEG_VBR.fo -pdf E:/Dev_Root/docbook/dev/src/docbook/books/VBR/output/pdf/MPEG_VBR.pdf
五月 05, 2012 11:53:52 下午 org.apache.fop.apps.FopFactoryConfigurator configure
信息: Default page-height set to: 11in
五月 05, 2012 11:53:52 下午 org.apache.fop.apps.FopFactoryConfigurator configure
信息: Default page-width set to: 8.26in
五月 05, 2012 11:53:53 下午 org.apache.fop.events.LoggingEventListener processEvent
警告: Font "Symbol,normal,700" not found. Substituting with "Symbol,normal,400".
五月 05, 2012 11:53:53 下午 org.apache.fop.events.LoggingEventListener processEvent
警告: Font "ZapfDingbats,normal,700" not found. Substituting with "ZapfDingbats,normal,400".
五月 05, 2012 11:53:53 下午 org.apache.fop.hyphenation.Hyphenator getHyphenationTree
严重: Couldn't find hyphenation pattern zh_cn
五月 05, 2012 11:53:55 下午 org.apache.fop.events.LoggingEventListener processEvent
警告: Line 1 of a paragraph overflows the available area by 23800 millipoints. (See position 64:2815)
五月 05, 2012 11:53:55 下午 org.apache.fop.events.LoggingEventListener processEvent
警告: Line 5 of a paragraph overflows the available area by 22610 millipoints. (See position 64:3939)
五月 05, 2012 11:53:56 下午 org.apache.fop.events.LoggingEventListener processEvent
警告: Line 3 of a paragraph overflows the available area by more than 50 points. (See position 100:172)

就可以了,生成的效果如下:

pdf中带了版本信息了

【总结】

可以通过把版本信息添加到releaseinfo中,以达到在pdf中输出版本信息的目的。

只是需要注意的是,需要手动将releaseinfo这项,添加到对应的配置中,否则默认pdf的配置中是不包含releaseinfo(和之前就遇到过的revhistory)的。

转载请注明:在路上 » 【已解决】给docbook中的book添加最新的版本号

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
54 queries in 0.232 seconds, using 12.03MB memory