Itextsharp自定义密码消息

时间:2017-09-21 04:32:23

标签: c# itext

this Microsoft documentation page

嗨,我可以将信息自定义为"请输入您的生日和卡片的最后6位数字"在pdf enrypted文件中使用Itextsharp PdfEncryptor?

  public byte[] GenerateSoaCrystalPdf(SoaCustomerViewModel customer, out int totalPages, bool encryptFile = false)
    {
        var rptDoc = GenerateSoaCrystal(customer);
        // process PDF file
        var stream = rptDoc.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
        // dispose the report document
        rptDoc.Close();
        rptDoc.Dispose();

        // create password-protected PDF
        using (var ms = new MemoryStream())
        {
            if (encryptFile)
            {
                // count number of pages
                using (var pdfReader = new PdfReader(stream))
                {
                    totalPages = pdfReader.NumberOfPages;
                    var password = customer.DateOfBirth + customer.CardNumber.NumbersOnly().Right(6);
                    PdfEncryptor.Encrypt(pdfReader, ms, true, password, password, PdfWriter.AllowScreenReaders);
                }
            }
            else
            {
                // TODO: fix error when calling PdfReader
                totalPages = 0;
                stream.CopyTo(ms);
            }
            return ms.ToArray();
        }
    }

1 个答案:

答案 0 :(得分:4)

据我所知,不可以,因为此消息是由用于查看文档的PDF阅读器定义的。