0

我正在使用本教程http://www.4guysfromrolla.com/articles/030211-1.aspx,它使用 PDF 表单字段,让用户使用文本框输入字段。我想加密 pdf 并添加用户密码,以便在下载时需要密码才能打开 pdf。

   public static byte[] GeneratePDF(string pdfPath, Dictionary<string, string> formFieldMap)
{
    var output = new MemoryStream();
    var reader = new PdfReader(pdfPath); 
    var stamper = new PdfStamper(reader, output);

    var formFields = stamper.AcroFields;

    foreach (var fieldName in formFieldMap.Keys)
        formFields.SetField(fieldName, formFieldMap[fieldName]);

    stamper.FormFlattening = true;
    stamper.Close();
    reader.Close();

    byte[] content = output.ToArray();
//    byte[] content = content;

    // Write out PDF from memory stream.

    return output.ToArray();

}
4

1 回答 1

0

对我来说,尝试改变应用程序的运行方式,而不是每次用户下载 pdf 时都发送密码,而是尝试建立适当的身份验证和授权系统。

看看这个案例:

  • 用户获取 pdf 文件列表

  • 当用户点击下载按钮时,他们会被重定向到登录页面

  • 他们输入他们的凭据被重定向到文件列表

  • 他们点击pdf并下载

  • 如果他们没有任何下载权限,链接将显示为禁用

  • 管理员可以将下载文件的权限添加到不同的用户

    希望有帮助

于 2013-10-11T20:43:53.940 回答