如何用java 生成 pdf文件,废话少说直接上代码
一、首先maven 拉取依赖
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>7.2.3</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
二、编写代码
import com.itextpdf.forms.PdfAcroForm;
import com.itextpdf.kernel.colors.DeviceRgb;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import java.awt.*;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class PDFTest {
//使用模板 需要用pdf编辑一下
private static final String TEMP_PATH ="D:\\模板.pdf";
private static final String DES_PATH ="D:\\打印后.pdf";
//使用本地字体库
private static final String FONT_PATH ="C:\\windows\\Fonts\\simkai.ttf";
public static void main(String[] args) throws IOException {
PdfDocument pdfDocument=new PdfDocument(new PdfReader(TEMP_PATH),new PdfWriter(DES_PATH));
PdfAcroForm form=PdfAcroForm.getAcroForm(pdfDocument,true);
PdfFont font= PdfFontFactory.createFont(FONT_PATH);
DeviceRgb color=new DeviceRgb(0,0,0);
Map<String,String> map=new HashMap<String,String>();
map.put("Text1","***银行");
map.put("Text2","张三");
map.put("Text3","买房");
map.put("Text4","500000.00元");
map.put("Text5","2023年1月1日");
map.put("Text6","2024年1月1日");
for(Map.Entry<String,String> entry:map.entrySet()){
System.out.println(entry.getKey());
System.out.println(entry.getValue());
form.getFormFields()
.get(entry.getKey())
.setValue(entry.getValue())
.setFont(font)
.setColor(color);
}
//清除格式
form.flattenFields();
//最后这个代码必须用 否则生成空的pdf
pdfDocument.close();
}
}
三、运行测试
至于如何使用可以参考这个图片
模板在这