# Getting Started with PDF Security for .NET
## Overview
The PDF security for .NET 2.0 and .NET 4.0 can be used in any type of application to manage the security settings of the PDF documents. You can encrypt the PDF content, add user and owner passwords, control the PDF document permissions for printing, copying, assembling, filling forms, editing content, editing annotations, etc or you can specify the length of the encryption key to 40 or 128 bits, remove all the security settings by providing the user or owner password. The downloaded archive contains the development libraries for .NET 2.0 and .NET 4.0 and a ready to use console application in the sample Bin folder. The source code for the command line tool is also available in the Samples folder. You can use this command line tool to change the security settings of the PDF documents.
## PDF Security Development Library
The PDF Security develoment library 'epsecurepdf.dll' is a managed assembly that can be linked into any .NET application, either Win32 and console applications or ASP.NET 2.0 or 4.0 web sites. The interface is very easy to be understood and use. The main class in the assembly is PDFSecurityManager. An instance of this class can be constructed by specifying the security options as an instance of the PDFSecurityOptions class or using the default security options (no password protection, no exncryption, allow printing, allow editing content, allow copying, allow edit annotations, 128 bit encryption key). If you need to change any of these settings you have to pass a PDFSecurityOptions object to the PDFSecurityManager constructor. For a complete reference of the assembly classes and methods see the assembly reference documention in PDFSecurity-API.chm document. First you have to create an instance of the PDFSecurityManager class and then call the methods to apply or remove the security options for the PDF document. All the methods have versions working for the memory representation of the PDF document as an array of bytes or for PDF files. The memory versions of the methods can be used to easily interface with the other PDF tools producing PDF documents in memory. When you want to apply or remove the security options you can simply call the methods like GetSecuredPdfBytes and GetUnSecuredPdfBytes. All the work can be done in a few lines of code.
    1:  PdfSecurityOptions securityOptions = new PdfSecurityOptions();
    2:
    3:  securityOptions.CanAssembleDocument = canAssembleDocument;
    4:  securityOptions.CanCopyContent = canCopyContent;
    5:  securityOptions.CanEditAnnotations = canEditAnnotations;
    6:  securityOptions.CanEditContent = canEditContent;
    7:  securityOptions.CanFillFormFields = canFillFormFields;
    8:  securityOptions.CanPrint = canPrint;
    9:  securityOptions.KeySize = keySize;
    10: securityOptions.UserPassword = userPassword;
    11: securityOptions.OwnerPassword = ownerPassword;
    12:
    13: PdfSecurityManager securityManager = new PdfSecurityManager(securityOptions);
    14:
    15: if (removeSecurity)
    16:    securityManager.SaveUnSecuredPdfToFile(srcPdfFile, outFile, removeSecurityPswd);
    17: else
    18:    securityManager.SaveSecuredPdfToFile(srcPdfFile, outFile);
## PDF Security Command Line Tool
The PDF SecurityCommand Line Tool is a simple application constructed based on the development libraries. It is also a ready to use application in case you don't need to build your own application. The command line syntax is: SecurePDFDemo.exe /pdf:source_pdf_file [/noassembly] [/nocopy] [/noeditannot] [/noeditcontent] [/nofillform] [/noprint] [/keysize: (40|128)] [/userpswd:user_password] [/ownerpswd:owner_password] [/removesecurity] /out:out_pdf_file In simple terms this syntax means that you can specify the source pdf file, the user and owner passwords in case you want to encrypt the document, the document permisions. You can also specify the /removesecurity and the user or owner password in case you want to remove all the security options. The out file is used to determine where to write the PDF document with the security options applied. Command line example: Set user and owner passwords: SecurePDFDemo.exe /noprint /keysize:128 /ownerpswd:myownerpswd /userpswd:myuserpswd /out:SecuredDocument.pdf Remove the security options from the document SecurePDFDemo.exe /userpswd:myuserpswd /removesecurity /out:UnSecuredDocument.pdf
## Licensing
The LicenseKey property of the PdfSecurityManager class should be set with the string received after the product purchase.