java 用itext設置pdf紙張大小操作
做快遞面單打印模板,快遞要求紙張大小100 x 150mm。
PageSize.A4=595 x 842
A4尺寸=210mm×297mm
故設置紙張大小:
public static final Rectangle EXP = new RectangleReadOnly(283.0F, 425.0F);
補充:解決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左右瞭。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- Java使用iTextPDF生成PDF文件的實現方法
- java生成pdf表格,調用itext創建的實例
- java 畫pdf用itext調整表格寬度、自定義各個列寬的方法
- Java生成pdf文件或jpg圖片的案例講解
- 教你怎麼用Java通過關鍵字修改pdf