当前位置: 首页 > 编程语言 > C#

C#LearningTutorial-Checkifapdfispasswordprotectedusingitextsharp分享

时间:2023-04-10 11:40:39 C#

Checkifapdfispasswordprotectedusingitextsharp那就是我想知道pdf文件是否有用户密码。我在一些论坛上找到了一些关于使用isencrypted函数的帮助,但它没有给出正确的答案。是否可以检查pdf是否受密码保护?使用PdfReader.IsEncrypted方法的问题在于,如果您尝试在需要密码的PDF上实例化PdfReader-而您不提供该密码-那么您将获得BadPasswordException。牢记这一点,您可以编写这样的方法:publicstaticboolIsPasswordProtected(stringpdfFullname){返回假;}catch(BadPasswordException){返回真;请注意,如果提供Invalidpassword,则在尝试构造PdfReader对象时会得到相同的BadPasswordException。您可以使用它来创建一个验证PDF密码的方法:publicstaticboolIsPasswordValid(stringpdfFullname,byte[]password){返回假;}catch(BadPasswordException){返回真;当然它很难看,但据我所知,这是检查PDF是否受密码保护的唯一方法。希望有人会提出更好的解决方案。privatevoidCheckPdfProtection(stringfilePath){try{PdfReaderreader=newPdfReader(filePath);如果(!reader.IsEncrypted())返回;if(!PdfEncryptor.IsPrintingAllowed(reader.Permissions))thrownewInvalidOperationException("所选内容受打印保护,无法导入");if(!PdfEncryptor.IsModifyContentsAllowed(reader.Permissions))thrownewInvalidOperationException("所选文件被写保护,无法导入");}catch(BadPasswordException){thrownewInvalidOperation("所选文件受密码保护,无法导入");}catch(BadPdfFormatException){thrownewInvalidDataException("所选文件格式无效,无法导入");}}参考:检查完整权限您应该只能检查属性PdfReader.IsOpenedWithFullPermissions。PdfReaderr=newPdfReader("YourFile.pdf");if(r.IsOpenedWithFullPermissions){//Dosomething}万一它最终帮助了某人,这是我在vb.net中使用的一个简单的解决方案。检查完全权限(如上所述)的问题是您实际上无法打开具有密码的PDF,它会阻止您打开它。我也有一些关于检查下面的代码。itextsharp.text.pdf有一些您可能会发现实际有用的例外情况,如果这不是您需要的,请检查一下。以上就是C#学习教程:使用itextsharp检查pdf是否受密码保护分享的所有内容,如果对大家有用还需要详细了解C#学习教程,希望大家多加关注——DimPDFDocAsPdfReaderTryPDFDoc=NewPdfReader(PDFToCheck)IfPDFDoc.IsOpenedWithFullPermissions=FalseThen'PDF阻止了事情,但它仍然可以打开。例如打印。endifCatchexAsiTextSharp.text.pdf.BadPasswordException'这个异常表示PDF根本打不开。最后'如果一切正常就做什么!EndTry本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

猜你喜欢