FOP也为内存而疯狂

6 篇文章 0 订阅
3 篇文章 0 订阅

在用DocBook和FOP生成HTML文件及PDF过程中,HTML文件能顺利生成,但无法生成PDF文件。问题出在表格上。

 

最早时,此表格与其他内容一起放在单独的xml文件中,能顺利生成PDF文件。后来随着内容的增多,将不同的章节放到不同的xml文件,此表格随之放在其他的xml文件中后,问题就来了。FOP的报错信息:

 

警告: Warning(Unknown location): fo:table, table-layout="auto" is currently not supported by FOP
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

 

看到table-layout="auto" is currently not supported by FOP,很自然就想着应该是FOP不支持table-layout="auto"。顺着该思路,想尽一切办法应对FOP中表格的问题,浪费了整整一晚上,无果而终。

 

沮丧之余,回想之前既然能够顺利生成PDF,说明FOP即使当前不支持table-layout="auto",但也能应付上面的情况,FOP的表格功能应该不会有问题。回头再看出错信息,"OutOfMemoryError",内存溢出!

 

fop.bat文件中最后一行调用了java:

 

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

 

将其修改为:

 

"%JAVACMD%" -Xmx1024m %JAVAOPTS% %LOGCHOICE% %LOGLEVEL% -cp "%LOCALCLASSPATH%" org.apache.fop.cli.Main %FOP_CMD_LINE_ARGS%

 

我的爱机内存为4G,查看Windows任务管理器后,还余2G多可用,便将java在堆上默认的64M内存改为1G。重新调用fop.bat,终于顺利生成了PDF文件。

 

真是FOP也为内存而疯狂!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值