当前位置:   article > 正文

Java填充PDF并返回填充后PDF文件及对应base64码_java 写入pdf

java 写入pdf

前期准备

下载PDF编辑工具(Adobe Acrobat 9 Pro):

在这里插入图片描述
可以主页关注小程序【白哥Java】回复【PDF编辑软件】即可获取 或者直接联系博主也可

在这里插入图片描述

主页如下:
在这里插入图片描述

软件使用流程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此处流程为文本域流程 图片或其他大致相同
生成模板PDF样式如下:
在这里插入图片描述

代码开发

引入依赖

<dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.13.2</version>
        </dependency>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itext-asian</artifactId>
            <version>5.2.0</version>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

代码块

public static String editPdfAndGetBase64(String srcPdfPath, String destPdfPath) throws Exception {
        PdfReader reader = new PdfReader("C:\\Users\\Administrator\\Downloads\\附2:电子处方文件参考模板-副本.pdf");
        ByteArrayOutputStream baos = new ByteArrayOutputStream();

        PdfStamper stamper = new PdfStamper(reader, baos);
        AcroFields form = stamper.getAcroFields();
        BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
        form.addSubstitutionFont(bf);
        form.setField("patientName", "周大炮");
        form.setField("age", "24岁");
        form.setField("prescriptionType", "普通\n处方");
        form.setField("hisRegistorNo", "263002");
        form.setField("hisPrescriptionNo", "HE920394223");
        form.setField("recipeDate", "2024-08-14");
        form.setField("department", "内分泌内科");
        form.setField("sex", "男");
        form.setField("icdName", "蚊媒介的病毒性发热,其他特指的");
        form.setField("drugs","1.瑞格列奈片               2mg*30片/盒               4盒"+"\n"+"     用法用量:口服   每天3次   一次2片"+"\n");
        stamper.setFormFlattening(true);
        stamper.close();
        reader.close();

        // 将ByteArrayOutputStream的内容写入文件
        try (FileOutputStream fos = new FileOutputStream("D:\\处方流转\\12.pdf")) {
            fos.write(baos.toByteArray());
        }

        // 将ByteArrayOutputStream的内容转换为Base64字符串
        byte[] pdfBytes = baos.toByteArray();
        String encode = Base64Utils.encode(pdfBytes);

        // 返回Base64字符串
        return encode;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

填充后文件样式

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/1012252
推荐阅读
相关标签
  

闽ICP备14008679号