2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > #踩坑 Java 使用itextpdf将PDF模板导出文件过大

#踩坑 Java 使用itextpdf将PDF模板导出文件过大

时间:2021-05-26 19:42:24

相关推荐

#踩坑 Java 使用itextpdf将PDF模板导出文件过大

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 为字体路径不过多阐述

至此记录方便以后查看

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。