当前位置: 首页 > news >正文

Java填充PDF并返回填充后PDF文件及对应base64码

前期准备

下载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>

代码块

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;}

填充后文件样式

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Leetcode JAVA刷刷站(38)外观数列
  • 大白话解释TCP的三次握手和四次挥手
  • 视频号AI美女跳舞,轻松月入30000+,蓝海赛道,流量池巨大,起号猛
  • 【编程知识】如何有趣的理解变量的数据类型和数值
  • 东南大学:Wi-Fi 6搭档全光以太,打造“数智东南”信息高速路
  • 【ARM 芯片 安全与攻击 5.2.1 -- 侧信道与隐蔽信道的区别】
  • 代码随想录算法训练营第二十天(二叉树 七)
  • C语言之“ 数组 ”
  • MySQL存储过程深入指南
  • 三千元左右的卧室投影仪怎么选?当贝D6X Pro代替电视的最佳选择
  • 构建实时数据仓库:流式处理与实时计算技术解析
  • FastHTML:使用 Python 彻底改变 Web 开发
  • Linux 基础命令大全
  • 浮点数的使用
  • 【solidity 学习】错误处理机制汇总
  • CSS3 变换
  • Effective Java 笔记(一)
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • github从入门到放弃(1)
  • iOS 颜色设置看我就够了
  • JAVA并发编程--1.基础概念
  • Java多态
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • magento 货币换算
  • Redis 懒删除(lazy free)简史
  • Spring框架之我见(三)——IOC、AOP
  • STAR法则
  • uni-app项目数字滚动
  • vue.js框架原理浅析
  • webpack+react项目初体验——记录我的webpack环境配置
  • 后端_ThinkPHP5
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 力扣(LeetCode)21
  • 前端相关框架总和
  • 区块链共识机制优缺点对比都是什么
  • 微信小程序开发问题汇总
  • 一些css基础学习笔记
  • Spring Batch JSON 支持
  • 第二十章:异步和文件I/O.(二十三)
  • # Redis 入门到精通(九)-- 主从复制(1)
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #QT项目实战(天气预报)
  • (7) cmake 编译C++程序(二)
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (LeetCode) T14. Longest Common Prefix
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (二十六)Java 数据结构
  • (黑马C++)L06 重载与继承
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (四)软件性能测试
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (一)Thymeleaf用法——Thymeleaf简介
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...