本篇文章帮大家学习PDFBox加密PDF文档,包含了PDFBox加密PDF文档使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。

在前一章中,我们已经看到了如何在PDF文档中插入图像。 在本章中,我们将学习如何加密PDF文档。

加密PDF文档

使用StandardProtectionPolicy和accessPermission类提供的方法加密PDF文档。

AccessPermission类用于通过为其分配访问权限来保护PDF文档。 使用此教程,您可以限制用户执行以下操作。

打印文档

修改文档的内容

复制或提取文档的内容

添加或修改注释

填写交互式表单域

提取文字和图形以便视障人士使用

汇编文件

打印质量下降

StandardProtectionPolicy类用于向文档添加基于密码的保护。

以下是对现有PDF文档进行加密的步骤。

第1步:加载现有的PDF文档

使用PDDocument类的静态方法load()加载现有的PDF文档。 此方法接受一个文件对象作为参数,因为这是一个静态方法,可以使用类名称调用它,如下所示。

File file = new File("path of the document")

PDDocument document = PDDocument.load(file);

第2步:创建访问权限对象

实例化AccessPermission类,如下所示。

AccessPermission accessPermission = new AccessPermission();

第3步:创建StandardProtectionPolicy对象

通过传递所有者密码,用户密码和AccessPermission对象来实例化StandardProtectionPolicy类,如下所示。

StandardProtectionPolicy spp = new StandardProtectionPolicy("1234","1234",accessPermission);

第4步:设置加密密钥的长度

使用setEncryptionKeyLength()方法设置加密密钥长度,如下所示。

spp.setEncryptionKeyLength(128);

第5步:设置权限

使用StandardProtectionPolicy类的setPermissions()方法设置权限。 该方法接受一个AccessPermission对象作为参数。

spp.setPermissions(accessPermission);

第6步:保护文档

可以使用PDDocument类的protect()方法保护文档,如下所示。 将StandardProtectionPolicy对象作为参数传递给此方法。

document.protect(spp);

第7步:保存文档

在添加所需内容后,使用PDDocument类的save()方法保存PDF文档,如以下代码块所示。

document.save("Path");

第8步:关闭文件

最后,使用PDDocument类的close()方法关闭文档,如下所示。

document.close();

示例

假设有一个PDF文档:sample.pdf,所在目录为:F:\worksp\pdfbox,其空页如下所示。

这个例子演示了如何加密上面提到的PDF文档。 在这里,将加载名称为sample.pdf 的PDF文档并对其进行加密。 将此代码保存在EncriptingPDF.java文件中。

package com.yiibai;

import java.io.File;

import org.apache.pdfbox.pdmodel.PDDocument;

import org.apache.pdfbox.pdmodel.encryption.AccessPermission;

import org.apache.pdfbox.pdmodel.encryption.StandardProtectionPolicy;

public class EncriptingPDF {

public static void main(String args[]) throws Exception {

//Loading an existing document

File file = new File("F:/worksp/pdfbox/sample.pdf");

PDDocument document = PDDocument.load(file);

//Creating access permission object

AccessPermission ap = new AccessPermission();

//Creating StandardProtectionPolicy object

StandardProtectionPolicy spp = new StandardProtectionPolicy("123456", "123456", ap);

//Setting the length of the encryption key

spp.setEncryptionKeyLength(128);

//Setting the access permissions

spp.setPermissions(ap);

//Protecting the document

document.protect(spp);

System.out.println("Document encrypted");

//Saving the document

document.save("F:/worksp/pdfbox/sample-encript.pdf");

//Closing the document

document.close();

}

}

执行时,上述程序会加密显示以下消息的给定PDF文档。

Document encrypted

如果尝试打开文档sample-encript.pdf,则它会提示输入密码以打开文档,因为它是加密的,如下所示。

在输入密码后,文档应该可以正确打开。

pdf加密 java_PDFBox加密PDF文档相关推荐

  1. pdf电子书转换成txt文档

    pdf电子书转换成txt文档 我们在收到用户发来的PDF格式的文件合同时,为了能够将里面的内容重新进行编辑,很多时候需要将PDF格式的电子书转换成TXT,有什么好的方法可以实现PDF转TXT. 在没有 ...

  2. bin文件怎么转换成文本文档_怎么把pdf文件转换成word文档?这样转很简单

    在日常的学习.工作生活中,小伙伴们总少不了要对文件格式进行转换操作,例如把pdf文件转换成word文档.对于职场老手来说,这当然不算一个难度操作,甚至还很简单.但对于职场新人而言,找不对方法,可能操作 ...

  3. [紧急问题和解决方案] 无法打开被权限管理服务(RMS)加密的Office 2003文档

    在2009年12月11号以后,我们发现了关于"无法打开被'权限管理服务'(RMS)加密的Office 2003文档"的紧急问题.为了避免对您的业务任何可能的影响,特提前向您介绍症状 ...

  4. java对pdf分割_Java如何使用Java将PDF分割成多个文档?

    在Java编程中,如何使用Java将PDF分割成多个文档? 以下是使用Java将PDF文档页面分割成多个文档的示例程序. package com.yiibai; import org.apache.p ...

  5. 怎么把pdf格式转成word文档?如何将 PDF 转换为 Word

    怎么把pdf格式转成word文档?PDF是运用得很广泛地的办公文档,但是不能编辑,为了方便编辑,需要将PDF转换为word,那么,如何将 PDF 转换为 Word,下面,易我小编会讲解实用的pdf转w ...

  6. ​PDF如何转换成Word文档?分享两种好用的转换方法

    怎么把PDF文件转换成Word文档呢?大家在工作中相信都会使用这两种格式的 文件,对于这两种格式的文件优劣处大家也很清楚,一个适合用来发送文件,一个适合用来编辑文件,如果我们接收到一份PDF文件,想要 ...

  7. 怎么批量删除 Word、PDF、PPT 以及 Excel 文档中的空白页?

    概要:「我的ABC软件工具箱」提供了删除空白页的功能,轻轻松松就可以实现批量删除文档中的空白页.目前支持 Word.PDF.PPT 以及 Excel 等格式文件文件.操作非常的方便,处理也非常高效! ...

  8. 解决Adobe Arcobat Reader DC打开PDF提示:正在准备文档以供阅读,请稍后

    解决Adobe Arcobat Reader DC打开PDF提示:正在准备文档以供阅读,请稍后 解决Adobe Arcobat Reader DC打开PDF提示:正在准备文档以供阅读,请稍后 问题描述 ...

  9. ViKey加密狗对Word文档进行加密

    ViKey加密狗对Office文档进行加密 如果你手里有重要的Offce文档(例如Word.PPT.Excel文件),不想被别人随意看到,任意播放,那么你可以将这类视频文件用ViKey文件加密工具加密 ...

  10. pdf.js在线查看(文档流/地址)

    pdf.js在线查看(文档流/地址) 工作中需要在移动端在线查看pdf文件,但由于pdf文件存放在第三方的服务器中,由于各种原因无法直接返回pdf文件地址给前台,后来确定返给前台是一个base64的流 ...

最新文章

  1. AI也会查水表啦!德国小哥开发水表读取器,可OTA升级,成本不到80元
  2. python3 随机数模块 得到一个10位随机数
  3. 杭电1241java实现dfs
  4. ZooKeeper 集群:集群概念、选举流程、机器数量
  5. 程序员面试金典 - 面试题 17.22. 单词转换(BFS)
  6. php注册树模式,php设计模式-注册树模式
  7. 364. Nested List Weight SumII
  8. 日语学习-多邻国-饮食
  9. 数据结构与算法分析(七)——C++实现平衡二叉树
  10. 【Shell脚本】TDS离线备份还原
  11. 【转】如何通过事物代码查找对应BAPI
  12. Java汉字转GB2312编码【工具类】
  13. 土是独体字结构吗_独体结构的字大全
  14. 考研数学要背诵的知识点
  15. 我在成都火车站捡了个彝族美女 第19节:饭来张口的生活
  16. 福昕阅读器无法添加书签
  17. android+腾讯地图h5,H5调用腾讯地图
  18. 在axure中实现商品数量加减效果,原型库网站讲师-金乌 解答同学问
  19. SQL Server 查看被锁的表
  20. Windows下base64编解码命令

热门文章

  1. 尚硅谷Java入门视频教程第二章——Java基本语法
  2. 医院导航怎么做?医院地图导航如何实现院内智能导航导诊?
  3. 服务器硬件资源监控--PIGOSS BSM
  4. java操作时间,将当前时间减一年,减一天,减一个月
  5. 深度申请网络unet网络的优点是什么?
  6. Zigbee协议栈之ZCL API简介
  7. Dell R740服务器 内存报错 MEM8000
  8. 常见光电器件的介绍(部分)
  9. 读书笔记_课外——《时间简史》
  10. Python模块(自己整理并不完整)