pdf文件动态签章以及生成动态信息

步骤1.conversionItextPdf(将pdf转换成编码软件为Itext的pdf)
代码如下

public void conversionItextPdf() throws Exception {String newfile = "D:\\生成编码软件为Itext格式的PDF.pdf";String[] files = {"D:\\其他编码软件类型的PDF.pdf", ""};Document document = new Document(new PdfReader(files[0]).getPageSize(1));try {document = new Document(new PdfReader(files[0]).getPageSize(1));PdfCopy copy = new PdfCopy(document, new FileOutputStream(newfile));document.open();for (int i = 0; i < files.length; i++) {PdfReader reader = new PdfReader(files[i]);int n = reader.getNumberOfPages();for (int j = 1; j <= n; j++) {document.newPage();PdfImportedPage page = copy.getImportedPage(reader, j);copy.addPage(page);}}} catch (Exception e) {e.printStackTrace();} finally {document.close();}}

步骤2.用adobe软件为pdf添加表单域



步骤3.java代码给表单域赋值

public Map<String, String> convertMap(MakeLoanRequest request) throws Exception {Map<String, String> map = new HashMap<>();map.putAll(getDate());map.put("name", "张三");map.put("idCardNum", "320345199020562356");return map;}
public InputStream generationContract(String templatePath, Map<String, String> map) {try {PdfReader reader = new PdfReader(templatePath);// 读取pdf模板ByteArrayOutputStream bos = new ByteArrayOutputStream();PdfStamper stamper = new PdfStamper(reader, bos);// 输出流AcroFields form = stamper.getAcroFields();Map<String, AcroFields.Item> fieldMap = form.getFields();for (Map.Entry<String, AcroFields.Item> entry : fieldMap.entrySet()) {String name = entry.getKey();form.setField(name, map.get(name));}//如果为false那么生成的PDF文件还能编辑,一定要设为truestamper.setFormFlattening(true);stamper.close();return byte2Input(bos.toByteArray());} catch (Exception e) {e.printStackTrace();}return null;}

1.此处是将pdf赋值后以输入流的形式返回,可根据自己需要做修改
2.步骤1中,将pdf设置成编码软件为Itext的格式,标红的PdfStamper PdfStamper(import com.itextpdf.text.pdf.PdfReader;import com.itextpdf.text.pdf.PdfStamper;)才能读取到pdf中的表单域

如果有遇到不理解的,可加QQ:467387096 一起讨论

生成可编辑的pdf(可java代码动态赋值)相关推荐

  1. idea自动生成get set_CTO:不要在Java代码中写set/get方法了,逮一次罚款

    前言 what?你的 Java 代码中还充斥着大量的 set/get 方法? 我们在刚开始学习 Java 语言的时候讲过,面向对象的三大特征就是封装,继承,和多态.在 Java 中,要保证封装性,需要 ...

  2. java rtmp推流_视频直播生成推流和播放地址的Java代码示例

    概述 直播推流地址和播放地址本身没有API接口,需要在客户端自行拼接地址,然后使用推流工具或者播放器对其推流或播放.本文主要介绍如何生成直播的推流以及播放地址. 详细信息 视频直播生成推流和播放地址的 ...

  3. 4列的计算机代码,干货 | 10分钟带你彻底了解column generation(列生成)算法的原理附java代码...

    OUTLINE 前言 预备知识预警 什么是column generation 相关概念科普 Cutting Stock Problem CG求解Cutting Stock Problem 列生成代码 ...

  4. 视频直播生成推流和播放地址的Java代码示例

    视频直播生成推流和播放地址的Java示例代码如下所示. import java.math.BigInteger; import java.security.MessageDigest; import ...

  5. Android开发——Java代码动态改变图片颜色

    前言 在Android开发当中,我们会遇到多张图片需要改变背景颜色,我们不能用代码写死,但是我们setBackgroundColor方法改变是会被把我们背景变成直角的,但是从用户体验感的角度来讲是带有 ...

  6. 使用java代码动态在oracle数据库中动态创建表

    一.jdbcTemplate的配置 package com.djhu.followup.config; import com.alibaba.druid.pool.DruidDataSource;im ...

  7. Java word动态数据填充并转为pdf最详细的讲解附带项目

    Java Word数据动态填充,并将word转为pdf 适用范围: 1.已有word模板,word中的一些数据需要动态生成. 2.word转为pdf 本文章讲解的内容是一个完整的适用流程.就是首先是一 ...

  8. 如何在Java代码中使用SAP云平台CloudFoundry环境的环境变量

    本文使用的例子源代码在我的github上. 在我的公众号文章在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务介绍了如何通过Cloud Connector ...

  9. swagger生成对应的客户端、服务端代码

    根据yaml文件生成对应的客户端.服务端代码 前言 ​ 对于早期的webservice接口,我们可以根据wsdl文件生成对应的客户端和服务端代码.那么同样的针对于Restful风格的接口,也有同样的根 ...

  10. java代码防止sql注入_动态Java代码注入

    java代码防止sql注入 在本文中,我们将研究如何将Java代码动态加载到正在运行的jvm中. 该代码可能是全新的,或者我们可能想更改程序中某些现有代码的功能. (在开始之前,您可能想知道为什么到底 ...

最新文章

  1. MySQL主从复制延迟的监测及缓解
  2. 屏幕输出语句_2.2 数据输入与输出
  3. *.bmp序列保存为*.raw文件[matlb实现]
  4. 修改wordpress上传文件大小限制
  5. JPA多条件复杂SQL动态分页查询
  6. python接口测试第二期_Python接口测试实战2 - 使用Python发送请求
  7. OJ1079: a+b(多实例测试2)(C语言数组实现)
  8. Python入门2_之列表元组
  9. [转]分布式中Redis实现Session终结篇
  10. 手机屏大字滚动_LED跑马灯屏-LED跑马灯屏App下载-
  11. 【干货】大数据驱动的因果建模在滴滴的应用实践
  12. html 调用离线地图,百度地图API1.1制作的离线地图控件(html+webbroswer)
  13. CMSC5713-IT项目管理之四、项目规划Project Planning
  14. C# + HotKey
  15. 2021-11-25【数据结构/严蔚敏】【Dijkstra】【代码实现算法7.15】
  16. 【RPC】序列化与反序列化
  17. Error while importing package: Couldn’t decompress package
  18. 智能硬件APP开发之路:基于机智云APP开源框架
  19. 常用快捷键,不积硅步无以至千里
  20. ipadpython代码_科学网—如何用iPad运行Python代码? - 王树义的博文

热门文章

  1. 重写弹幕射击游戏的记录
  2. 三菱GXWorks2 程序仿真功能
  3. VS2010对话框中使用MSChart控件
  4. WooCommerce税收入门指南,第2部分
  5. 软件质量保证与测试 问答题
  6. 北京理工大学小学期乐学 t23树上统计
  7. WEB前端视频教程网站推荐
  8. 怎样确定远程计算机ip地址,如何获取远程计算机的IP地址
  9. scratch课程案例——漫天飞雪
  10. UE4 遮挡剔除文档