设计PDF组件以便于访问

时间:2013-08-14 04:37:47

标签: c# itextsharp pdfsharp aspose pdfclown

我见过支持Dot net实现的开源和商业PDF组件,我认为市场上几乎每一个可用的组件,但识别一个受保护或不受保护的文件的奇怪,每个都以异常的形式显示比一个财产。这背后有什么棘手的东西吗? 我希望

Component.Load(inputFile.pdf);
If(Component.isProtected)
{
Component.Open(inputFile.pdf,password);
}
else
{
Component.Open(inputFile.pdf);
}

而不是以下常规方法

Try{
Component.Open(inputFile.pdf);
}
catch(Exception ex)
{
//bad password
//Some exception
}

2 个答案:

答案 0 :(得分:1)

基本上可以通过检查PDF规范第115-136页所述的相应“词典”来检测所有内容:http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf

答案 1 :(得分:0)

这可以使用Aspose.Pdf for .NET,这是一个商业.NET组件。它具有用于加密文件检测的布尔属性IsEncrypted。示例代码如下。

// load the source PDF doucment
PdfFileInfo fileInfo = new PdfFileInfo(dataDir + "protected.pdf");
// determine that source PDF file is Encrypted with password
bool encrypted = fileInfo.IsEncrypted;
MessageBox.Show("Encrypted: " + encrypted);

我作为开发者布道者为Aspose工作。