您好我正在使用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)
答案 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