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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

【Java中级篇】使用itextpdf生成PDF

發(fā)布時間:2025/3/8 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java中级篇】使用itextpdf生成PDF 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我們可以發(fā)現(xiàn)很多求職網(wǎng)站都會將我們錄入的信息來生成一個PDF簡歷文件。所以我這里提供了用itextpdf生成的PDF的代碼。

一、步驟

1.1、使用Adobe Acrobat Pro工具編輯PDF模板

1.2、根據(jù)PDF模板文件路徑創(chuàng)建一個PDFReader對象

1.3、創(chuàng)建一個輸出流對象,用于存放生成的PDF文件

1.4、利用前面的對象,創(chuàng)建一個PDF印章,并獲取PDF表單

1.5、設(shè)置支持中文

1.6、填充數(shù)據(jù)

1.7、關(guān)閉流

二、具體操作和編碼

2.1、編輯PDF模板

打開求職信模板,如下所示:

點擊準(zhǔn)備表單,然后就可以向這個PDF文件中添加各種表單組件了

?

我這里添加了四個文本域:name、mobile、email、position,然后保存文件,這樣我們的模板文件就編輯好了。

編輯好的模板下載

2.2、具體編碼

我這里使用Maven來構(gòu)建工程,需要在pom.xml中添加依賴

<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.6</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency> import java.io.FileOutputStream; import java.io.IOException; import java.util.List;import com.itextpdf.text.DocumentException; import com.itextpdf.text.Image; import com.itextpdf.text.pdf.AcroFields; import com.itextpdf.text.pdf.AcroFields.FieldPosition; import com.itextpdf.text.pdf.BaseFont; import com.itextpdf.text.pdf.PdfContentByte; import com.itextpdf.text.pdf.PdfReader; import com.itextpdf.text.pdf.PdfStamper;public class PDF {public static void main(String[] args) throws IOException, DocumentException {// 1、創(chuàng)建PDFReader對象PdfReader reader = new PdfReader("C:\\Users\\cc\\Desktop\\求職信模板.pdf");// 模板文件的路徑// 2、創(chuàng)建輸出流對象FileOutputStream fos = new FileOutputStream("C:\\Users\\cc\\Desktop\\我的求職信.pdf");// 最后輸出文件的路徑// 3、創(chuàng)建印章對象PdfStamper ps = new PdfStamper(reader, fos);// 4、獲取PDF表單AcroFields fields = ps.getAcroFields();// 5、設(shè)置支持中文BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", false);fields.addSubstitutionFont(bfChinese);// 6、數(shù)據(jù)填充(沒有圖片的話下面可以省略)List<FieldPosition> signature = fields.getFieldPositions("image");for (int i = 0; i < signature.size(); i++) {Image img = Image.getInstance("C:\\Users\\cc\\Desktop\\1.png");float x = signature.get(i).position.getLeft();float y = signature.get(i).position.getBottom();float width = signature.get(i).position.getWidth();float height = signature.get(i).position.getHeight();img.setAlignment(Image.DEFAULT);// 設(shè)置對齊位置img.setAbsolutePosition(x, y);// 設(shè)置坐標(biāo)位置img.scaleAbsolute(width, height);// 設(shè)置圖片大小:寬200,高90// img.scalePercent(5);//設(shè)置圖片百分比PdfContentByte contentByte = ps.getOverContent(signature.get(i).page);contentByte.addImage(img);// 添加圖片}fields.setField("name", "張三");fields.setField("mobile", "17017511125");fields.setField("email", "1658633515@qq.com");fields.setField("position", "Java開發(fā)工程師");ps.setFormFlattening(true);// 7、流關(guān)閉ps.close();fos.close();}}

?

總結(jié)

以上是生活随笔為你收集整理的【Java中级篇】使用itextpdf生成PDF的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。