admin管理员组文章数量:1589660
JAVA加密PDF
- 使用步骤
- 1.引入包
- 2.写方法
使用步骤
1.引入包
代码如下(示例):
import org.apache.pdfbox.pdmodel.encryption.AccessPermission;
import org.apache.pdfbox.pdmodel.encryption.StandardProtectionPolicy;
2.写方法
代码如下:
/**
* 加密PDF文件
*
* @param FilePath 要被加密的文件路径
* @param outFilePath 加密完后生成的文件路径
*/
@Override
public void encryptionPDF(String FilePath, String outFilePath) {
//创建一个在内存中表示pdf的类
PDDocument document = null;
try {
//加载现有的PDF文档
File file = new File(FilePath);
//实例化PDDocument
document = PDDocument.load(file);
//创建访问权限对象,实例化AccessPermission类
AccessPermission accessPermission = new AccessPermission();
//插入/旋转/删除页面
accessPermission.setCanAssembleDocument(false);
//从文档提取内容
accessPermission.setCanExtractContent(false);
//从文档中提取内容以实现可访问性。
accessPermission.setCanExtractForAccessibility(false);
//修改文档
accessPermission.setCanModify(false);
//打印
accessPermission.setCanPrint(false);
//填写交互表单字段(包括签名字段)
accessPermission.setCanFillInForm(false);
//设置用户是否可以添加或修改文本注释和填写交互表单字段,如果canModify()返回true,则创建或修改交互表单字段(包括签名字段)。注意,如果canFillInForm()返回true,即使这里的参数为false,仍然可以填写交互表单(包括签名字段)。
accessPermission.setCanModifyAnnotations(false);
//以降级的格式打印文档
accessPermission.setCanPrintDegraded(false);
//通过传递所有者密码,用户密码和AccessPermission对象来实例化StandardProtectionPolicy类,第一个密码为执行上面八项操作需要的密码,第二个为打开文件需要的密码
StandardProtectionPolicy spp = new StandardProtectionPolicy("123456", "", accessPermission);
//设置用于加密文档数据的密钥的长度(以位为单位)。默认值为40位
spp.setEncryptionKeyLength(128);
//加密文档
document.protect(spp);
//保存文档
document.save(outFilePath);
} catch (IOException e) {
e.printStackTrace();
} finally {
//关闭文件
if (document != null) {
try {
document.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
版权声明:本文标题:JAVA加密PDF 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728074464a1144307.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论