apache fop可以生成的最大页数是多少?

时间:2010-04-21 04:50:24

标签: apache pdf xsl-fo apache-fop

您好我正在使用apache fop,当页数超过130页时,无法生成pdf .... 页码或xml文件的长度是否有限制......

Exception in thread "main" java.lang.OutOfMemoryError: Java heap
     

空间               在java.io.BufferedReader。(BufferedReader.java:80)               在java.io.BufferedReader。(BufferedReader.java:91)               在org.apache.xml.dtm.ObjectFactory.findJarServiceProviderName(ObjectFac       tory.java:579)               at org.apache.xml.dtm.ObjectFactory.lookUpFactoryClassName(ObjectFactory)       的.java:373)               at org.apache.xml.dtm.ObjectFactory.lookUpFactoryClass(ObjectFactory.jav)       一:206)               在org.apache.xml.dtm.ObjectFactory.createObject(ObjectFactory.java:131)

        at org.apache.xml.dtm.ObjectFactory.createObject(ObjectFactory.java:101)

        at org.apache.xml.dtm.DTMManager.newInstance(DTMManager.java:135)
        at org.apache.xpath.XPathContext.reset(XPathContext.java:350)
        at org.apache.xalan.transformer.TransformerImpl.reset(TransformerImpl.ja
va:505)
        at org.apache.xalan.transformer.TransformerImpl.transformNode(Transforme
rImpl.java:1436)
        at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp
l.java:709)
        at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp
l.java:1284)
        at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp
l.java:1262)
        at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:214)
        at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
        at org.apache.fop.cli.Main.startFOP(Main.java:166)
        at org.apache.fop.cli.Main.main(Main.java:197)

1 个答案:

答案 0 :(得分:3)

我创建的报告是由数十万行的xmls制作的。但是我在创建填充了svgs的较小报告时遇到了一些问题。

您的问题可能是java默认情况下只分配32 MB内存(如果我没记错的话),因此内存不足。

在fop.bat文件中(假设您在Windows上运行)添加以下设置

rem增加标准Java VM堆大小,以便更大的报告获得足够的内存 设置JAVAOPTS = -Xmx512M

并按如下方式更改执行行

“%JAVACMD%”%JAVAOPTS %% LOGCHOICE %% LOGLEVEL%-cp“%LOCALCLASSPATH%”org.apache.fop.cli.Main%FOP_CMD_LINE_ARGS%

至少应该使用0.95