问题描述
如何在使用 itextsharp 最新库时识别 pdf 是否受密码保护,因为 IsEncrypted() 为假?
即使 PDF 文件受密码保护,我们也可以使用 ITEXT 锐利进行识别
我尝试了下面的代码仍然没有运气
currentReader = new PdfReader(filePath);
if (currentReader.IsEncrypted()) throw new Exception(" The Uploaded file is Encrypted");
解决方法
在 iText 7 中,在读取 PdfReader
对象之前未设置 PdfReader
加密标志。这通常仅在它与 PdfDocument
关联时发生,即当您使用该 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 损坏的异常。