2010-04-21 72 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

相關問題