上了adobe的贼船-JAVA操作PDF

项目中使用JAVA生成PDF,选择了Adobe Livecycle Designer,通过XML数据和模板生成PDF。然而,当数据量大导致PDF页数过多时,打开速度变慢,内存消耗大。研究发现动态PDF(XFA)在Adobe Reader中解析缓慢。尝试转换为静态PDF,包括打印转换和寻找开源解决方案,但未能避免内存消耗问题。最后了解到Adobe官方不支持flatten XFA Forms,寻找第三方解决方案成为下一步计划。
摘要由CSDN通过智能技术生成

最近项目需求,要求用JAVA模拟旧有的系统的打印机制,生成PDF。

数据源是XML的,模版是旧系统的文本源文件(描述了位置和显示信息)。由于经验不足,在搜索各大网站之后,发现了adobe的livecycle designer(LC),这样只要能看懂旧系统的源文件,就能设计出新的模版,然后通过JAVA把XML数据灌入进去,就生成PDF了。

由于Adobe的产品都要收费,所以先下载了试用版,做试验,实验结果相当成功(做实验时候数据量小,根本发现不了问题),开发相关的程序也很顺手,所以就果断采用了。

在进一步的研究后,发现adobe LC的源代码是XML格式的,就更兴奋了,开发了一个小程序,读取旧模版的文本源文件,直接生成XDP(LC的源代码),设计模版的工作都可以节约出来,于是竭力推荐,公司就购买了一套acrobat professional。

初期的测试都没问题,但是后来的测试中,发现了一个很大的问题,数据量如果过大(生成的PDF页数超过200页),打开生成的报表就很耗内存,很慢。。。

于是上ADOBE 官方网站,并在各大论坛上找原因,最终发现,用LC设计的PDF模版,生成的最终报表仍然是动态的(XFA),每次打开报表时候,adobe reader会解析XML并组织格式进行显示(pdf的其他reader都读不了这种报表)。


怎么才能把这种动态的PDF报表转成静态的呢?研究liv

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值