日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java使用itext将图片放到pdf模板的指定位置

發布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java使用itext将图片放到pdf模板的指定位置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java使用itext將圖片放到pdf模板的指定位置

  • 前面的準備步驟可以參考我的上一篇文章
    • 這里直接上代碼
      • 這里用的圖片是路徑的形式,還有種情況是圖片是base64的時候,這種情況就需要轉一下圖片格式了,具體代碼如下:

前面的準備步驟可以參考我的上一篇文章

java使用itext填充pdf模板,超簡單教學,有手就行

這里直接上代碼

@Testpublic void testPic() throws Exception {// 模板文件路徑String templatepath = "F:\\pdfWork\\2\\test9.pdf";// 生成的文件路徑String targetpath = "F:\\pdfWork\\2\\test10.pdf";// 這個指的是模板中對應位置的名字String fieldname = "flag";// 圖片路徑String imagepath = "F:\\圖片\\1.jpg";// 讀取模板文件InputStream input = new FileInputStream(new File(templatepath));PdfReader reader = new PdfReader(input);PdfStamper stamper = new PdfStamper(reader, new FileOutputStream((targetpath)));// 提取pdf中的表單AcroFields form = stamper.getAcroFields();form.addSubstitutionFont(BaseFont.createFont("Font/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED));// 通過域名獲取所在頁和坐標,左下角為起點int pageno = form.getFieldPositions(fieldname).get(0).page;Rectangle signrect = form.getFieldPositions(fieldname).get(0).position;float x = signrect.getLeft();float y = signrect.getBottom();// 讀圖片Image image = Image.getInstance(imagepath);// 獲取操作的頁面PdfContentByte under = stamper.getOverContent(pageno);// 這里控制圖片的大小//image.scaleToFit(signrect.getWidth(), signrect.getHeight());image.scaleToFit(100, 100);// 添加圖片image.setAbsolutePosition(x, y);under.addImage(image);stamper.close();reader.close();}

這里用的圖片是路徑的形式,還有種情況是圖片是base64的時候,這種情況就需要轉一下圖片格式了,具體代碼如下:

@Testpublic void testPic() throws Exception {// 模板文件路徑String templatepath = "F:\\pdfWork\\2\\test9.pdf";// 生成的文件路徑String targetpath = "F:\\pdfWork\\2\\test10.pdf";// 這個指的是模板中對應位置的名字String fieldname = "flag";// 讀取模板文件InputStream input = new FileInputStream(new File(templatepath));PdfReader reader = new PdfReader(input);PdfStamper stamper = new PdfStamper(reader, new FileOutputStream((targetpath)));// 提取pdf中的表單AcroFields form = stamper.getAcroFields();form.addSubstitutionFont(BaseFont.createFont("Font/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED));// 通過域名獲取所在頁和坐標,左下角為起點int pageno = form.getFieldPositions(fieldname).get(0).page;Rectangle signrect = form.getFieldPositions(fieldname).get(0).position;float x = signrect.getLeft();float y = signrect.getBottom();// 讀圖片//這里就是base64 的碼String imgStr = ""byte [] byteArray = Base64.getDecoder().decode();Image image = Image.getInstance(byteArray);// 獲取操作的頁面PdfContentByte under = stamper.getOverContent(pageno);// 根據域的大小縮放圖片//image.scaleToFit(signrect.getWidth(), signrect.getHeight());image.scaleToFit(100, 100);// 添加圖片image.setAbsolutePosition(x, y);under.addImage(image);stamper.close();reader.close();} 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java使用itext将图片放到pdf模板的指定位置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。