FOP当使用TTF字体文件进行导出时,数据量较大会触发OOM问题,通过分析OOM日志,发现问题在于fonts下的两个对象的重复生成,这个时候可以通过生成builder的方式解决这种问题。
代码类似于,其中baseURI 需要一个文件路径参数,是TTF文件所在的路径,setComplexScriptFeatures可以让项目不循环生成字体文件
DefaultConfigurationBuilder cfgBuilder = new DefaultConfigurationBuilder();
Configuration cfg = cfgBuilder.buildFromFile(new File("mycfg.xml"));
fopFactoryBuilder = new FopFactoryBuilder(baseURI)
.setConfiguration(cfg)
.setComplexScriptFeatures(false);