wiflish
          Loving Life! Loving Coding!
          posts - 98,comments - 98,trackbacks - 0
          [轉]安裝配置Docbook工具
          原文鏈接:http://blog.csdn.net/mickeyrat/archive/2005/02/06/283471.aspx


          安裝配置Docbook工具

          使用Docbook發布文檔,需要安裝以下的工具:
          ??? *DocBook DTD
          ??? *DocBook XSL 樣式單
          ??? *XSLT處理程序
          ??? *XSL-FO處理程序

          下面詳細介紹各個工具的安裝。

          1.安裝DocBook DTD

          Docbook DTD可以到OASIS的網站上下載,在這里你可以找到zip格式的壓縮包。目前的最新版本是4.2。

          事實上可以不下載Docbook DTD。如果你的文檔DTD聲明這樣寫:

          <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"? "

          根據這樣的定義,大部分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平臺,那么你有兩個方法可選:

          ?1) 直接下載為windows平臺預編譯的版本。你需要下載libxml, libxslt, 和iconv,它們都是zip格式,解壓之后,在環境變量PATH中添加xsltproc.exe和.dll文件的路徑。
          ?
          ?如果你不想編輯環境變量,一個簡單的辦法是把下面這些文件復制到C:\Windows\System32:

          ? libxslt.dll
          ? libxml2.dll
          ? libexslt.dll
          ? iconv.dll
          ? xsltproc.exe

          ?這樣在命令行就可以直接找到這些文件了。完成之后,運行

          ?xsltproc -version

          ?打印出版本號則表明完成安裝。
          ?
          ?2) 在Cygwin下安裝,這是我選擇使用的方式。Cygwin是一個在Windows下模擬Linux Shell的應用程序。如果你喜歡以Linux命令的方式來使用xsltproc,下載Cygwin安裝程序。Cygwin的是通過網絡安裝的,首先你從它提供的包列表中選擇libxslt,然后安裝程序會根據依賴關系自動選擇libxml2,確定之后,安裝程序下載并安裝xsltproc。完成安裝之后,你就可以運行

          ?xsltproc -version

          來檢查是否安裝成功。
          ?
          3) 如果使用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文件。

          譬如,生成HTML:

          xsltproc? --output myfile.html? docbook-xsl/html/docbook.xsl myfile.xml

          或者生成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項目。目前最新的版本是0.20.5,還在開發當中,還有很多特性不支持,不過已經可以滿足一般的使用。
          ???
          ??? *PassiveTeX - 來自Sebastian Rahtz (http://www.tei-c.org.uk/Software/passivetex/)一款基于TeX的XSL-FO處理程序。同樣也在開發中,較FOP要復雜的多。

          另外有一些商業產品可供選擇,可能生成的文檔質量要比開源代碼好,譬如:

          ??? *XEP

          ??? *XSL Formatter

          下面介紹如何安裝FOP。

          4.1.首先需要安裝JDK,這個不用多說。

          4.2. 下載FOP,可以選擇tar或者zip壓縮包。下載之后解壓到本地。

          4.3. 下載圖形代碼庫。FOP自己不支持PNG之類的圖片,如果在你的文檔里會涉及到圖片,那么需要下載額外的代碼庫。可以選擇JAI,或者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簡介

          制作Docbook文檔

          DocBook XSL: The Complete Guide


          posted on 2006-08-22 17:12 想飛的魚 閱讀(469) 評論(0)  編輯  收藏 所屬分類: 其他
          主站蜘蛛池模板: 时尚| 泸溪县| 曲阜市| 桂林市| 囊谦县| 邵武市| 罗源县| 东台市| 兰溪市| 紫云| 兴海县| 隆回县| 昌平区| 兴义市| 新巴尔虎左旗| 西华县| 杭锦后旗| 龙门县| 沁水县| 乐平市| 新民市| 雅安市| 阿瓦提县| 会昌县| 个旧市| 油尖旺区| 西丰县| 三明市| 长垣县| 濮阳县| 海丰县| 灵川县| 遂溪县| 永平县| 乐山市| 玉屏| 六枝特区| 锦屏县| 溧水县| 荃湾区| 茶陵县|