java itextPdf根据pdf模板,编辑保存pdf后可二次编辑处理

java 支持pdf 多次编辑的重点只有两个
1:flat属性
2:设置文本域只读属性

看似简单的两个问题,却耗费了一天的时间。pdf没有官方文档太难受了,只能在网上查找相关的案

例。但是很多文章都是copy别人的。没有实际效果。皇天不负有心人,在一番折腾下,终于成功了。

首先:flat属性设置pdf表单域是否可继续编辑;我们在第一次生成pdf的时候,设置flat属性可继续编

辑,这样根据模板生成的pdf就可以继续编辑了。但是有个注意的点就是,要对pdf的文本域设置只读

属性,这样就不会在pdf展示出来文本域的样式了。

这样在继续编辑pdf时,我们可以设置pdf表单域禁止编辑,然后生成的pdf就没有文本域了。

然后,关于如何实现图片覆盖在文字上面,不遮挡文字的效果实现, 以及 两个图片重叠后,不会覆

盖掉图片的效果,这里我就不多说了, 有需要的可自行下载。

有需要的可自行下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/46562.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp 微信小程序根据后端返回的文件链接打开并保存到手机文件夹中【支持doc、docx、txt、xlsx等类型的文件】

项目场景: 我们在使用uniapp官方提供的uni.downloadFile以及uni.saveFile时,会发现这个文件下载的默认保存位置和我们预想的不太一样,容易找不到,而且没有提示,那么我们就需要把文件打开自己保存并且有提示保存到哪个…

探索前沿科技:从迁移学习看人工智能的无限可能性

从迁移学习看人工智能的无限可能性 1 引言1.1 什么是迁移学习1.1.1 迁移学习的定义1.1.2 迁移学习的起源和背景 1.2 迁移学习的重要性1.2.1 解决小数据集问题1.2.2 提高模型训练效率1.2.3 应用于不同领域的广泛性 1.3 迁移学习的前景 2 迁移学习的基本概念2.1 源域和目标域2.1.…

【区块链 + 智慧政务】涉税行政事业性收费“e 链通”项目 | FISCO BCOS应用案例

国内很多城市目前划转至税务部门征收的非税收入项目已达 17 项,其征管方式为行政主管部门核定后交由税务 部门征收。涉税行政事业性收费受限于传统的管理模式,缴费人、业务主管部门、税务部门、财政部门四方处于 相对孤立的状态,信息的传递靠…

模板方法原理与C++实现

定义 定义一个操作中的算法骨架(稳定的),而将一些步骤的实现延迟到子类中(变化的)。模板方法使得子类可以复用一个算法的结构,而只改变(重写)这个算法的特定步骤。 C实现 class L…

ns3-gym入门(二):linear-mesh例子详解

一、问题背景:Random Access Controlling the random access in an IEEE 802.11 mesh network is challenging as the network nodes compete for the shared radio resources. It is known that assigning the same channel access probability to each node is no…

无人机之机架类型篇

碳纤维机架 具有低密度、高强度和高刚度的特点,非常适合商业或工业级无人机的设计。碳纤维机架在飞行过程中具有良好的减振效果,使飞行更加稳定,但制作工艺复杂,成本较高。 工程塑料机架 以其轻便、耐冲击和易加工等特点受到一…

Vue 3 组件通信与状态管理:从基础到Pinia的全面解析

引言 Vue 3引入了Composition API,这为组件通信提供了更多的灵活性和强大的功能。例如,使用provide和inject可以轻松实现跨层级组件的数据传递,而setup函数则为组件提供了更早的生命周期钩子,使得在组件初始化阶段就能进行通信设…

Chrome调试工具

一、Chrome调试工具 1.Ctrl滚轮 可以放大开发者工具代码大小。 2.左边是 HTML 元素结构,右边是 CSS 样式。 3.右边 CSS 样式可以改动数值(左右箭头或者直接输入)和查看颜色。 4.Ctrl 0 复原浏览器大小。 5.如果点击元素,发现右侧…

Netfilter之连接跟踪(Connection Tracking)和反向 SNAT(Reverse SNAT)

连接跟踪(Connection Tracking) 连接跟踪是 Netfilter 框架中的一个功能,用于跟踪网络连接的状态和元数据。它使防火墙能够识别和处理数据包属于哪个连接,并在双向通信中正确匹配请求和响应数据包。 工作原理 建立连接&#xf…

微服务节流控制:Eureka中服务速率限制的精妙配置

微服务节流控制:Eureka中服务速率限制的精妙配置 在微服务架构中,服务的可用性和稳定性对于整个系统的性能至关重要。Eureka作为Netflix开源的服务发现框架,虽然主要用于服务注册与发现,但合理地配置服务的速率限制也是确保服务健…

【C语言】深入解析选择排序

文章目录 什么是选择排序?选择排序的基本实现代码解释选择排序的优化选择排序的性能分析选择排序的实际应用结论 在C语言编程中,选择排序是一种简单且直观的排序算法。尽管它在处理大型数据集时效率不高,但由于其实现简单,常常用于…

基于协同过滤混合算法的餐饮推荐系统设计与实现

基于协同过滤混合算法的餐饮推荐系统设计与实现 Design and Implementation of Restaurant Recommendation System Based on Hybrid Collaborative Filtering Algorithm 完整下载链接:基于协同过滤混合算法的餐饮推荐系统设计与实现 文章目录 基于协同过滤混合算法的餐饮推荐…

牛客TOP101:反转链表

文章目录 1. 题目描述2. 解题思路3. 代码实现 1. 题目描述 2. 解题思路 简单粗暴的写法,就是从头到尾挨个将所有结点的指向翻转即可。需要注意的是,翻转之后会失去原有指向的结点,所以需要提前保存。   具体做法就是,使用cur标记…

面试必备!Redis面试题合集

目录 1.Redis简介 2. 分布式缓存常见的技术选型方案有哪些? 3. 说一下 Redis 和 Memcached 的区别和共同点 4. 缓存数据的处理流程是怎样的? 5. 为什么要用 Redis/为什么要用缓存? 6. Redis 常见数据结构以及使用场景分析 6.1. string 6.2. list 6.3. hash 6.4. s…

Spring源码注解篇二:手写@Component注解

Component注解的功能 在Spring框架中,Component 注解是一个核心特性,用于自动检测类并将其注册为Spring应用上下文中的Bean。这大大简化了Bean的配置过程,使得开发者能够通过注解的方式快速地将类标记为组件,并由Spring容器进行管…

硬件检测工具 | CPU-Z v2.10.0 官方中文绿色版

软件简介 CPU-Z是一款广受欢迎的硬件检测工具,主要用于收集电脑处理器的详细信息。这款软件能够提供关于CPU的详细数据,包括处理器名称、编号、代号、进程和缓存等信息。此外,CPU-Z还能实时监测每个内核的内部频率和内存频率,以及…

【洛谷B3644】【模板】拓扑排序 / 家谱树 解题报告

洛谷B3644 - 【模板】拓扑排序 / 家谱树 题目描述 有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。给出每个人的后代的信息。输出一个序列,使得每个人的后辈都比那个人后列出。 输入格式 第 1 1 1 行一个整数 N N N&#xf…

Java字节流的输入输出

Java字节流的输入输出指的是使用Java中的字节流来进行数据的读取和写入操作。字节流是以字节为单位进行读写操作的,常用于处理二进制数据或者字符数据。 Java中常用的字节流类有InputStream和OutputStream。InputStream用于读取字节数据,OutputStream用…

【运维项目经历|037】MFS-Scale分布式对象存储系统部署与优化项目

🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 ​ 🏅阿里云ACE认证高级工程师 ​ 🏅阿里云开发者社区专家博主 💊交流社区:CSDN云计算交流社区欢迎您的加入! 目录 项目名称 项目背景 项目目标 …

如何在项目中打印sql和执行的时间

目标:打印DAO方法中sql和执行的时间 一种方式是去实现Mybatis的拦截器Interceptor ,比较麻烦; 这里介绍一种比较简单的实现方式; 1、如何打印sql? 配置文件加这个可以打印出com.zhenhui.ids.busi.watch包下执行的sq…