SelectPdf for .NET - Pdf Security Settings - VB.NET / ASP.NET MVC Sample

This sample shows how to create a new 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).


Sample Code VB.NET



Imports SelectPdf

Namespace Controllers
    Public Class PdfSecurityController
        Inherits Controller

        ' GET: PdfSecurity
        Public Function Index() As ActionResult
            Return View()
        End Function

        <HttpPost> _
        Public Function SubmitAction(collection As FormCollection) As ActionResult
            ' create a new pdf document
            Dim doc As New PdfDocument()

            ' add a new page to the document
            Dim page As PdfPage = doc.AddPage()

            ' create a new pdf font
            Dim font As PdfFont = doc.AddFont(PdfStandardFont.Helvetica)
            font.Size = 20

            ' create a new text element and add it to the page
            Dim text As New PdfTextElement(50, 50, "Pdf Security Settings Sample.", font)
            page.Add(text)

            ' set document passwords
            doc.Security.OwnerPassword = "test1"
            doc.Security.UserPassword = "test2"

            'set document permissions
            doc.Security.CanAssembleDocument = False
            doc.Security.CanCopyContent = True
            doc.Security.CanEditAnnotations = True
            doc.Security.CanEditContent = True
            doc.Security.CanFillFormFields = True
            doc.Security.CanPrint = True

            ' save pdf document
            Dim pdf As Byte() = doc.Save()

            ' close pdf document
            doc.Close()

            ' return resulted pdf document
            Dim fileResult As FileResult = New FileContentResult(pdf, "application/pdf")
            fileResult.FileDownloadName = "Document.pdf"
            Return fileResult
        End Function
    End Class
End Namespace