java 用itext設(shè)置pdf紙張大小操作
做快遞面單打印模板,快遞要求紙張大小100 x 150mm。
PageSize.A4=595 x 842
A4尺寸=210mm×297mm
故設(shè)置紙張大小:public static final Rectangle EXP = new RectangleReadOnly(283.0F, 425.0F);
補(bǔ)充:解決iText生成pdf文件過(guò)大的問(wèn)題
為iText生成的pdf文件瘦身。
原來(lái)生成pdf文件,即使是純文本內(nèi)容,無(wú)論內(nèi)容再如何少,文件體積總是在7M多,導(dǎo)致傳輸速度很慢。經(jīng)排查,是在pdf生成的時(shí)候,選用了第三方中文字體造成的。
原生成PDF代碼中,有如下語(yǔ)句:
bfChinese = BaseFont.createFont('c://windows//fonts//SIMFANG.TTF', BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
這種情況下,iText會(huì)將字體TTF文件一同打包進(jìn)pdf文件中,造成文件很大。
解決方法是把這句改寫(xiě)為:
BaseFont.createFont('STSong-Light', 'UniGB-UCS2-H',BaseFont.NOT_EMBEDDED);
同時(shí),需要引入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>
這樣,原來(lái)7M多的文件,現(xiàn)在只有100K左右了。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章:
1. Ajax實(shí)現(xiàn)文件上傳功能(Spring MVC)2. 基于javaweb+jsp實(shí)現(xiàn)學(xué)生宿舍管理系統(tǒng)3. idea設(shè)置代碼格式化的方法步驟4. JS前端模塊化原理與實(shí)現(xiàn)方法詳解5. asp createTextFile生成文本文件支持utf86. python使用pyecharts庫(kù)畫(huà)地圖數(shù)據(jù)可視化的實(shí)現(xiàn)7. python使用timeit時(shí)間模塊8. Java Synchronized的使用詳解9. 使用EF Code First搭建簡(jiǎn)易ASP.NET MVC網(wǎng)站并允許數(shù)據(jù)庫(kù)遷移10. ASP.NET MVC使用jQuery ui的progressbar實(shí)現(xiàn)進(jìn)度條
