pdf - 如果使用 itextsharp 对 pdf 进行密码保护,因为 isencrypted 在最新库中为假,如何处理?
问题描述
如何识别 pdf 是否受密码保护,因为 IsEncrypted() 在使用 itextsharp 最新库时为假?
即使 PDF 文件受密码保护,我们仍然可以使用 ITEXT sharp 进行识别
我尝试了下面的代码仍然没有运气
currentReader = new PdfReader(filePath);
if (currentReader.IsEncrypted()) throw new Exception(" The Uploaded file is Encrypted");
解决方案
在 iText 7 中,在读取对象PdfReader
之前未设置加密标志。这通常仅在它与 a关联PdfReader
时发生PdfDocument
,即当您将 a 实例化为构造函数参数时。PdfDocument
PdfReader
因此,做
currentReader = new PdfReader(filePath);
new PdfDocument(currentReader);
if (currentReader.IsEncrypted()) throw new Exception(" The Uploaded file is Encrypted");
当心,new PdfDocument(currentReader)
可能会抛出自己的异常,特别是BadPasswordException
这也意味着加密,但也可能只是表明 PDF 损坏的其他异常。
推荐阅读
- php - 使用 PHP 合并 JSON 数组值
- spring - NoSuchMethodException:org.springframework.boot.autoconfigure.http.HttpMessageConverters
- java - 如何在java上使用/实现滚动条
- python - 我无法使用 pycharm 安装 matplotlib 包(Windows 10,python3.7)
- java - Android Studio(按钮)的运行时错误
- javascript - 我想复制从 json 获取的 li 元素
- postgresql - Pgbouncer - 管理动态数据库设置
- c - OpenSSL 调试 - 如何在 openssl 中转储中间 ASN.1?
- java - 如何强制用户使用前置摄像头?
- python - 在python中对相似值进行分组和求和