1. 程式人生 > >解決iText生成pdf檔案過大的問題

解決iText生成pdf檔案過大的問題

為iText生成的pdf檔案瘦身。

原來生成pdf檔案,即使是純文字內容,無論內容再如何少,檔案體積總是在7M多,導致傳輸速度很慢。經排查,是在pdf生成的時候,選用了第三方中文字型造成的。

原生成PDF程式碼中,有如下語句:

bfChinese = BaseFont.createFont("c://windows//fonts//SIMFANG.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

這種情況下,iText會將字型TTF檔案一同打包進pdf檔案中,造成檔案很大。解決方法是講這句改寫為:

BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);  

同時,需要引入itext-asian,使用maven:

<!-- https://mvnrepository.com/artifact/com.itextpdf/itext-asian -->
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itext-asian</artifactId>
    <version>5.2.0</version>
</dependency>

這樣,原來7M多的檔案,現在只有100K左右了。