2010-04-21 68 views
3

您好我正在与Apache FOP和当页数超过约130页,它不能生成PDF .... 页码或XML文件的长度是否有任何限制...tha apache fop可以生成的最大页数是多少?

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) 在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) 
+0

我不认为有一个硬限制页数或XML文件大小。这可能是有某种例外(内存不足)。如果您可以共享可能已经生成的日志和/或异常,并告诉我们您是如何调用该过程,将会有所帮助。 – 2010-04-21 11:06:32

+0

我在这里添加了日志 – Thunder 2010-04-21 12:43:36

+0

我已经使用FOP生成了超过400页的PDF报告,在Web应用程序设置和控制台(junit)设置中没有任何问题。 – tmeisenh 2010-04-22 19:44:38

回答

3

我已经创建了几十万行xml的报告。然而,我有一些问题,创造更小的报告充满了SVG。

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

在fop.bat文件(assumimg您是在Windows上运行)将以下设置添加

REM增加标准的Java VM堆大小,使大报告中获得足够的内存 集JAVAOPTS = -Xmx512M

和改变执行线如下

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

这应该与0.95至少

+0

或者如果从java应用程序启动,只需在启动时将其添加到命令提示符 – Crocked 2010-05-07 17:08:07

相关问题