使用Docbook发布文档,需要安装以下的工具:
*DocBook DTD
*DocBook XSL 样式单
*XSLT处理程序
*XSL-FO处理程序
下面详细介绍各个工具的安装。
1.安装DocBook DTD
Docbook DTD可以到OASIS的网站上下载(http://www.oasis-open.org/docbook/xml/),在这里你可以找到zip格式的压缩包。目前的最新版本是4.2。
事实上可以不下载Docbook DTD。如果你的文档DTD声明这样写:
;!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd";
根据这样的定义,大部分XML处理器能够从网络上获取DTD。这样做的好处是编辑的Docbook文档移植性好,可以在没有安装Docbook DTD的机器上使用。不过由于Docbook DTD比较庞大,通过网络获取DTD会影响处理速度,在低速网络或者网络比较糟糕的情况下,影响尤为显著。
如果选择使用本地DTD,文档的DTD引用应该这样写:
Linux:
;!DOCTYPE book SYSTEM "/usr/share/docbook-4.2/docbookx.dtd";
Windows:
;!DOCTYPE book SYSTEM "file:///C:/xml/docbook42/docbookx.dtd";
Docbook提供了一种方式,让用户可以使用相同的DTD声明,但可以在使用网络获取DTD和使用本地DTD之间切换,同时拥有两者的优势。这就是catalog文件的作用。典型的catalog的声明如下:
;catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog";
;group id="DocbookDTD" prefer="public";
;system
systemId="http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
uri="file:///usr/share/xml/docbook42/docbookx.dtd"/;
;/group;
;/catalog;
这个声明把网络DTD映射到本地DTD。如果使用支持Catalog的XSLT Processor,它首先会查找本地文件,如果本地文件不存在,再查找网络。
2.安装Docbook XSL样式单
在http://docbook.sourceforge.net上可以下载到Docbook XSL样式单,目前最新的版本是1.67.2。
解压之后,有几个比较主要的目录:
*common - 包含的是公用的模块,诸如语言之类的文件都在这里。
*extensions - 针对特定的XSLT Processor编写的扩展代码。
*fo - 生成XSL-FO文件所需的XSL样式单。
*html - 生成HTML文件所需的XSL样式单。
*images - 生成文档时所需要的图片。
*doc - 有关XSL样式单的文档,同样是Docbook文档。
其他还有像htmlhelp之类的目录,但不是生成HTML或XSL-FO所必须的。
3.安装XSLT Processor
目前有许多免费的XSLT Processor,最常用的是
*Saxon - 使用Java实现,http://saxon.sourceforge.net/。
*Xalan - 有Java和C++版本,http://xml.apache.org/xalan-j/index.html。
*xsltproc - 使用C实现,是最快的处理程序,http://xmlsoft.org/XSLT/
因为Saxon和Xalan都有Java版本,所以按照一般的Java程序的安装方式安装即可。下面介绍xsltproc的安装,因为它速度快,是我比较喜欢的处理程序。
如果你使用windows平台,那么你有两个方法可选:
*第一,直接下载为windows平台预编译的版本,可以在
ftp://ftp.zlatkovic.com/libxml/
上找到。你需要下载libxml, libxslt, 和iconv,它们都是zip格式,解压之后,在环境变量PATH中添加xsltproc.exe和.dll文件的路径。
如果你不想编辑环境变量,一个简单的办法是把下面这些文件复制到C:\Windows\System32:
libxslt.dll
libxml2.dll
libexslt.dll
iconv.dll
xsltproc.exe
这样在命令行就可以直接找到这些文件了。完成之后,运行
xsltproc -version
打印出版本号则表明完成安装。
*第二,在Cygwin下安装,这是我选择使用的方式。Cygwin是一个在Windows下模拟Linux Shell的应用程序。如果你喜欢以Linux命令的方式来使用xsltproc,可以到
http://www.cygwin.com/
下载Cygwin安装程序。Cygwin的是通过网络安装的,首先你从它提供的包列表中选择libxslt,然后安装程序会根据依赖关系自动选择libxml2,确定之后,安装程序下载并安装xsltproc。完成安装之后,你就可以运行
xsltproc -version
来检查是否安装成功。
*第三,如果使用Linux,很有可能系统已经安装了xsltproc。运行
xsltproc -version
检查一下是否已经安装。如果运行命令失败,或者版本太老,那么访问下面两个URL获取最新的RPM包:
http://rpmfind.net/linux/rpm2html/search.php?query=libxml2
http://rpmfind.net/linux/rpm2html/search.php?query=libxslt
然后切换到root权限,安装新的包:
rpm -Uv libxml2-2.6.17-2.i386.rpm
rpm -Uv libxslt-1.1.12-4.i386.rpm
完成之后,就可以运行
xsltproc -version
检查安装是否完成。
安装之后,就可以使用xsltproc来生成HTML或者XSL-FO文件。
譬如,下面是根据Docbook文档生成HTML的例子:
xsltproc --output myfile.html docbook-xsl/html/docbook.xsl myfile.xml
或者根据docbook文档生成XSL-FO文档的例子:
xsltproc --output myfile.fo docbook-xsl/fo/docbook.xsl myfile.xml
在http://xmlsoft.org/XSLT/xsltproc2.html上列出了所有xsltproc的命令行参数,或者直接运行
xsltproc也会打印出参数列表。
如果你只要发布HTML文档,那么到此为止。如果你还想发布PDF或是PS文档,那么需要安装XSL-FO处理程序。
4. 安装XSL-FO处理程序
XSL-FO处理程序根据XSLT处理程序生成的XSL-FO文件生成PDF或者PS文件。目前可供选择的XSL-FO处理程序远不如XSLT处理程序那么多,这是因为:
a. XSL-FO标准比XSLT标准的制订晚两年;
b.XSL-FO标准及其庞大而复杂,该标准的作者也发现其实现上的难度,从而将该标准分为基本、扩展和完整三个级别。
现在可用的免费的XSL-FO处理程序有:
*FOP - 来自Apache XML项目(http://xml.apache.org/fop/)。目前最新的版本是0.20.5,还在开发当中,还有很多特性不支持,不过已经可以满足一般的使用。
*PassiveTeX - 来自Sebastian Rahtz (http://www.tei-c.org.uk/Software/passivetex/)一款基于TeX的XSL-FO处理程序。同样也在开发中,较FOP要复杂的多。
另外有一些商业产品可供选择,可能生成的文档质量要比开源代码好,譬如:
*XEP(http://www.renderx.com)
*XSL Formatter(http://www.antennahouse.com)
下面介绍如何安装FOP。
4.1.首先需要安装JDK,这个不必多说。
4.2. 到http://www.apache.org/dyn/closer.cgi/xml/fop/下载FOP,可以选择tar或者zip压缩包。下载之后解压到本地。
4.3. 下载图形代码库。FOP自己不支持PNG之类的图片,如果在你的文档里会涉及到图片,那么需要下载额外的代码库。可以选择JAI(http://java.sun.com/products/java-media/jai/current.html),或者Jimi(http://java.sun.com/products/jimi/)。0.20.5之前的版本只能使用Jimi。下载之后,将jai_core.jar和jai_codec.jar(JAI),或者JimiProClasses.jar(Jimi)复制到FOP安装目录的lib目录下,然后在fop.bat(Windows平台)中添加
set LOCALCLASSPATH=%LOCALCLASSPATH%;%LIBDIR%\jai_core.jar
set LOCALCLASSPATH=%LOCALCLASSPATH%;%LIBDIR%\jai_codec.jar
或是
set LOCALCLASSPATH=%LOCALCLASSPATH%;%LIBDIR%\JimiProClasses.zip
如果使用fop.sh(Linux平台),会自动搜索。
4.4. 添加扩展代码。如果Docbook XSL样式单有针对FOP的扩展代码(目前没有),像上面一样把它们添加到FOP安装目录下lib目录。
现在就可以使用FOP来生成PDF文档了。FOP提供两个脚本fop.bat(Windows平台)和fop.sh(Unix和Linux平台)以方便使用。生成PDF的命令行如下:
Linux或Unix:
fop.sh -xsl /docbook-xsl/fo/docbook.xsl -xml myfile.xml -pdf myfile.pdf
Windows:
fop.bat -xsl /docbook-xsl/fo/docbook.xsl -xml myfile.xml -pdf myfile.pdf
在处理过程中,可能会提示某些属性不支持或尚未实现,不用理会这些提示,因为FOP仍处于开发中,这并不影响生成PDF文档。
到此,一个Docbook发布系统配置完成,并可以用来发布文档了。你完全可以在Linux上编写任务,通过该系统自动发布技术文档。
参考文章:
Docbook简介:http://blog.csdn.net/mickeyrat/archive/2005/02/04/281050.aspx
DocBook XSL: The Complete Guide:http://www.sagehill.net/docbookxsl/index.html
分享到:
相关推荐
要从DocBook?的xml源码生成一份文档实在是太费力了...网上一堆的“教程”各种配置对于DocBook?新手来说太痛苦了,所以做了一个工具合集,直接解压就可以生成HTML、PDF了,还是把精力更多的花在写文档上吧,那才是正事儿
北约互操作性标准和配置文件(NISP) 该发行版包含使用DocBook XML DTD处理XML版本的NATO互操作性标准和配置文件所必需的样式表,构建工具和文档。 要进行安装,请参阅文件INSTALL。 其他信息也可以在docs /子目录中...
colored是一项系统服务,可轻松管理,安装和生成颜色配置文件,以准确地对输入和输出设备进行颜色管理。 此功能通过称为色的系统激活的守护程序实现。 被系统激活意味着它仅在用户使用文本模式或图形工具时才启动。...
初学python,C,CPP,JAVA等语言的必备工具,没有那么多复杂的配置。简单、快速。超越vscode,vscode调试起来速度比这个慢多了,新手编程经常需要调试,这款软件可以节省你很多很多的时间。 另附使用指南:...
查询服务 它是什么? 术语查询管理模块是 IHTSDO 术语开放工具框架的组件之一。 该查询实现模块实现了针对Terminology Component Chronicle服务的查询,旨在提供查询能力... Docbook 通过配置管理和多种分发方式启用
查询服务它是什么? 术语查询管理模块是IHTSDO术语开放工具框架的组件之一。 该查询实现模块对术语组件编年表服务执行查询,并旨在... Docbook通过配置管理和多种分发方式启用了分布式编辑。 Docbook生成使用与Maven
Java框架提供了各种可重用的API,包括POJO Services API,基于Java集合的持久性(JDBC和LDAP)API以及MVC Web API。 还提供了有助于使用Apache Ant,XML配置和Docbook XML的工具。
CMake,CoffeeScript,Coco,Coq,CSS,Cucumber,CUDA,D,Dart,DocBook,Dockerfile,Dust,Elixir,Erlang,eRuby,Fortran,Gentoo元数据,GLSL,Go,Haml,Haskell,Haxe,Haxe,Handlebars,HSS,HTML ...
页面和上载的文件存储在 , 或存储库中,可以通过使用VCS的命令行工具或通过Wiki的Web界面进行修改。 默认情况下,pandoc的markdown扩展版本用作标记语言,但也可以使用reStructuredText,LaTeX,HTML,DocBook或...
氧气 Doxygen是事实上的标准工具,可从带注释的C ++来源生成文档,... 您可以配置doxygen从未记录的源文件中提取代码结构。 这对于在大型源代码发行版中快速找到方法非常有用。 Doxygen还可以通过包括依赖关系图,继承