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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java使用itext填充pdf模板,超简单教学,有手就行

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java使用itext填充pdf模板,超简单教学,有手就行 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java使用itext填充pdf模板

  • 1、先去建一個Word文件,設置好想要填充的地方,留好位置,設置好下劃線
  • 2、將Word另存為pdf
  • 3、打開電腦中的Adobe Acrobat pro DC(這個應該win10 都有,搜索一下就出來了),點擊 文件→創建→創建表單
  • 4、然后導入剛剛生成的pdf
    • 會出來這個頁面
    • 雙擊這個陰影部分,將名稱改成你要設置的名稱,后面要根據這個名稱來給他賦值
    • 全部設置好以后就可以另存為了
  • 5、前期的pdf模板準備好了,就開始上代碼!
    • 1、首先導入我們所需要的依賴
    • 2、上代碼
    • 3、字體需要放在resources目錄下
  • 6、開始測試
  • 7、看看效果
    • ok,非常完美!
    • 問題總結:

1、先去建一個Word文件,設置好想要填充的地方,留好位置,設置好下劃線

2、將Word另存為pdf

3、打開電腦中的Adobe Acrobat pro DC(這個應該win10 都有,搜索一下就出來了),點擊 文件→創建→創建表單

4、然后導入剛剛生成的pdf

會出來這個頁面

雙擊這個陰影部分,將名稱改成你要設置的名稱,后面要根據這個名稱來給他賦值

全部設置好以后就可以另存為了


5、前期的pdf模板準備好了,就開始上代碼!

1、首先導入我們所需要的依賴

<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version></dependency>

2、上代碼

package com.icaremgt.admin.test;import com.itextpdf.text.Image; import com.itextpdf.text.Rectangle; import com.itextpdf.text.pdf.*; import org.junit.Test;import java.io.*; import java.util.HashMap; import java.util.Map;public class TestPdf {@Testpublic void testPdf() {// 模板文件路徑String inputFileName = "F:\\pdfWork\\1\\mytests.pdf";// 生成的文件路徑String outputFileName = "F:\\pdfWork\\2\\test9.pdf";OutputStream os = null;PdfStamper ps = null;PdfReader reader = null;PdfStamper stamper = null;try {os = new FileOutputStream(new File(outputFileName));// 2 讀入pdf表單reader = new PdfReader(inputFileName);// 3 根據表單生成一個新的pdfps = new PdfStamper(reader, os);// 4 獲取pdf表單AcroFields form = ps.getAcroFields();// 5給表單添加中文字體BaseFont bf = BaseFont.createFont("Font/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);form.addSubstitutionFont(bf);// 6查詢數據================================================Map<String, Object> data = new HashMap<String, Object>();data.put("childrenName", "李四");data.put("gender", "男");data.put("year", "2021");data.put("month", "09");data.put("day", "23");data.put("userName", "張三");data.put("address", "河南省案發時發放手動閥是的");// 7遍歷data 給pdf表單表格賦值for (String key : data.keySet()) {form.setField(key, data.get(key).toString());}ps.setFormFlattening(true);System.out.println("===============PDF導出成功=============");} catch (Exception e) {System.out.println("===============PDF導出失敗=============");e.printStackTrace();} finally {try {ps.close();reader.close();os.close();} catch (Exception e) {e.printStackTrace();}}}}

3、字體需要放在resources目錄下

BaseFont bf = BaseFont.createFont("Font/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

這個SIMYOU.TTF就是字體 (字體下載地址)

6、開始測試


導出成功!

7、看看效果

ok,非常完美!

可以關注我,下一期講java使用itext將圖片放到pdf模板的指定位置

問題總結:

@gao1123576431 這位老哥提出問題說賦值了,但是最后導出的PDF是沒有值得,后來他給出了解決辦法,引入itext-asian

<dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency>

總結

以上是生活随笔為你收集整理的java使用itext填充pdf模板,超简单教学,有手就行的全部內容,希望文章能夠幫你解決所遇到的問題。

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