2012-09-12 2 views
8

я следующее:Пароль защиты в PDF-файл

  • рутина X, который создает PDF-файл на ежедневной основе.
  • обычный Y, который прикрепляет этот файл к электронной почте Outlook и отправляет ее получателям.

Оба вышеуказанных находятся в VBA. Они вызываются из консольного приложения C#.

Как только PDF-файл был создан, мне необходимо защитить его паролем. Чтобы сделать это через VBA без покупки стороннего программного обеспечения, довольно вовлекается.

Какое простейшее решение использует C#?

(я заподозрить будет обратная зависимость между количеством мы проводим и сложность ответа!)

+0

Если вам нужен только пароль для защиты вашего pdf-файла, используйте библиотеку http://itextpdf.com/. Для получения дополнительной информации перейдите по этому адресу: http://stackoverflow.com/questions/370571/password-protected-pdf-using-c-sharp –

+3

@DarshanJoshi: iText не является бесплатным для коммерческого использования. –

+0

@ DanielHilgarth два человека проголосовали за закрытие этого вопроса - я старался быть очень конкретным; есть ли какие-либо возможные изменения, которые я могу сделать, чтобы сделать его более приемлемым? – whytheq

ответ

10

PDFSharp должны быть в состоянии защитить файл PDF с помощью пароля:

// Open an existing document. Providing an unrequired password is ignored. 
PdfDocument document = PdfReader.Open(filename, "some text"); 

PdfSecuritySettings securitySettings = document.SecuritySettings; 

// Setting one of the passwords automatically sets the security level to 
// PdfDocumentSecurityLevel.Encrypted128Bit. 
securitySettings.UserPassword = "user"; 
securitySettings.OwnerPassword = "owner"; 

// Don't use 40 bit encryption unless needed for compatibility reasons 
//securitySettings.DocumentSecurityLevel = PdfDocumentSecurityLevel.Encrypted40Bit; 

// Restrict some rights. 
securitySettings.PermitAccessibilityExtractContent = false; 
securitySettings.PermitAnnotations = false; 
securitySettings.PermitAssembleDocument = false; 
securitySettings.PermitExtractContent = false; 
securitySettings.PermitFormsFill = true; 
securitySettings.PermitFullQualityPrint = false; 
securitySettings.PermitModifyDocument = true; 
securitySettings.PermitPrint = false; 

// Save the document... 
document.Save(filename); 

Reference :
http://www.pdfsharp.net/wiki/ProtectDocument-sample.ashx

+1

, это выглядит неплохо и относительно просто - это полностью открытый исходный код? Даже для коммерческого использования это бесплатно? – whytheq

+2

@whytheq: [Да] (http://www.pdfsharp.net/Licensing.ashx), он может использоваться даже в коммерческих продуктах. –

+0

сыграл сегодня днем ​​- отлично; Я импортировал все папки исходного кода ... даже имел небольшой нос через исходный код! – whytheq

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