【itext学习之路】--3.对pdf文档进行加密和权限设置

来源:https://blog.csdn.net/tomatocc/article/details/80667838

上篇文章,我们学习了pdf的属性设置,但是我们知道,在实际开发中,如果pdf文档被黑客盗取的话,那么pdf中的信息就会被泄露,因此本篇文章将会介绍pdf的加密设置,并且设置权限。

  • 首先我们要说明的是,itext中对pdf文档的加密包括两部分,第一部分是用户密码,第二部分是所有者密码。这两部分可以简单的理解为管理员密码用户密码因此我们在设置这两个密码的权限的时候,往往会将所有者密码的权限级别设置的更高,而用户密码权限往往是“只读”。

首先,在之前的基础上,我们要在引入一个jar包,bcprov-jdk15-133.jar
可以去maven里面下载,或者在我上传的jar包资源下载:点击下载

  • 下面是我们的代码
package cn.tomtocc.pdf;import java.io.FileNotFoundException;
import java.io.FileOutputStream;import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;public class pdfTest {public static void main(String[] args) throws FileNotFoundException,DocumentException {//实现A4纸页面 并且横向显示(不设置则为纵向)Document document = new Document(PageSize.A4.rotate());PdfWriter pdfWriter = PdfWriter.getInstance(document,new FileOutputStream("d:/demo.pdf"));// 设置用户密码, 所有者密码,用户权限,所有者权限pdfWriter.setEncryption("userpassword".getBytes(), "ownerPassword".getBytes(),  PdfWriter.ALLOW_COPY, PdfWriter.ENCRYPTION_AES_128);// 打开文档document.open();// 创建第一页(如果只有一页的话,这一步可以省略)document.newPage();// 加入文档内容document.add(new Paragraph("my first pdf demo"));// 关闭文档document.close();pdfWriter.close();}
}

说明一下:上面的“userpassword”是我们设置的用户密码。“ownerPassword”是我们设置的所有者密码。后面两个变量依次是用户权限和所有者权限设置。下面将会对所有的权限参数进行详细解释。

  • 然后我们打开我们的pdf文档,会弹出一个让你输入密码的对话框,我们先用“userpassword”这个用户密码去打开。然后再查看文档的属性,具体如下:

  • 我们可以看到,我们是无法对现在的这个pdf进行打印和修改的。接下来,我们重新打开这个pdf。用“ownerPassword”这个密码取打开。然后再查看文档的属性,具体如下:

 

 我们可以看到,当我们第二次用所有者密码去打开这个pdf文档的时候,我们的操作权限比之前大了许多。上述这两种权限的设置是比较常用的。接下来我将详细介绍一下,所有权限的参数及含义。

权限参数
PdfWriter.ALLOW_MODIFY_CONTENTS
允许打印,编辑,复制,签名 加密级别:40-bit-RC4
PdfWriter.ALLOW_COPY
**允许复制,签名 不允许打印,编辑 加密级别:40-bit-RC ***
PdfWriter.ALLOW_MODIFY_ANNOTATIONS
允许打印,编辑,复制,签名 加密级别:40-bit-RC4
PdfWriter.ALLOW_FILL_IN
允许打印,编辑,复制,签名 加密级别:40-bit-RC4
PdfWriter.ALLOW_SCREENREADERS
允许打印,编辑,复制,签名 加密级别:40-bit-RC4
PdfWriter.ALLOW_ASSEMBLY
允许打印,编辑,复制,签名 加密级别:40-bit-RC4
PdfWriter.EMBEDDED_FILES_ONLY
允许打印,编辑,复制,签名 加密级别:40-bit-RC4
PdfWriter.DO_NOT_ENCRYPT_METADATA
允许打印,编辑,复制,签名 加密级别:40-bit-RC4
PdfWriter.ENCRYPTION_AES_256
允许打印,编辑,复制,签名 加密级别:256-bit-AES
PdfWriter.ENCRYPTION_AES_128
允许打印,编辑,复制,签名 加密级别:128-bit-AES
PdfWriter.STANDARD_ENCRYPTION_128
允许打印,编辑,复制,签名 加密级别:128-bit-RC4
PdfWriter.STANDARD_ENCRYPTION_40
允许打印,编辑,复制,签名 加密级别:40-bit-RC4
 

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

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

相关文章

scrapy 模拟登陆

python 模拟登录豆瓣 并 发表动态:https://blog.csdn.net/freeking101/article/details/65445551 python网络爬虫之使用scrapy自动登录网站:https://www.cnblogs.com/zhanghongfeng/p/7684415.html Scrapy笔记(11)- 模拟登录&am…

李国杰院士等:未来移动通信系统中的通信与计算融合

来源 5G 作者:周一青 李国杰周一青:中国科学院大学教授,中国科学院计算技术研究所“百人计划”研究员、博导,无线通信技术研究中心副主任,移动计算与新型终端北京市重点实验室研究员。李国杰:中国工程院院…

【itext学习之路】--4.给pdf增加文本水印和图片水印

来源:【itext学习之路】-------(第四篇)给pdf增加文本水印和图片水印_tomatocc的博客-CSDN博客_itext添加水印 一般而言,许多公司在做pdf之后,都会将公司的logo或者网址以水印的方式添加到pdf文件中。本篇文章&#x…

Postman 使用方法详解

From:https://blog.csdn.net/fxbin123/article/details/80428216 Postman使用详解:https://www.cnblogs.com/xiaoxi-3-/p/7839278.html Postman用法简介:https://blog.csdn.net/flowerspring/article/details/52774399 Postman 详解&#xff…

基于互联网大脑架构的腾讯未来趋势分析[系列1]

作者:刘锋,计算机博士 《互联网进化论》前言互联网大脑架构不是人为规划出来的,而是过去50年,互联网在科学探索和商业竞争两大动力推动下,形成的类脑架构。它的提出是基于2008年以来,我们对移动互联网&…

Linux看内存标压低压,三代锐龙、国产Linux上身笔记本电脑,性能是否和参数一样好看?...

原标题:三代锐龙、国产Linux上身笔记本电脑,性能是否和参数一样好看?如果你从很早开始就关注电脑行业,基本上你身边的朋友都会告诫你一句:“笔记本电脑千万别买AMD的……”并不是AMD不好,说实话&#xff0c…

Windows 安装 MongoDB 和 可视化工具Robo3T

MongoDB 官网下载地址:https://www.mongodb.com/try/download/community MongoDB 是一款非常热门的 NoSQL 面向文档的数据库管理系统, 分为 企业版收费版 和 社区免费版。MongoDB 使用 BSON 对象来存储,与 JSON 格式类型的 "键 - 值&quo…

量子计算生态:市场预期、行业应用与“霸权”争夺

来源:资本实验室从IBM宣布推出业界首个商用量子计算系统,到我国开通全球首条量子通信干线并成功实现首次洲际量子通信,2017年的量子计算领域精彩不断,并不断提升市场对量子计算的预期。除了应用于国防安全,在科研、医疗…

xhtmlrenderer + iText-HTML转PDF

来源:xhtmlrenderer iText-HTML转PDF_hunan961的博客-CSDN博客_xhtmlrenderer xhtmlrendereitext2.0.8 将html转成pdf,带样式、图片(也支持二维码、条形码)等 主要步骤 生成html(css样式直接放在style中)html转换pdf方法数据返…

NASA打算送机器蜜蜂去探索火星上的生命痕迹

来源:国际智能机器人用机械昆虫做侦察兵是科幻电影里存在了多年的场景,如今现实中已经有科学家在做这件事,譬如用机械蜜蜂探索太空。NASA最近就花了12.5万美元资助一个名为“Marsbees”的火星探测工具的科研项目。“Marsbees”是一款微型机器…

linux usb 驱动漏洞,不测不知道 这么多的USB漏洞要从何“补”起?

原标题:不测不知道 这么多的USB漏洞要从何“补”起?[PConline 杂谈]生活中,USB接口可以说无处不在,路由器、打印机、投影机、PC电脑、台式机等等,且使用频率极高。当然,作为硬件设备的输入输出接口,其安全…

xhtmlrenderer 将html转换成pdf,完美css,带图片,手动分页,解决内容断开的问题

来源:xhtmlrenderer 将html转换成pdf,完美css,带图片,手动分页,解决内容断开的问题 - 煮过的花朵 - 博客园 之前用itext7将html导出为pdf,比较方便,代码较少,而且支持base64的图片。…

商汤科技宣布C轮战略融资6亿美元 阿里领投苏宁跟投

来源:雷帝网 人工智能平台公司商汤科技SenseTime宣布完成6亿美元C轮融资,由阿里巴巴集团领投,新加坡主权基金淡马锡、苏宁等投资机构和战略伙伴跟投。商汤科技联合创始人、CEO徐立表示:商汤科技C轮融资将进一步夯实公司在人工智能…

MongoDB Shell和Robo3T使用以及与SQL语法比较

From:MongoDB Shell 了解使用 - 大葱哥 - 博客园 MongoDB基本管理命令:MongoDB基本管理命令_千与的专栏-CSDN博客_mongo查询命令 MongoDB常用操作命令大全:MongoDB常用操作命令大全_piaocoder-CSDN博客_mongodb常用命令 mongodb 命令行基本…

2018全球100个最有价值的科技品牌 18个中国品牌上榜

来源:全球企业动态英国品牌评估机构Brand Finance发布“2018全球100个最有价值的科技品牌榜”(Top 100 most valuable tech brands 2018),前五位都是美国品牌。美国上榜品牌总价值9590亿美元,占百强品牌总价值14673亿美元的65%。亚马逊跃升至…

Alpine Linux 使用简介

From:https://www.aliyun.com/jiaocheng/137717.html Alpine Linux、CoreOS、RancherOS、Red Hat 原子项目、 VMware光子操作系统比较https://blog.csdn.net/hxpjava1/article/details/78482987 Alpine Linux配置使用技巧:https://www.aliyun.com/jiao…

实例学习SSIS(五)--理论介绍SSIS

导读: 实例学习SSIS(一)--制作一个简单的ETL包 实例学习SSIS(二)--使用迭代 实例学习SSIS(三)--使用包配置 实例学习SSIS(四)--使用日志记录和错误流重定向 实例学习SSIS…

MIT教授Tomaso Poggio演讲与专访:智能背后的科学与工程 | 腾讯AI Lab学术论坛

来源:腾讯AI实验室腾讯AI Lab第二届学术论坛在深圳举行,聚焦人工智能在医疗、游戏、多媒体内容、人机交互等四大领域的跨界研究与应用。全球30位顶级AI专家出席,对多项前沿研究成果进行了深入探讨与交流。腾讯AI Lab还宣布了2018三大核心战略…

linux捕捉信号sigint失败,为shell布置陷阱:trap捕捉信号方法论

本文目录:1.1 信号说明1.2 trap布置陷阱1.3 布置完美陷阱必备知识家里有老鼠,快消灭它!哎,又给跑了。老鼠这小东西跑那么快,想直接直接消灭它还真不那么容易。于是,老鼠药、老鼠夹子或老鼠笼就派上用场了&a…

Trade Stages - The Trade Path

Gieno Trade Stages - The Trade Path STARTS OFF “greed orientated.”Loses because:1 Market problemsNot a zero sum game, a “very negative” sum gameMarket psychology – doing the wrong thing at the wrong timeThe majority is always wrongMarket exists on ch…