<!--pdf start-->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.10</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.itextpdf/font-asian -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>font-asian</artifactId>
<version>7.1.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<!--pdf end-->
2.Adobe Acrobat 准备表单 填写对应java字段
3.java生成
@RestController
@RequestMapping("/product/pdf")
public class PDFController {
@PostMapping("/make")
public ResponseResult makePdf(@RequestBody PDFBo bo) {
// 模板路径
String templatePath = "C:/债权债务确认函模板.pdf";
// 生成的新文件路径
String newPDFPath = "C:/myuser/债权债务确认函样板.pdf";
PdfReader reader;
FileOutputStream out;
ByteArrayOutputStream bos;
PdfStamper stamper;
try {
out = new FileOutputStream(newPDFPath);// 输出流
reader = new PdfReader(templatePath);// 读取pdf模板
bos = new ByteArrayOutputStream();
stamper = new PdfStamper(reader, bos);
AcroFields form = stamper.getAcroFields();
form.setField("debentures",bo.getDebentures());
form.setField("debenturesLegalRepresentative",bo.getDebenturesLegalRepresentative());
form.setField("debenturesAddress",bo.getDebenturesAddress());
form.setField("obligor",bo.getObligor());
form.setField("obligorLegalRepresentative",bo.getObligorLegalRepresentative());
form.setField("obligorLegalRepresentativeAddress",bo.getObligorLegalRepresentativeAddress());
form.setField("signYear",bo.getSignYear());
form.setField("signMonth",bo.getSignMonth());
form.setField("signDay",bo.getSignDay());
form.setField("protocol",bo.getProtocal());
form.setField("contractNO",bo.getContractNO());
form.setField("byYear",bo.getByYear());
form.setField("byMonth",bo.getByMonth());
form.setField("byDay",bo.getByDay());
form.setField("amountOfMoney",bo.getAmountOfMoney());
form.setField("amountInWords",bo.getAmountInWords());
form.setField("repaymentYear",bo.getRepaymentYear());
form.setField("repaymentMonth",bo.getRepaymentMonth());
form.setField("repaymentDay",bo.getRepaymentDay());
stamper.setFormFlattening(true);// 如果为false那么生成的PDF文件还能编辑,一定要设为true
stamper.close();
Document doc = new Document();
PdfCopy copy = new PdfCopy(doc, out);
doc.open();
PdfImportedPage importPage = copy.getImportedPage(new PdfReader(bos.toByteArray()), 1);
copy.addPage(importPage);
doc.close();
} catch (IOException e) {
System.out.println(1);
} catch (DocumentException e) {
System.out.println(2);
}
return new ResponseResult();
}
}
觉得好用记得回来给我个赞哦!!!