itextPDF5.5.13 pdf加水印的权限控制
1、我们的需求需要对pdf加水印,其中有加密的和未加密的,
操作过程中发现 有的虽然加密了 但是符合PDFReader的五种加密算法,就可以成功破解加水印,还有一些就会抛出一些异常
第一种报错:com.itextpdf.text.exceptions.InvalidPdfException: Unknown encryption type R=6
这种是加密算法无法破解
还有些就是文件内容或者格式有问题
第二种报错:com.itextpdf.text.exceptions.InvalidPdfException: Rebuild failed: trailer not found.; Original message: Dictionary key 0 is not a name. at file pointer 589754 fileWrapper.notLike("file_title","Heavy Metals.pdf"); //PDF header signature not found
第三 种报错:com.itextpdf.text.exceptions.InvalidPdfException: Rebuild failed: '>' not expected at file pointer 454159; Original message: '>' not expected at file pointer 454159
第四种报错:java.io.EOFException: null
第五种报错:
com.itextpdf.text.exceptions.InvalidPdfException: Rebuild failed: Dictionary key 1 is not a name. at file pointer 993774; Original message: Dictionary key 1 is not a name. at file pointer 993774
除了第一种提示加密失败 其他我们都抛出加水印异常;
同时需求要求对加水印的pdf需要加密控制权限,不可复制,不可编辑,不可…… 但是可以打印
一开始收到的答案通篇都是
得到的效果
但是发现这样的文件始终都有copy的权限,仔细看了官网也没有确切的解释
官网地址:Overview (iText 5.5.13 API) (itextpdf.com)
这个True和False的区别只是一种枚举默认值的区分,通过另外一位博主 userpassword和ownerpassword的演示,才发现这个权限设置对我来说太多了,只需要一种即可
//只保留打印权限 其他权限不放开
stamper.setEncryption(null, ownerPassword, PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128);
其他的权限不需要就不写,
//只保留打印权限 其他权限不放开
stamper.setEncryption(null, ownerPassword, PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128); 也可以用 true或者fasle来替换,
true:没有“复制功能的内容复制“权限
false: 有“复制功能的内容复制“权限
如果都不写,默认是权限都放开 不做控制,所以必须有一个权限,刚好我们放开了打印权限 完美实现了功能 ,
记住这个问题
itextPDF5.5.13 pdf加水印的权限控制相关推荐
- Springboot使用itext及documents4j操作pdf(word转pdf、pdf加水印(文字或图片,可指定位置)、pdf加密(打开密码,编辑密码))
pom.xml引入 <!-- pdf文档生成 --><dependency><groupId>com.documents4j</groupId>< ...
- PDF转换图片,图片的切割,图片转换PDF以及PDF加水印等记录贴
PDF转变为图片: 把图片进行切割: 把图片转变回PDF: 为PDF加水印文字: 为PDF加水印图片. 1,PDF转变为图片 /*** @author dalin*将PDF格式的文件转换成png文件* ...
- java pdf水印排布问题_java 实现 PDF 加水印功能
使用java代码实现给PDF加水印的功能 首先导入所需要的依赖 com.itextpdf itextpdf 5.5.11 com.itextpdf itext-asian 5.2.0 java 代码实 ...
- Java实现Excel和word转pdf加水印,复制及可用
Java实现Excel和word转pdf加水印,复制及可用 时隔大半年,之前朋友,今天突然找我说,他们有个需求要做这东西.想起来之前自己照着官方文档写,也走了不少坑.今天就索性写个,也为了方便以后使用 ...
- java如何给pdf加水印_java pdf加水印的方法
本文实例为大家分享了java pdf加水印的具体代码,供大家参考,具体内容如下 引入依赖 com.itextpdf.tool xmlworker 5.5.10 com.itextpdf itextpd ...
- XDOC Office Server 发布 1.1.0 版本,支持 PDF 加水印
XDOC Office Server 是一个 JavaEE 服务,用于将 Office 文档转换为 PDF,格式兼容性好. 版本更新 支持 &_watermark 参数,对生成的 PDF 加水 ...
- java使用2种方法操作liberoffice把word转pdf,pdf加水印,java远程调用Linux执行命令
文章目录 libreoffice下载地址 安装 (第一种) java调用 (第二种 推荐) java调用Linux命令转pdf java远程连接Linux执行命令(少数情况) linux安装windo ...
- 怎么给pdf加水印,pdf加水印步骤
怎么给pdf加水印?有时候位置方式别人随意使用pdf文件里面的内容,我们需要给做好的pdf文件添加水印,这样可以起到一定的保护作用,那么怎么给pdf文件添加水印呢?有的小伙伴肯定会说,用专业的pdf编 ...
- 看这里,你要的快速、批量PDF加水印工具!
今天在网上看到有人提问:"求怎么给PDF加水印,要快速批量的那种",好吧,算问对人了.最近在工作中也遇到同事问这个问题,主要是快速和批量,时间宝贵,不能浪费,所以这里大家推荐一个P ...
最新文章
- 计算机应用基础浙大,2014春浙大远程教育计算机应用基础-3.Word知识题
- NVIDIA Jetson Xavier NX使用SD镜像刷机流程
- OpenCV中向量是可以转化为MAT类型的~
- Jquery通过ajax请求NodeJS返回json数据
- 强化学习笔记 experience replay 经验回放
- Linux中 set、env、declare、export显示shell变量的区别
- 微信好友特征数据分析及可视化
- 【转】crontab 详解
- codeforces71A-C语言解题报告
- c语言数组与函数,C语言的数组与函数
- python integral_Pycharm:应为“Integral”类型,而应为“str”
- linux 低功耗模式,stm32的低功耗模式:
- js正则表达式匹配多个条件
- 语法俱乐部1:基本句型及补语
- 雷曼 疯狂兔子 java_《雷曼:疯狂兔子》详细流程攻略+个人心得分享
- workunit 的指的工作单元是什么_workunit是什么意思
- 什么是SystemUI?简单分析
- ListView 实现阻尼回弹效果 并去除边缘阴影
- 用网线连接电脑传输文件
- Android 解析软件包时出现问题
热门文章
- Java AjaxResult 操作消息提醒返回
- mysql查看、开启慢查询、分析执行SQL的效率
- 有关java中equals()与hashCode()的探讨
- 跟老韩学安全之信息收集
- 计算机软件专业与甲骨文关系,基于本体的甲骨文专业文档语义标注方法-计算机应用与软件.PDF...
- The Company Requires Superficial StudyPHP 打开执行PHP ②
- 《小猪佩奇》动画将推出两集新春特辑,迎接中国“猪年”到来
- 好用的XManager6 注册机
- 如何使能RT5350 1T2R ANTENNA DIVERSITY
- 九州云边缘管理平台获评年度明星产品