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

外贸网站建站k学做软件的网站

外贸网站建站k,学做软件的网站,物业管理系统app,wordpress角色权限目录 目录 一、准备环境 二、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.zqtcl.cn/news/170525/

相关文章:

  • 网站设计与制作培训班户外运动网站建设策划
  • 保险公司网站网站域名注册哪个好
  • 平台网站建设可行报告工作室注册条件
  • 罗湖附近公司做网站建设哪家便宜做cpa必须要有网站吗
  • 深圳网站开发教程wordpress密码登录插件
  • 农机网站建设目标上海网站建设工资多少
  • 手机做网站过程网站名字做版权需要源代码吗
  • 公司微信网站建设方案现在做外贸前景如何
  • 如何使用微信公众号做网站河南省专业做网站公司
  • 清远市清城区网站建设公司广州黄浦区建设局网站
  • 站长做2个网站网站程序指的是什么
  • 网站建设jw100请拿笔记记下新域名
  • 兰州市住房保障和城乡建设局网站如何有效的推广网站
  • 网站推广做百度还是360北京企业网站建设费用
  • 推荐一个简单的网站制作策划方案免费网站
  • 用vs2012做网站案例企业现在有必要做网站吗
  • 网站建设少用控件wordpress默认分类
  • php网站是什么数据库文件网站开发收
  • 新网网站空间做网站和app哪类商标
  • drupal网站建设数据库厦门市网站建设
  • 解释微信微网站室内设计效果图展板
  • 教做发绳的网站游戏网站建设需要多少钱
  • 那个网站可以做双色球号码对比的网站设计好学吗
  • 网站建设如何获取客户韩国建筑网站
  • 固始网站建设公司wordpress会员功能
  • 在哪找做调查赚钱的网站好自己做网站的成本
  • 网站开发职业xshuan主题wordpress
  • 网站代码框架建设网站需要学什么程序
  • 广州搜索seo网站优化企业邮箱密码忘了怎么重置密码
  • 重庆模板网站建设做新房网站怎么弄