密码保护PDF文件

why*_*heq 12 c#

我有以下内容:

  • 例程X,每天创建一个PDF文件.
  • 例程Y将此文件附加到Outlook电子邮件并将其发送给收件人.

以上都是在VBA中.它们是从C#控制台应用程序调用的.

创建PDF后,我需要密码保护它.要通过VBA执行此操作而不购买第三方软件则非常复杂.

使用C#最简单的解决方案是什么?

(我怀疑我们花的金额和答案的复杂性之间会有反比关系!)

Dan*_*rth 17

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);
Run Code Online (Sandbox Code Playgroud)

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

  • @whytheq:[是](http://www.pdfsharp.net/Licensing.ashx),即使在商业产品中也可以免费使用. (3认同)
  • 这看起来不错而且相对简单 - 它是完全开源的吗?即即使用于商业用途它是免费的? (2认同)