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();
}
}
答案 0 :(得分:4)
据我所知,不可以,因为此消息是由用于查看文档的PDF阅读器定义的。