使用ItextSharp加密PDF文档



我想通过不允许填写并复制它来保护我的PDF文档。我正在使用ItextSharp。我有以下代码:

  PdfReader reader = new PdfReader(document, System.Text.Encoding.UTF8.GetBytes(PASSWORD));
  using (MemoryStream ms = new MemoryStream())
  {
      using (PdfStamper stamper = new PdfStamper(reader, ms))
      {
           stamper.SetEncryption(
               null,
               Encoding.ASCII.GetBytes(PASSWORD),
               PdfWriter.ALLOW_PRINTING,
               PdfWriter.ENCRYPTION_AES_128);
      }
  }
  reader.Close();

生成文档时,我使用该代码来加密文档。但是稍后,当我在Adobe Reader中打开文档(在9和11上进行了测试),然后检查"文件>属性>安全性",它们在填写和副本上没有任何限制,并且允许其状态。

该代码中是否有任何问题?

根据PdfStamper的ITEXTSHARP文档,该方法的第二个参数是代表加密PDF文档数据的目的地的输出流。您在问题中显示的代码只是在设置加密后仅处理MemoryStream,因此该代码可以应用于您的PDF文档的任何更改将永远不会保存到磁盘上,否则可以在您的应用程序之外使用。

最新更新