2013-08-14 3 views
2

Я видел компоненты с открытым исходным кодом и коммерческие PDF-компоненты, которые поддерживают реализацию 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 
} 
+1

Основная причина в моих глазах заключается в том, что в предыдущем вызове 'Load' практически не используется, поскольку в случае зашифрованного документа с паролем едва ли что-то делать, но сказать« Эй, я не могу! ». Кроме того, ваше предложение по-прежнему требует исключения, если в вызове 'Open' не указан пароль или неправильный. – mkl

ответ

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 как разработчика-евангелиста.

+0

Спасибо, это очищает меня, на самом деле нет никакой причины для такого рода реализации. Мне нравится тот, который поставил его. Оцените. – Jay

1

Все они могут быть обнаружены в основном путем проверки соответствующих «словарей», как описано на страницах 115 - 136 из PDF спецификации: http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf

+0

+1 Я понимаю, что шифрование применяется к каждой строке и каждому объекту в файле PDF, что требует пройти через весь файл и проверить для шифрования. Это может помочь определить шифрование, вы имеете в виду, что нет ничего позади в текущем способе исключения исключения, чтобы сказать, что файл pdf зашифрован во время метода Open. – Jay

Смежные вопросы