itextpdf导出文件 踩坑
问题产生
处理需求将PDF模板导出后发现前端调取文件时间过长,1min左右。查看才发现导出的文件6m左右,又查看了模板文件、以及模板文件所引用的图片文件大小,发现都不超过1m。
解决方案
尝试使用了
PdfStamper下的压缩方法:
stamper.setFullCompression();
PdfCopy下的压缩方法:
copy.setCompressionLevel(9);
依旧不起作用。
最后查阅后发现原来是字体捣的鬼。原来的写法会将字体全部打包至文件中,导致导出的PDF文件过大
最终方法
原写法:
final BaseFont bfChinese = BaseFont.createFont(this.typefacepath + "simsun.ttc,0", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
更改后:
final BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
涉及到的公共方法/参数
typefacepath 为字体路径不过多阐述
至此记录方便以后查看