合肥专业网站优化哪家好阿里云网站备案拍照
news/
2025/9/23 7:35:59/
文章来源:
合肥专业网站优化哪家好,阿里云网站备案拍照,盐城公司做网站,桂林论坛网站建设目录
目录
一、准备环境
二、iTextPDF介绍
三、步骤
四、访问查看结果
五、源代码参考 一、准备环境
①下载一个万兴pdf软件
②准备一个pdf 文件
二、iTextPDF介绍
这是一个用于生成PDF文档的Java库#xff0c;
文档创建与修改#xff1a;iTextPDF能够从零开始创建…目录
目录
一、准备环境
二、iTextPDF介绍
三、步骤
四、访问查看结果
五、源代码参考 一、准备环境
①下载一个万兴pdf软件
②准备一个pdf 文件
二、iTextPDF介绍
这是一个用于生成PDF文档的Java库
文档创建与修改iTextPDF能够从零开始创建PDF文档也可以读取已有的PDF文件并对其中的内容进行修改如添加、删除或更新页面内容。
文本与图像插入可以在PDF文档中插入文本、图片、图表等内容。
表格制作支持复杂表格的创建和填充包括单元格合并、样式设定等。
表单填写与交互支持创建和填充交互式PDF表单包括文本字段、复选框、列表框等并且可以对表单域进行读写操作。
数字签名提供对PDF文档进行数字签名的支持确保文档的安全性和完整性。
水印与书签可以添加文档级别的水印和页眉/页脚以及创建和编辑PDF书签结构。
PDF拆分与合并iTextPDF可以用来拆分现有的PDF文件或合并多个PDF文档为一个单一文件。
PDF/A合规性支持生成符合PDF/A标准的文档这种格式特别适合长期保存和归档。
iTextPDF历经多个版本迭代最新的iText 7系列采用了全新的API设计提高了性能和灵活性。同时iText也提供了针对.NET平台的版本(iTextSharp)以及其他多种语言的绑定满足不同开发者的需求。
三、步骤
将pdf以万兴pdf形式打开点击表单然后点击添加文本域 在下方添加相应的文本域相当于前端表单的name属性后端填充数据的时候要调用文本域文中的name和tel。 将这个文件保存后复制到此文件夹下 引入依赖 dependencygroupIdcom.itextpdf/groupIdartifactIditext7-core/artifactIdversion7.2.5/versiontypepom/type/dependency代码
package com.by.controller;import com.itextpdf.forms.PdfAcroForm;
import com.itextpdf.forms.fields.PdfFormField;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.geom.PageSize;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;/*** 控制器类用于处理PDF模板填充及下载请求*/
RestController
public class PdfController {/*** 处理GET请求以下载填充了数据的PDF文件* param response HttpServletResponse对象用于设置响应头和发送下载文件* return 响应实体包含填充好数据的PDF字节流* throws IOException 如果读取或写入PDF文件时发生异常*/GetMapping(/download)public ResponseEntitybyte[] test(HttpServletResponse response) throws IOException {// 设置响应头指示浏览器以附件形式下载文件并设置文件名HttpHeaders headers new HttpHeaders();headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);String downloadFileName System.currentTimeMillis() .pdf;response.setHeader(Content-Disposition, attachment;filename downloadFileName);/*** 准备需要填充到PDF模板中的数据* 其中name和tel为pdf中插入模板的表单数据*/MapString, String dataMap new HashMap();dataMap.put(name, 张三);dataMap.put(tel, 17550635678);// 填充数据并生成带数据的PDF字节流byte[] pdfBytes getPdf(dataMap);// 创建并返回包含填充后PDF字节流的响应实体return new ResponseEntity(pdfBytes, headers, HttpStatus.CREATED);}/*** 根据提供的数据填充PDF模板并返回填充后的PDF字节流** param dataMap 需要填充到PDF模板中的键值对数据* return 填充好数据的PDF文件字节数组* throws IOException 如果读取或写入PDF文件时发生异常*/private byte[] getPdf(MapString, String dataMap) throws IOException {// 获取PDF模板文件路径String sourcePdf ResourceUtils.getURL(classpath:).getPath() /templates/2.pdf;// 使用PDF阅读器加载模板文件PdfReader pdfReader new PdfReader(new FileInputStream(sourcePdf));// 创建一个内存输出流用于存储填充好数据的PDF文件ByteArrayOutputStream outputStream new ByteArrayOutputStream();// 创建PDF文档对象连接读取器和输出流PdfDocument pdf new PdfDocument(pdfReader, new PdfWriter(outputStream));// 设置默认页面大小为A4pdf.setDefaultPageSize(PageSize.A4);// 获取PDF表单域对象PdfAcroForm form PdfAcroForm.getAcroForm(pdf, true);MapString, PdfFormField fields form.getFormFields();// 设置字体这里使用的是STSong-Light字体PdfFont currentFont PdfFontFactory.createFont(STSong-Light, UniGB-UCS2-H, PdfFontFactory.EmbeddingStrategy.PREFER_NOT_EMBEDDED);// 遍历待填充的数据并将其填入对应的表单域dataMap.forEach((key, value) - {OptionalPdfFormField formFieldOptional Optional.ofNullable(fields.get(key));formFieldOptional.ifPresent(formField - {// 设置字体并替换表单域的值formField.setFont(currentFont).setValue(value);});});// 锁定并合并所有表单域使其无法再编辑form.flattenFields();// 关闭PDF文档释放资源pdf.close();// 将填充好的PDF文件转换为字节数组并返回return outputStream.toByteArray();}
}四、访问查看结果
http://localhost:8080/download 五、源代码参考
https://codeup.aliyun.com/62858d45487c500c27f5aab5/huang-spring-boot-pdf.git
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911792.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!