使用C#密码保护的PDF

bal*_*log 15 c# pdf-generation

我正在使用C#代码创建一个pdf文档.我需要用一些标准密码保护docuemnt,如"123456"或某个帐号.我需要这样做而没有像pdf writer那样的参考dll.

我正在使用SQL Reporting Services报告生成PDF文件.

有最简单的方法吗?

Dar*_*rov 26

我正在使用C#代码创建一个pdf文档

您是否使用某些库来创建此文档?在PDF规范(8.6MB)是相当大的,涉及操作PDF的所有任务,可以在不使用第三方库是困难的.使用免费和开源的itextsharp库密码保护和加密您的pdf文件非常简单:

using (Stream input = new FileStream("test.pdf", FileMode.Open, FileAccess.Read, FileShare.Read))
using (Stream output = new FileStream("test_encrypted.pdf", FileMode.Create, FileAccess.Write, FileShare.None))
{
    PdfReader reader = new PdfReader(input);
    PdfEncryptor.Encrypt(reader, output, true, "secret", "secret", PdfWriter.ALLOW_PRINTING);
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,itextsharp需要许可证才能用于商业用途,除非您的代码也使用它所使用的相同许可证发布.价格仅在申请时提供. (5认同)
  • 请注意,这个答案是在2008年写的,当时iTextSharp是在LGPL下发布的.在5.0.0版本(2009年12月,SVN修订版108;许可证更改版本为99)发布后,许可证更改为AGPL,要求应用程序服务提供商发布源代码或购买商业许可证.以前的版本(4.1.6; LGPL)是分叉的[这里](https://github.com/itextsharper/iTextSharp-4.1.6),仍然具有上述功能. (2认同)