Products Technologies Demo Docs Blog Support Company

Exporting Password Protected PDF Documents

With TX Text Control ships a sample application called TX Text Control Words. Amongst other things, TX Text Control Words illustrates how to export password protected PDF documents. In the following paragraphs, I would like to explain in detail how password protected PDF documents are exported. I receive - on an almost daily basis - questions about this topic. Using the TXTextControl.SaveSettings class, you can declare two passwords: the UserPassword to open the document and the…

Exporting Password Protected PDF Documents

With TX Text Control ships a sample application called TX Text Control Words. Amongst other things, TX Text Control Words illustrates how to export password protected PDF documents.

In the following paragraphs, I would like to explain in detail how password protected PDF documents are exported. I receive - on an almost daily basis - questions about this topic.

Using the TXTextControl.SaveSettings class, you can declare two passwords: the UserPassword to open the document and the MasterPassword for the document's access permissions. These permissions can be set using the SaveSettings.DocumentAccessPersmissions property.

Possible values are:

AllowAll
After the document has been opened no further document access is restricted.

AllowAuthoring
Allows comments to be added and interactive form fields (including signature fields) to be filled in.

AllowAuthoringFields
Allows existing interactive form fields (including signature fields) to be filled in.

AllowContentAccessibility
Allows content access for the visually impaired only.

AllowDocumentAssembly
Allows the document to be to assembled (insert, rotate or delete pages and create bookmarks or thumbnails).

AllowExtractContents
Allows text and/or graphics to be extraced.

AllowGeneralEditing
Allows the document contents to be modified.

AllowHighLevelPrinting
Allows the document to be printed.

AllowLowLevelPrinting
Allows the document to be printed (low-level).

The UserPassword must be entered, if the PDF is opened by the user. The MasterPassword must be entered, if the user is trying to change the permissions. The sample below shows how to export a PDF which allows low level printing. If the user would like to print the document in a higher level, the permissions must be changed and the password must be entered.

Dim saveSettings As New TXTextControl.SaveSettings

saveSettings.MasterPassword = "Master"
saveSettings.UserPassword = "User"

saveSettings.DocumentAccessPermissions =
    TXTextControl.DocumentAccessPermissions.AllowLowLevelPrinting

TextControl1.Save(TXTextControl.StreamType.AdobePDF, saveSettings)

Stay in the loop!

Subscribe to the newsletter to receive the latest updates.

Related Posts

PDFSample

Source Code to Send PDF As an E-mail Attachment

Sample code to illustrate how easy it is to sent the contents of a TX Text Control via e-mail as a PDF attachment. Download the source code.


ASP.NETASP.NET CoreExtraction

Mining PDFs with Regex in C#: Practical Patterns, Tips, and Ideas

Mining PDFs with Regex in C# can be a powerful technique for extracting information from documents. This article explores practical patterns, tips, and ideas for effectively using regular…


ASP.NETConversionDOCX

PDF Conversion in .NET: Convert DOCX, HTML and more with C#

PDF conversion in .NET is a standard requirement for generating invoices, templates, and accessible reports. This article provides an overview of PDF conversion capabilities using TX Text Control,…


ASP.NETASP.NET CoreForms

Streamline Data Collection with Embedded Forms in C# .NET

Discover how to enhance your C# .NET applications by embedding forms for data collection. This article explores the benefits of using Text Control's ASP.NET and ASP.NET Core components to create…


ASP.NETASP.NET CorePDF

Adding QR Codes to PDF Documents in C# .NET

This article explains how to add QR codes to PDF documents with the Text Control .NET Server component in C#. It provides the necessary steps and code snippets for effectively implementing this…