- 配置Linux下的docbook环境
- 在ubuntu下可使用apt-get来获得相应的deb包,主要安装下面的几个包:
- docbook
- xmlto
- docbook-utils
- docbook-xls
- FOP
- docbook的中文HelloWorld
- 在开始进行中文之前,可先尝试英文的第一个HelloWorld
- docbook源文件如下(命名为test.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<book>
<bookinfo>
<title>My book </title>
<author>
<firstname>My First Name</firstname>
<surname>My Last Name</surname>
</author>
<publisher>
<publishername>CSDN</publishername>
</publisher>
<isbn>ISBN#</isbn>
<copyright>
<year>2005</year>
</copyright>
</bookinfo>
<part>
<title>My Part</title>
<chapter>
<title>My Chapter</title>
<sect1>
<title>My Section1</title>
<para>This is a demo of a book.</para>
</sect1>
</chapter>
</part>
</book>- 使用命令 xmlto fo test.xml
- 这时会生成一个test.fo文件
- 使用命令 fop test.fo test.pdf
- 即可生成相应的pdf文件
- 中文的hello world
- 而在含有中文的docbook中则复杂了许多,如需要相应字体的支持等(如果照搬上面的步骤则中文会出现#这样的字符)
- 生成相应的字体信息文件(假定使用文泉字体)
- fop-ttfreader -ttcname "WenQuanYi Zen Hei Mono" /usr/share/fonts/truetype/wqy/wqy-zenhei.ttc font.xml
- 如果是ttc文件则需指定相应的ttcname
- 生成fop的配置文件,首先在参考中的3下载配置文件,然后修改其中的fonts部分,并命名为config.xml,如下
<font metrics-url="font.xml" kerning="yes" embed-url="/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc">
<font-triplet name="WenQuanYiZenHei" style="normal" weight="normal"/>
<font-triplet name="WenQuanYiZenHei" style="normal" weight="bold"/>
</font>- 其中metrics-url必须指定为刚生成的font.xml, embed-url为对应的字体路径
- 这里系统xmlto默认(通常为 /usr/share/xml/docbook/stylesheet/nwalsh/fo/docbook.xsl),我们修改为(命名为my.xsl):
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:ng="http://docbook.org/docbook-ng"
xmlns:db="http://docbook.org/ns/docbook"
exclude-result-prefixes="db ng exsl" version='1.0'>
<xsl:import href="/usr/share/xml/docbook/stylesheet/nwalsh/fo/docbook.xsl" />
<xsl:param name="l10n.gentext.language" select="'zh_cn'"/>
<xsl:param name="body.font.family">WenQuanYiZenHei</xsl:param>
<xsl:param name="body.font.size">10</xsl:param>
<xsl:param name="monospace.font.family">Monaco</xsl:param>
<xsl:param name="title.font.family">WenQuanYiZenHei</xsl:param>
<xsl:param name="page.margin.inner">2cm</xsl:param>
<xsl:param name="page.margin.outer">2cm</xsl:param>
<xsl:param name="hyphenate">false</xsl:param>
<xsl:param name="paper.type" select="'A4'" />
<xsl:param name="draft.mode" select="'no'" />
</xsl:stylesheet>- 注意上面加粗的行
- 下面则是修改后的docbook源文件(含有中文),命名为 chinese.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<book>
<bookinfo>
<title>Python学习指南</title>
<author>
<firstname>朱</firstname>
<surname>涛</surname>
</author>
<publisher>
<publishername>清华大学出版社</publishername>
</publisher>
<isbn>ISBN#</isbn>
<copyright>
<year>2009</year>
<holder>朱涛</holder>
</copyright>
</bookinfo>
<chapter>
<title>第一章</title>
<sect1>
<title>第一节</title>
<para>正文内容.</para>
</sect1>
</chapter>
</book>- 接着进行相应的编译即可
- xmlto -x my.xls fo chinese.xml
- -x 指定相应的xls
- fop -c config.xml chinese.fo chinese.pdf
- -c 载入特定的fop配置文件
- 此时就应该可以看到含有中文的Pdf了
- 参考
2009-05-15
使用 docbook完成第一个helloworld(中文Pdf)
作为一种基于XML的文档定义标准,docbook规定了相关的解释规范,而已有的不同的parser和compiler会将docbook的源文件解释为不同类型的目标文件,如html,word,pdf,rtf,txt等。本文主要介绍下面几部分的内容:在linux(ubuntu)下配置相应的docbook环境、基于docbook写出第一个可以编译为pdf的整个过程。
订阅:
博文评论 (Atom)
没有评论:
发表评论