2022年10月13日 星期四

iTextPDF add image

近期處理個需求需要在產出的PDF上面加上章戳圖,專案使用的是iTextPDF所以爬了些文找到了這方式,很順利的處理需求!! 做個備忘。

import java.net.URL;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfContentByte;

document = new Document(PageSize.A4);
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("D:\test.pdf"));
document.open();

//取得圖檔存放路徑
URL url = getClass().getProtectionDomain().getCodeSource().getLocation();
String spath = url.toString();
spath = spath.substring(0, spath.indexOf("WEB-INF"));
String imageFile = spath + "test.jpg";

PdfContentByte cb = writer.getDirectContent();
mage imgSoc = Image.getInstance(imageFile);
//設定大小
imgSoc.scaleToFit(60, 45);                     
//設定位置
imgSoc.setAbsolutePosition(490, 760); 
cb.addImage(imgSoc);

document.close();

補充說明:若原圖縮小到合適的SIZE後加入,印出來會相對模糊,因此改用scaleToFit來做縮圖處理,這樣列印的效果USER會比較滿意。

沒有留言: