Friday, July 18, 2008

DocBook的一些配置

昨晚在家里把项目文档分成好几个文件,每个文件一个chapter,在家里用fop转换成pdf没有一点问题,今天拿到公司,下载了fop 0.95beta,对同样的文件,却不能够转换,错误信息是因为网络。 java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:168) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) 于是就猜想是因为公司的proxy的问题,因为家里的网络是没有设置proxy的,公司的却必须要proxy才可以连接网络。上网找了一阵子终于给我找到如何配置(本人对Java不熟悉,所以必须上网搜索)。具体该法是修改fop.bat文件中JAVAOPTS一行,修改后如下: set JAVAOPTS=-Denv.windir=%WINDIR% -Dhttp.proxyHost=my.proxy.ip.address -Dhttp.proxyPort=8080 另外,fop在转换pd的时候默认的sect1,sect2, 都没有标号,而我需要这些标号,于是自己定制了一些参数。fop在转换pdf的时候用的xslt是位于fo子文件夹下里面的docbook.xsl文件,我在fo文件夹下面创建了一个自己的文件叫做mydocbook.xsl, 然后在用fop转换的时候,指定这个文件为xsl文件。 mydocbook.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="docbook.xsl" /> <xsl:param name="fop.extensions" select="0"/> <xsl:param name="fop1.extensions" select="0"/> <xsl:param name="section.autolabel" select="1"/> <xsl:param name="section.autolabel.max.depth">8</xsl:param> <xsl:param name="section.label.includes.component.label" select="1"/> </xsl:stylesheet>

No comments: