TCPDF - 生成PDF文件太大 (大于9M)
2019-06-22 本文已影响0人
PHP的点滴
使用TCPDF生成 pdf 文件太大 - 7页 基本在 10M左右
原因分析定位
开始以为主要是PDF中的图片文件造成的,但是把带有图片的2页去掉,结果还是10M。
经过多次尝试,最后就保留一个页面,结果生成的pdf还是很大。
显然问题不是PDF内容造成的。
后台定位到字体上,把 msyh 化成 stsongstdlight后,PDF 文件一下就变成了 600多K
//$pdf->SetFont('msyh', '', 12); //微软雅黑
$pdf->SetFont('stsongstdlight', '', 12); //支持中文不乱码
说明
分析下为啥换个字体,就能节省这么多空间大小呢?
- 我们到 vendor/tecnickcom/tcpdf/fonts 下可以看到 ,这里的微软雅黑字体就占了 8.8M,在我们生成 pdf 文件的时候,tcpdf 会把 msyh 的字体也导入到文件中
4.0K helvetica.php
4.0K helveticab.php
4.0K helveticabi.php
4.0K helveticai.php
4.0K hysmyeongjostdmedium.php
4.0K kozgopromedium.php
4.0K kozminproregular.php
4.0K msungstdlight.php
56K msyh.ctg.z
1.2M msyh.php
8.8M msyh.z
4.0K stsongstdlight.php
4.0K symbol.php
4.0K times.php
4.0K timesb.php
- 而 stsongstdlight 字体是tcpdf内置的字体,只有 4.0K 左右,而且也支持中文
- 另外使用 stsongstdlight 字体生成 PDF 的速度也快了很多