【问题】
docbook中的book生成的pdf或html中,虽然可以正常输入内容和titlepage了,但是在titlepage中却没有最新的版本号的信息。
即,输出现在是这样的:
想要添加最新的那个版本号,就像下面这个:
【解决过程】
1。找了下,没有发现我所想要的,类似于version等属性,而只有revision这个关键字,但是其parent必须是revhistory,即不能单独使用的,没法添加用其实现version number的效果了。
2.想要尝试着自己添加一个关键字,然后再格式化输出弄到pdf中,但是找了半天,也没找到如何添加自定义的关键字的。只是找到这里:Adding title page elements,添加一个已有的关键字的。所以,还是无法解决问题。
3.突然想起来了,之前好像有个releaseinfo,去找找其下或与其相关的,是否可以写入版本号信息。
然后在bookinfo内添加了:
<releaseinfo>版本:v1.5</releaseinfo>
然后生成的html中,是可以显示的:
但是生成的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)
就可以了,生成的效果如下:
【总结】
可以通过把版本信息添加到releaseinfo中,以达到在pdf中输出版本信息的目的。
只是需要注意的是,需要手动将releaseinfo这项,添加到对应的配置中,否则默认pdf的配置中是不包含releaseinfo(和之前就遇到过的revhistory)的。
转载请注明:在路上 » 【已解决】给docbook中的book添加最新的版本号