建设团购网站费用,简单的网页设计作品欣赏,海南app开发公司,什么是网络搭建来源#xff1a;https://blog.csdn.net/tomatocc/article/details/80667838
上篇文章#xff0c;我们学习了pdf的属性设置#xff0c;但是我们知道#xff0c;在实际开发中#xff0c;如果pdf文档被黑客盗取的话#xff0c;那么pdf中的信息就会被泄露#xff0c;因此本…来源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