java使用itext填充pdf模板,超简单教学,有手就行
生活随笔
收集整理的這篇文章主要介紹了
java使用itext填充pdf模板,超简单教学,有手就行
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
java使用itext填充pdf模板
- 1、先去建一個Word文件,設(shè)置好想要填充的地方,留好位置,設(shè)置好下劃線
- 2、將Word另存為pdf
- 3、打開電腦中的Adobe Acrobat pro DC(這個應(yīng)該win10 都有,搜索一下就出來了),點擊 文件→創(chuàng)建→創(chuàng)建表單
- 4、然后導(dǎo)入剛剛生成的pdf
- 會出來這個頁面
- 雙擊這個陰影部分,將名稱改成你要設(shè)置的名稱,后面要根據(jù)這個名稱來給他賦值
- 全部設(shè)置好以后就可以另存為了
- 5、前期的pdf模板準(zhǔn)備好了,就開始上代碼!
- 1、首先導(dǎo)入我們所需要的依賴
- 2、上代碼
- 3、字體需要放在resources目錄下
- 6、開始測試
- 7、看看效果
- ok,非常完美!
- 問題總結(jié):
1、先去建一個Word文件,設(shè)置好想要填充的地方,留好位置,設(shè)置好下劃線
2、將Word另存為pdf
3、打開電腦中的Adobe Acrobat pro DC(這個應(yīng)該win10 都有,搜索一下就出來了),點擊 文件→創(chuàng)建→創(chuàng)建表單
4、然后導(dǎo)入剛剛生成的pdf
會出來這個頁面
雙擊這個陰影部分,將名稱改成你要設(shè)置的名稱,后面要根據(jù)這個名稱來給他賦值
全部設(shè)置好以后就可以另存為了
5、前期的pdf模板準(zhǔn)備好了,就開始上代碼!
1、首先導(dǎo)入我們所需要的依賴
<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 根據(jù)表單生成一個新的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查詢數(shù)據(jù)================================================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", "河南省案發(fā)時發(fā)放手動閥是的");// 7遍歷data 給pdf表單表格賦值for (String key : data.keySet()) {form.setField(key, data.get(key).toString());}ps.setFormFlattening(true);System.out.println("===============PDF導(dǎo)出成功=============");} catch (Exception e) {System.out.println("===============PDF導(dǎo)出失敗=============");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、開始測試
導(dǎo)出成功!
7、看看效果
ok,非常完美!
可以關(guān)注我,下一期講java使用itext將圖片放到pdf模板的指定位置
問題總結(jié):
@gao1123576431 這位老哥提出問題說賦值了,但是最后導(dǎo)出的PDF是沒有值得,后來他給出了解決辦法,引入itext-asian
<dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency>總結(jié)
以上是生活随笔為你收集整理的java使用itext填充pdf模板,超简单教学,有手就行的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高效幂运算(JAVA)--拆分解法、二进
- 下一篇: Error:-81024 LR_VUG: