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

server/2024/10/16 2:26:36/

前期准备

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

代码块

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

填充后文件样式

在这里插入图片描述


http://www.ppmy.cn/server/100938.html

相关文章

Node.js、npm和ng之间的关系

一、Node.js 定义&#xff1a;Node.js是一个开源的、跨平台的JavaScript运行环境&#xff0c;它允许开发者在服务器端运行JavaScript代码。Node.js基于Chrome V8引擎&#xff0c;提供高性能和非阻塞I/O&#xff08;输入输出&#xff09;操作。功能&#xff1a;Node.js主要用于…

JSON与EXL文件互转

功能&#xff1a;实现json到excel文件的相互转换(支持json多选版) 目的&#xff1a;编码与语言对应&#xff0c;方便大家使用 页面设计&#xff1a; 介绍&#xff1a; 1.选择文件栏目选择想要转换的文件 2.生成路径是转换后文件所在目录 3.小方框勾选与不勾选分别代表exl到…

【C++11】右值引用的深度解析(什么是右值引用?它有什么作用?能应用在那些场景?)

目录 一、前言 二 、什么是左值什么是右值&#xff1f; &#x1f525;左值&#x1f525; &#x1f525;右值 &#x1f525; 三、什么是右值引用&#xff1f; &#x1f4a7;左右引用的“引出”&#x1f4a7; &#x1f4a7;左值引用 &#x1f4a7; &#x1f4a7;右值引用…

无人机里的陀螺仪/加速器/气压计/GPS详解

陀螺仪 是一种用于测量和控制无人机姿态的重要传感器。它通过检测无人机的旋转运动来提供准确的方向和角度信息。 加速度计 用于提供无人机在XYZ三轴方向所承受的加速力。它也能决定无人机在静止状态时的倾斜角度。 气压计 通过测量大气压力来估算无人机的高度。随着高度的…

CPU飙升 怎么定位问题

传统的方法 【top】 查看所有进程占系统CPU的排序&#xff0c;定位是哪个进程搞的鬼。PID那一列就是进程号。 【top -Hp pid】 定位进程中使用 CPU 最高的线程tid 【printf ‘0x%x’ tid】 线程 tid 转化 16 进制,例如printf ‘0x%x’ 11882 得到16进制的 0x2e6a 【jstack…

CentOS中使用tar命令来压缩和解压指定的目录

压缩目录: tar -czvf test.tar.gz test/解压缩到当前目录: tar -xzvf test.tar.gz解释&#xff1a; tar 是用来打包和解压文件的命令。 -c 代表创建一个新的压缩文件。 -x 代表解压文件。 -z 代表使用gzip压缩或解压缩。 -v 代表在压缩或解压时显示详细信息。 -f 后面跟着要创…

密码学基础---椭圆曲线一文打尽

1.ECC简介及密钥生成 当前公认安全有效的三大类公钥密钥体制分别为基于大数因子分解难题(RSA)、离散对数难题(DSA)和椭圆曲线离散对数&#xff08;ECC&#xff09;难题的密码体制。 最初RSA由于其容易理解被广泛运用&#xff0c;但随着计算机性能的提升&#xff0c;要保证RS…

【论文解读】Performance Comparison of H.264 and H.265 Encoders for 4K Video Sequences

级别:IEEE作者:Jianing Li, Zhaohui Li, Dongmei Li时间:2016机构:中国传媒大学下载:Performance Comparison of H.264 and H.265 Encoders for 4K Video Sequences摘要 背景:随着电视行业对超高清(Ultra-High Definition, UHD)的需求不断增长,4K Ultra HD技术正逐渐成…