docbook demo所有相关文件下载 | |
---|---|
和下面纯windows下docbook环境搭建有关的文件,可以在这里下载到:docbook5_demo_noTools.7z |
此处介绍如何在纯Windows环境下(即不需要额外安装Cygwin等),而搭建最基本的Docbook环境。
使得可以生成对应的HTML和PDF。
以下内容,主要参考:一个简单的Docbook 5.0例子和在Windows上安装配置Apache FOP
此处之所以重新介绍一遍,主要目的在于,当前使用的fop 1.0的版本,可以省略关于fop字体设置的部分,以减少步骤。
为了以后更好的使用和扩展Docbook环境,所以此处专门设计了一个简单的架构。
即,不是为了演示,就随便糊弄一下。
下面的架构搭好之后,真正想要使用docbook的人,就可以在此基础上,一点点的扩展功能了。
当然,此处搭建的环境,也尽量的保持简洁,此处暂时只支持生成我们所需要的HTML和PDF。
下面就是要搭建的docbook环境所对应的文件夹结构
请自行在某个文件夹,比如我的是E:\DevRoot\docbook
,下面建立对应的文件夹。
books | |-- docbook5_demo | |-- output | | | |-- fo | |-- html | |-- pdf | |-- src config | |-- docbook-xsl-ns-1.77.1 |-- fop tools | |-- docbook-xsl-ns-1.77.1 | | | |-- fo | |-- html | ... | |-- fop-1.0 | | | |-- build | |-- conf | |-- ... | |-- xslt | |-- bin |-- include |-- lib
用于存放多个Docbook的book(书籍) 后期扩展:可以建更多的book,比如我当前的关于docbook开发笔记,就可以对应新建一个docbook_dev_note的book了。 |
|
接下来所要写的docbook 5的demo的book |
|
用于存放各种格式的输出。 当前暂时为了演示,只建了fo,html,pdf 后期扩展:可以建更多的文件夹,比如htmls,rtf,chm,txt等存放更多的输出格式 |
|
用于存放fo文件。其可以被fop等工具转换为PDF,RTF等格式 |
|
用于存放最终生成的html,pdf等格式的文件。这些,是我们所想要的最终的结果。 |
|
用与存放docbook的xml源码文件。 后期扩展:当单个xml内容太多,可以考虑用xinclude分出多个xml文件,此时多个xml文件,都可以都放在此src文件夹下了。 |
|
用于存放所有的和Docbook相关的配置文件,包括xsl格式stylesheet文件,以及其他如fop的配置文件等。 后期扩展:其他的,比如,实体定义entity,catalog等等一些内容,也可以放在此config下。 |
|
此处之所以文件夹叫做docbook-xsl-ns-1.77.1,是由于最新的stylesheet是1.77.1版本的。 其作用是,设置对应的参数,可以控制html,pdf等输出的效果,包括显示效果方面的一些控制参数和输出内容格式组织方面的。 |
|
此处存放fop的配置。 目前暂时只需要一个fop.xconf文件即可。 |
|
下载并解压docbook-xsl-ns-1.77.1,然后放到此处即可。 如何下载docbook-xsl-ns-1.77.1参见第 1.2.3 节 “下载docbook-xsl-ns-1.77.1” |
|
下载fop 1.0并解压,放到此处即可。 如何下载fop 1.0参见第 1.2.4.1 节 “下载fop-1.0” |
|
下载xsltproc及相关文件,并解压,放到此处即可。 如何下载xsltproc及相关文件,参见第 1.2.2 节 “下载windos版本的xsltproc” |
顺便贴出后来建立好的docbook环境的文件夹结构的截图:
安装上述介绍,建立好对应的文件夹后,就可以参考下面的步骤,下载相关文件,添加相关配置,编译生成html和pdf,然后最终搭建好docbook环境。
在:xsltproc主页 ⇒ 下载页面 ⇒ Libxml ⇒ Igor Zlatkovic提供的Windows下二进制版本的xsltproc中,去下载:
其中包含我们所需要的xsltproc可执行文件:xsltproc.exe
为了在windows下面运行xsltproc,还需要一些其所依赖的库:libxml2,iconv,zlib
下面依次贴出下载地址和简单的解释:
C语言实现的XML解析器。
其支持N多规范或协议,比如XML,XML-NS,XPath,XPointer,XInclude,UTF-8/UTF-16,XML Catalog,Canonical XML,Relax NG等。
字符编码转换。比如从UTF-8转换为GB18030,就可以用iconv。
压缩工具。
下载了这四个文件后,解压,然后都会得到一个包括bin,include,lib三个文件夹。
把xsltproc的路径添加到PATH环境变量中.
为了可以在windows的命令行cmd中直接输入xsltproc就可以执行,而不需要绝对路径,此处需要把xsltproc所在路径,我此处的的是:E:\DevRoot\docbook\tools\xslt\bin
,添加到windows的环境变量PATH中去。
更新版本的xsltproc相关的二进制文件 | |
---|---|
如果想要用更新版本的xsltproc,即相关的各个所依赖的二进制文件,想要下载更新版本的话, 可以去参考: 【已解决】docbook中用xsltproc处理xsl文件时用xsl:import引用本地css,js等文件时,必须加上file:///或file://的前缀才可以 中的"如何组合出来相对比较新的版本的xsltproc"即可。 |
为了将xml源码转换为html,fo等文件的话,需要相应的配置文件,以控制输入的效果和格式,这就需要相应的配置文件。
此处的配置文件,就是xsl格式的stylesheet(样式表)。
docbook官方网站中,有对应的最新的办法的xsl样式表文件,是放在sourceforge上的:最新的docbook-xsl-ns所在的页面
截止当前2012-06-10,最新版本的是1.77.1版本的docbook-xsl-ns,下载下来对应的docbook-xsl-ns-1.77.1.tar.bz2
后,解压,放到上面刚建立的中
如果没有安装java,请先安装java | |
---|---|
fop的运行,依赖于java运行环境。 如果你的windows中,还没有安装java,请先安装java运行环境(JRE=java runtime environment)。 关于java的基本知识和如何安装,不了解的请参考:Java java已经安装好前提下,另外记得确保JAVA_HOME环境变量已经正确设置好了。 比如,我的系统中的是: JAVA_HOME=D:\Program Files\Java\jre7 |
从:fop主页 ⇒ Apache™ FOP Version 1.0 ⇒ fop下载页面 ⇒ FOP Distribution mirror中,可以找到第一链接,是官网推荐给你的,然后进去后可以找到binaries文件夹,进去后,下载到fop-1.0-bin.tar.gz,比如我这里得到的地址是:bjtu的fop-1.0-bin.tar.gz
为了更好的让fop自动搜索对应的lib库,需要去设置fop的一个环境变量FOP_HOME。
此处即为,设置对应的环境变量为:
FOP_HOME=E:\DevRoot\docbook\tools\fop-1.0
将原先的中的conf文件夹中的fop.xconf
拷贝一份出来,放到下
然后打开该文件,找到fop⇒renderers中的fonts部分,然后添加对应的配置,变成:
<fop version="1.0"> ... <renderers> <renderer mime="application/pdf"> ... <fonts> ... <!-- new added start --> <!-- register all the fonts found in a directory and all of its sub directories (use with care) --> <directory recursive="true">file:///c:/windows/fonts/</directory> <!-- automatically detect operating system installed fonts --> <auto-detect/> <!-- new added end --> </fonts>
即完成了对应的配置。
关于FOP的字体配置 | |
---|---|
关于fop的更多字体配置方面的内容,可以去参考官网的解释:Custom Fonts |
将如下内容:
<?xml version='1.0' encoding="utf-8"?> <book version="5.0" xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xl="http://www.w3.org/1999/xlink" xml:lang="zh_CN" > <info> <title>Docbook5环境搭建演示</title> <abstract> <para>本文主要介绍了如何在纯Windows的环境下搭建Docbook 5开发环境</para> </abstract> <author><personname><firstname>Crifan</firstname><surname>Li</surname></personname></author> <pubdate>2012-06-05</pubdate> <copyright> <year>2012</year> <holder>Crifan</holder> <holder><link xl:href="http://crifan.com" /></holder> </copyright> <legalnotice> <para>本文章遵从:<link xl:href="http://creativecommons.org/licenses/by-nc/2.5/cn/">署名-非商业性使用 2.5 中国大陆(CC BY-NC 2.5)</link></para> </legalnotice> </info> <chapter><title>第一章的标题</title> <para>关于更多的Docbook方面的内容,可以去参考:<link xl:href="http://www.crifan.com/files/doc/docbook/docbook_dev_note/release/html/docbook_dev_note.html">Docbook开发手记</link></para> <sect1><title>第一章第一小节的标题</title> <para>可以在这里输入第一章第一小节中的内容</para> <sect2><title>第一章第二小节的标题</title> <para></para> </sect2> </sect1> <sect1><title>第一章第二小节标题</title> <para></para> </sect1> </chapter> <chapter><title>第二章</title> <para></para> </chapter> </book>
存为UTF-8编码的docbook5_demo.xml文件。
用于后期演示使用。
如何建立UTF-8编码的文件 | |
---|---|
可以参考Notepad++的多种编码支持,去用Notepad++建立相应的UTF-8编码的文件。 |
将如下内容:
<?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'> <xsl:import href="E:/DevRoot/docbook/tools/docbook-xsl-ns-1.77.1/html/docbook.xsl"/> <!--============================================================================ font setting =============================================================================--> <xsl:param name="title.font.family">Microsoft YaHei</xsl:param> <xsl:param name="body.font.family">Microsoft YaHei</xsl:param> <xsl:param name="monospace.font.family">Microsoft YaHei</xsl:param> <xsl:param name="symbol.font.family">Cambria Math</xsl:param> <!--============================================================================ TOC index setting =============================================================================--> <xsl:param name="section.autolabel" select="1"/> <xsl:param name="section.label.includes.component.label" select="1"/> <xsl:param name="bibliography.numbered" select="1"/> <xsl:param name="toc.section.depth">8</xsl:param> </xsl:stylesheet>
存为UTF-8格式的docbook_html.xsl
将如下内容:
<?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'> <xsl:import href="E:/DevRoot/docbook/tools/docbook-xsl-ns-1.77.1/fo/docbook.xsl"/> <!--============================================================================ font setting =============================================================================--> <xsl:param name="title.font.family">Microsoft YaHei</xsl:param> <xsl:param name="body.font.family">Microsoft YaHei</xsl:param> <xsl:param name="monospace.font.family">Microsoft YaHei</xsl:param> <xsl:param name="symbol.font.family">Cambria Math</xsl:param> <!--============================================================================ TOC index setting =============================================================================--> <xsl:param name="section.autolabel" select="1"/> <xsl:param name="section.label.includes.component.label" select="1"/> <xsl:param name="bibliography.numbered" select="1"/> <xsl:param name="toc.section.depth">8</xsl:param> <!--============================================================================ misc setting =============================================================================--> <!-- add bookmark and support more type of figure --> <xsl:param name="fop1.extensions">1</xsl:param> <!-- no indent for body content --> <xsl:param name="body.start.indent">0pt</xsl:param> </xsl:stylesheet>
存为UTF-8格式的docbook_fo.xsl
用下列命令去生成fo:
xsltproc -o ../output/fo/docbook5_demo.fo E:\DevRoot\docbook\config\docbook-xsl-ns-1.77.1\docbook_fo.xsl docbook5_demo.xml
相应的屏幕输出为:
E:\DevRoot\docbook\books\docbook5_demo\src>xsltproc -o ../output/fo/docbook5_demo.fo E:\DevRoot\docbook\config\docbook-xsl-ns-1.77.1\docbook_fo.xsl docbook5_demo.xml Making portrait pages on USletter paper (8.5inx11in)
再继续执行下面命令:
E:\DevRoot\docbook\tools\fop-1.0\fop.cmd -c E:\DevRoot\docbook\config\fop\fop.xconf -fo ../output/fo/docbook5_demo.fo -pdf ../output/pdf/docbook5_demo.pdf
相应的屏幕输出为:
E:\DevRoot\docbook\books\docbook5_demo\src>E:\DevRoot\docbook\tools\fop-1.0\fop.cmd -c E:\DevRoot\docbook\config\fop\fop.xconf -fo ../output/fo/docbook5_d -pdf ../output/pdf/docbook5_demo.pdf 六月 07, 2012 11:28:38 下午 org.apache.fop.apps.FopFactoryConfigurator configure 信息: Default page-height set to: 11in 六月 07, 2012 11:28:38 下午 org.apache.fop.apps.FopFactoryConfigurator configure 信息: Default page-width set to: 8.26in 六月 07, 2012 11:28:41 下午 org.apache.fop.hyphenation.Hyphenator getHyphenationTree 严重: Couldn't find hyphenation pattern zh_cn
如此,就可以正常生成对应的pdf文件了,截图效果如下: