public void ApplyEncryption()
{
//encryption can only be added before opening the document
if (DocumentSecurity == null) return;
if (DocumentSecurity.EncryptionPreferences == null) return;
var permissionsList = new List<int>();
var permissions = 0;
if (DocumentSecurity.EncryptionPreferences.DocumentPermissions == null)
throw new InvalidOperationException("Please set the DocumentPermissions.");
if (DocumentSecurity.EncryptionPreferences.DocumentPermissions.AllowPrinting)
{
permissions |= PdfWriter.AllowPrinting;
permissionsList.Add(PdfWriter.AllowPrinting);
}
if (DocumentSecurity.EncryptionPreferences.DocumentPermissions.AllowModifyContents)
{
permissions |= PdfWriter.AllowModifyContents;
permissionsList.Add(PdfWriter.AllowModifyContents);
}
if (DocumentSecurity.EncryptionPreferences.DocumentPermissions.AllowCopy)
{
permissions |= PdfWriter.AllowCopy;
permissionsList.Add(PdfWriter.AllowCopy);
}
if (DocumentSecurity.EncryptionPreferences.DocumentPermissions.AllowModifyAnnotations)
{
permissions |= PdfWriter.AllowModifyAnnotations;
permissionsList.Add(PdfWriter.AllowModifyAnnotations);
}
if (DocumentSecurity.EncryptionPreferences.DocumentPermissions.AllowFillIn)
{
permissions |= PdfWriter.AllowFillIn;
permissionsList.Add(PdfWriter.AllowFillIn);
}
if (DocumentSecurity.EncryptionPreferences.DocumentPermissions.AllowScreenReaders)
{
permissions |= PdfWriter.AllowScreenReaders;
permissionsList.Add(PdfWriter.AllowScreenReaders);
}
if (DocumentSecurity.EncryptionPreferences.DocumentPermissions.AllowAssembly)
{
permissions |= PdfWriter.AllowAssembly;
permissionsList.Add(PdfWriter.AllowAssembly);
}
if (DocumentSecurity.EncryptionPreferences.DocumentPermissions.AllowDegradedPrinting)
{
permissions |= PdfWriter.AllowDegradedPrinting;
permissionsList.Add(PdfWriter.AllowDegradedPrinting);
}
setPasswordEncryption(permissions);
setPublicKeyEncryption(permissionsList);
}