• 根据现有PDF模板填充信息(SpringBoot)


    根据现有PDF模板填充信息(SpringBoot+maven)

    首先得有一个pdf模板,建立pdf模板需要下载工具
    红色框为文本框,filename为域名。java需要根据域名赋值

    pom 文件配置

    <!-- always needed -->
            <dependency>
                <groupId>com.itextpdf</groupId>
                <artifactId>layout</artifactId>
                <version>7.0.3</version>
            </dependency>
    
            <!-- only needed for forms -->
            <dependency>
                <groupId>com.itextpdf</groupId>
                <artifactId>forms</artifactId>
                <version>7.0.3</version>
            </dependency>
    
            <!-- only needed for Asian fonts -->
            <dependency>
                <groupId>com.itextpdf</groupId>
                <artifactId>font-asian</artifactId>
                <version>7.0.3</version>
            </dependency>

    java 代码

     // pdf文件
        private Boolean tranPdf(CopyRightsVo copyRightsVo) {
        // 模板地址
            String filePath = UlegalZCUtil.rootPath() + File.separator + "pdf" + File.separator + "templateC.pdf";
            // 填完信息后生成新的模板地址
            String toPath = UlegalZCUtil.rootPath() + File.separator + "pdf" + File.separator + "templateOL" + ".pdf";
            try {
                System.out.println(filePath);
                PdfDocument pdfDoc = new PdfDocument(new PdfReader(filePath), new PdfWriter(toPath));
                PdfAcroForm pdfAcroForm = PdfAcroForm.getAcroForm(pdfDoc, true);
                pdfAcroForm.getField("fileName").setValue("小编");
                pdfAcroForm.getField("applicant").setValue("ol");
                Date date = new Date();
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
                String cmmitTime = simpleDateFormat.format(date);
                pdfAcroForm.getField("time").setValue(cmmitTime);
    //            pdfAcroForm.getField("hashValue").setValue(copyRightsVo.getHashValue());
                pdfAcroForm.flattenFields();
                pdfDoc.close();
            } catch (Exception e) {
                e.printStackTrace();
                return false;
            }
            return true;
        }

     搞定收工。。。。

  • 相关阅读:
    OKR让你的目标杜绝“虎头蛇尾”
    OKR让你的团队更加优秀
    个人与企业OKR如何做好联结(三)
    OKR的最佳状态不是满分
    Tita OKR:目标地图的妙用
    个人与企业OKR如何做好联结(四)
    函数可以替换成过滤器demo
    @click传递事件和参数
    vue组件
    watch与computed区别
  • 原文地址:https://www.cnblogs.com/memoryXudy/p/7805277.html
Copyright © 2020-2023  润新知