IRONSOFTWAREHOME

How to Encrypt/Add Password & Permissions to PDF Files in C#

Curtis Chau
Curtis Chau
Updated: August 2, 2026

Securing PDF files with passwords and specific permissions is vital for protecting sensitive documents from unauthorized access and manipulation. The [POST] Encrypt/Add Password & Permissions API from IronSecure Doc provides an efficient way to encrypt PDF files with user and owner passwords while configuring permissions for printing, form filling, annotations, and more. This API ensures that the PDF is fully protected and access is controlled, making it ideal for legal, financial, or personal documents.

Pull and Start IronSecureDoc

If you don't have IronSecureDoc running yet, please follow the links below to get it set up:

The [POST] Encrypt/Add Password & Permissions API

The [POST] Encrypt/Add Password & Permissions API allows you to add security layers to PDF documents by encrypting them with passwords and setting specific permissions for various operations. Whether it's granting read access, allowing form filling, or disabling printing, this API gives you control over how your PDF files are accessed and modified.

Swagger

Swagger offers a user-friendly interface to test this API interactively. You can use it to send test requests and receive responses without writing code, making it a great tool for developers.

Steps to Redact Text with Swagger

  1. Access the Swagger UI:

If your API server is running locally, you can access Swagger by navigating to http://localhost:8080/swagger/index.html in your web browser.

Swagger docs

  1. Locate the API:

Find the [POST] /v1/document-services/pdfs/encrypt API, which corresponds to Encrypt/Add Password & Permissions.

Redact text

  1. Input Parameters:

Provide the required parameters for the API. You can upload a sample PDF file and specify the desired permissions.

  1. Upload PDF File:

In the request body, upload a PDF file as pdf_file and define the necessary permissions, such as allowing or restricting printing, form filling, and content extraction.

  1. Execute the Request:

Once all parameters are set, click "Execute" to send the request. The response will return the encrypted PDF with the specified security settings.

  1. Check the Output PDF:

Type in 'password' to view the PDF content.


Understanding Input Parameters

The API requires specific parameters to encrypt the PDF and assign permissions. Below is a breakdown of both required and optional parameters:

Required Parameters

NameData TypeDescription
pdf_fileapplication/pdfThe PDF file you want to encrypt.
allow_extracting_contentbooleanIndicate whether content extraction is allowed.
allow_form_fillingbooleanIndicate whether form filling is allowed.
allow_annotationsbooleanIndicate whether annotations are allowed.
allow_printingbooleanIndicate whether printing is allowed.
allow_modificationsbooleanIndicate whether modifications are allowed.
new_owner_passwordstringThe new owner password for the PDF, which grants full access and the ability to change permissions.

Optional Parameters

NameData TypeDescription
user_passwordstringThe current user password, required if the PDF has a user password to grant read access.
owner_passwordstringThe current owner password, required if the PDF has an owner password to grant full access.
new_user_passwordstringThe new user password for read access.
save_as_pdfabooleanSave the PDF as PDF/A-3 compliant.
save_as_pdfuabooleanSave the PDF as PDF/UA compliant.
authorstringSet the PDF metadata Author property.
titlestringSet the PDF metadata Title property.
subjectstringSet the PDF metadata Subject property.

API Integration: Python Example

Once you're familiar with the input parameters, you can call the API using Python or any other preferred language. Below is an example of how to integrate this API using Python.

import requests

# Endpoint URL
url = 'http://localhost:8080/v1/document-services/pdfs/encrypt'

# Headers with metadata information
headers = {
    'accept': '*/*',
    'author': 'Iron Software',
    'title': 'ENCRYPTION DEMO 2024',
    'subject': 'DEMO EXAMPLE'
}

# Files to be sent in the request
files = {
    'pdf_file': ('sample.pdf', open('sample.pdf', 'rb'), 'application/pdf')
}

# Parameters for encryption and permissions
data = {
    'allow_extracting_content': 'true',
    'allow_form_filling': 'true',
    'allow_annotations': 'false',
    'allow_printing': 'false',
    'allow_modifications': 'true',
    'new_owner_password': 'password',
    'new_user_password': 'password',
    'save_as_pdfa': 'false',
    'save_as_pdfua': 'false'
}

# Send POST request with parameters
response = requests.post(url, headers=headers, files=files, data=data)

# Save the encrypted PDF to file system
with open('sample_encrypted.pdf', 'wb') as f:
    f.write(response.content)

print('PDF encrypted successfully.')
Python

Steps Explained:

  • Load the PDF: The PDF file to be encrypted is loaded from the local file system.
  • Set Encryption Parameters: Define permissions like allowing printing, form filling, and content extraction, as well as setting new passwords.
  • Call the API: The [POST] Encrypt/Add Password & Permissions API is called, passing the necessary parameters.
  • Save the Result: The encrypted PDF is saved as a new file.

The PDF file is encrypted as shown below. Type in 'password' to view the PDF content.

Frequently Asked Questions

How can I encrypt a PDF file using IronSecureDoc?

You can encrypt a PDF file using IronSecureDoc by utilizing the [POST] Encrypt/Add Password & Permissions API. This allows you to set user and owner passwords and configure specific permissions for the PDF document.

What permissions can be configured with the IronSecureDoc API?

The IronSecureDoc API allows you to configure permissions for printing, form filling, annotations, content extraction, and modifications to ensure the desired level of access and security for your PDF documents.

Is it possible to test the IronSecureDoc API without writing code?

Yes, you can test the IronSecureDoc API interactively using Swagger, which provides a user-friendly interface to send and receive requests and responses, offering a code-free testing experience.

How do I deploy IronSecureDoc to a cloud platform?

IronSecureDoc can be deployed to cloud platforms such as Azure and AWS. Instructions on deploying IronSecureDoc to these environments are available on the Iron Software website.

What is the role of the Docker Image in using IronSecureDoc?

The IronSecureDoc Docker Image is required for running the API service. You can pull and start the Docker Image to host IronSecureDoc locally or in cloud environments.

Can I use IronSecureDoc to create PDF/A or PDF/UA compliant files?

Yes, IronSecureDoc offers optional parameters for saving PDF files as PDF/A-3 or PDF/UA compliant, ensuring adherence to specific standards and accessibility.

Why is it important to use owner and user passwords in PDF encryption?

Owner and user passwords in PDF encryption are crucial for controlling access levels. Owner passwords grant full access to the document, while user passwords provide more limited access, protecting sensitive information.

What coding languages can integrate with the IronSecureDoc API?

The IronSecureDoc API can be integrated with multiple programming languages such as Python, C#, and Java, among others, allowing flexibility for developers working in diverse environments.

What are the required parameters for encrypting a PDF with IronSecureDoc?

The required parameters include the PDF file itself and several permissions settings such as allowing content extraction, form filling, annotations, printing, modifications, and setting the new owner password.

What advantage does using IronSecureDoc offer for PDF security?

IronSecureDoc provides a robust solution for PDF security by allowing comprehensive encryption and permissions management, making it suitable for protecting legal, financial, or personal documents from unauthorized access.

Curtis Chau
Technical Writer

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.

...
Read More

Ready to Get Started?

Version:2024.10just released

Get your free 30-day Trial Key instantly.
No credit card or account creation required
Key in blue circle

Get your free 30-day Trial Key instantly.

Your trial license will be sent to your email address

No limitations. 100% unlocked. No credit card.

OR
bullet_checkedNo credit card or account creation requiredNo limitations. 100% unlocked. No credit card.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Book your free Live Demo
Booking Badge

Trusted by Millions of Engineers Worldwide

Iron Software's customer logos
Get Your No-Obligation Consult
Complete the form below or email sales@ironsoftware.com
Your details will always be kept confidential.
Trusted by Millions of Engineers Worldwide
Iron Software's customer logos
Get your free 30-day Trial Key instantly.
No credit card or account creation required