我想通过不允许填写并复制它来保护我的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文档的任何更改将永远不会保存到磁盘上,否则可以在您的应用程序之外使用。