PdfRpt.Core.Security.EncryptionWorker.ApplyEncryption C# (CSharp) Method

ApplyEncryption() public method

Enable Encryption
public ApplyEncryption ( ) : void
return void
        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);
        }