SelectPdf for .NET - Advanced Pdf Security Settings and Digital Signatures - VB.NET / ASP.NET Sample

This sample shows how to modify security settings of an existing PDF document using SelectPdf, how to set a password to be able to view or modify the document (password: 'test1' and 'test2') and also specifies user permissions for the pdf document (if the user can print, copy content, fill forms, modify, etc).

Here is our initial test pdf document:
Test file

The pdf document encryption can be done using either RC4 or AES algorithm, using 40 bit, 128 bit or 256 bit encryption keys.

The sample also show how to sign an existing PDF document using a PFX certificate.

Sample PFX certificate file:

IMPORTANT: Please note that the certificate used is a self signed certificate generated for testing purposes only. The signature will appear as not valid in a pdf viewer. Using a valid certificate will result in a valid digital signature.

Sample Code Vb.Net

Public Class advanced_pdf_security
    Inherits System.Web.UI.Page

    Protected Sub BtnCreatePdf_Click(sender As Object, e As EventArgs)
        ' the initial file
        Dim file As String = Server.MapPath("~/files/doc1.pdf")

        ' the certificate
        Dim certFile As String = Server.MapPath("~/files/selectpdf.pfx")

        ' load the pdf document using the advanced security manager
        Dim security As New PdfSecurityManager()

        ' encryption algorithm and key length
        security.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES
        security.EncryptionKeySize = PdfEncryptionKeySize.EncryptKey256Bit

        ' set document passwords
        security.OwnerPassword = "test1"
        security.UserPassword = "test2"

        'set document permissions
        security.CanAssembleDocument = False
        security.CanCopyContent = True
        security.CanEditAnnotations = True
        security.CanEditContent = True
        security.CanFillFields = True
        security.CanPrint = True

        ' add the digital signature
        security.Sign(certFile, "selectpdf")

        ' save pdf document
        security.Save(Response, False, "Sample.pdf")

        ' close pdf document
    End Sub

End Class