springboot 生成pdf文件

1.导包

<!--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字段

springboot 生成pdf文件

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();

    }
}

觉得好用记得回来给我个赞哦!!!