using IronPdf;var pdf = PdfDocument.FromFile("input.pdf");// User password required to open/view the PDFpdf.SecuritySettings.UserPassword = "view-access-2024";// Owner password required to modify security settingspdf.SecuritySettings.OwnerPassword = "admin-master-key";// Disable printing for users without owner passwordpdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;// Disable copy/paste of contentpdf.SecuritySettings.AllowUserCopyPasteContent = false;pdf.SaveAs("output-secured.pdf");
using IronPdf;
var pdf = PdfDocument.FromFile("input.pdf");
// User password required to open/view the PDF
pdf.SecuritySettings.UserPassword = "view-access-2024";
// Owner password required to modify security settings
pdf.SecuritySettings.OwnerPassword = "admin-master-key";
// Disable printing for users without owner password
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;
// Disable copy/paste of content
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SaveAs("output-secured.pdf");
ImportsIronPdfDim pdf = PdfDocument.FromFile("input.pdf")' User password required to open/view the PDFpdf.SecuritySettings.UserPassword = "view-access-2024"' Owner password required to modify security settingspdf.SecuritySettings.OwnerPassword = "admin-master-key"' Disable printing for users without owner passwordpdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint' Disable copy/paste of contentpdf.SecuritySettings.AllowUserCopyPasteContent = Falsepdf.SaveAs("output-secured.pdf")
Imports IronPdf
Dim pdf = PdfDocument.FromFile("input.pdf")
' User password required to open/view the PDF
pdf.SecuritySettings.UserPassword = "view-access-2024"
' Owner password required to modify security settings
pdf.SecuritySettings.OwnerPassword = "admin-master-key"
' Disable printing for users without owner password
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint
' Disable copy/paste of content
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SaveAs("output-secured.pdf")
using IronPdf;var pdf = PdfDocument.FromFile("input.pdf");// Set user password - anyone opening this PDF must provide this passwordpdf.SecuritySettings.UserPassword = "Secure#Password2024!";pdf.SaveAs("output-protected.pdf");
using IronPdf;
var pdf = PdfDocument.FromFile("input.pdf");
// Set user password - anyone opening this PDF must provide this password
pdf.SecuritySettings.UserPassword = "Secure#Password2024!";
pdf.SaveAs("output-protected.pdf");
ImportsIronPdfDim pdf = PdfDocument.FromFile("input.pdf")' Set user password - anyone opening this PDF must provide this passwordpdf.SecuritySettings.UserPassword = "Secure#Password2024!"pdf.SaveAs("output-protected.pdf")
Imports IronPdf
Dim pdf = PdfDocument.FromFile("input.pdf")
' Set user password - anyone opening this PDF must provide this password
pdf.SecuritySettings.UserPassword = "Secure#Password2024!"
pdf.SaveAs("output-protected.pdf")
using IronPdf;using IronPdf.Security;var pdf = PdfDocument.FromFile("sample-pdf.pdf");// Owner password enables restrictions without requiring password to openpdf.SecuritySettings.OwnerPassword = "admin-control-2024";// Prevent printing without owner passwordpdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;// Disable copy/paste functionalitypdf.SecuritySettings.AllowUserCopyPasteContent = false;// Prevent any editing without owner passwordpdf.SecuritySettings.AllowUserEdits = PdfEditSecurity.NoEdit;pdf.SaveAs("output-owner-protected.pdf");
using IronPdf;
using IronPdf.Security;
var pdf = PdfDocument.FromFile("sample-pdf.pdf");
// Owner password enables restrictions without requiring password to open
pdf.SecuritySettings.OwnerPassword = "admin-control-2024";
// Prevent printing without owner password
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
// Disable copy/paste functionality
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
// Prevent any editing without owner password
pdf.SecuritySettings.AllowUserEdits = PdfEditSecurity.NoEdit;
pdf.SaveAs("output-owner-protected.pdf");
ImportsIronPdfImportsIronPdf.SecurityDim pdf = PdfDocument.FromFile("sample-pdf.pdf")' Owner password enables restrictions without requiring password to openpdf.SecuritySettings.OwnerPassword = "admin-control-2024"' Prevent printing without owner passwordpdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint' Disable copy/paste functionalitypdf.SecuritySettings.AllowUserCopyPasteContent = False' Prevent any editing without owner passwordpdf.SecuritySettings.AllowUserEdits = PdfEditSecurity.NoEditpdf.SaveAs("output-owner-protected.pdf")
Imports IronPdf
Imports IronPdf.Security
Dim pdf = PdfDocument.FromFile("sample-pdf.pdf")
' Owner password enables restrictions without requiring password to open
pdf.SecuritySettings.OwnerPassword = "admin-control-2024"
' Prevent printing without owner password
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint
' Disable copy/paste functionality
pdf.SecuritySettings.AllowUserCopyPasteContent = False
' Prevent any editing without owner password
pdf.SecuritySettings.AllowUserEdits = PdfEditSecurity.NoEdit
pdf.SaveAs("output-owner-protected.pdf")
using IronPdf;var pdf = PdfDocument.FromFile("input.pdf");// Owner password required for copy/paste restrictionspdf.SecuritySettings.OwnerPassword = "content-protection-key";// Prevent users from selecting and copying text or imagespdf.SecuritySettings.AllowUserCopyPasteContent = false;pdf.SaveAs("output-no-copy.pdf");
using IronPdf;
var pdf = PdfDocument.FromFile("input.pdf");
// Owner password required for copy/paste restrictions
pdf.SecuritySettings.OwnerPassword = "content-protection-key";
// Prevent users from selecting and copying text or images
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SaveAs("output-no-copy.pdf");
ImportsIronPdfDim pdf = PdfDocument.FromFile("input.pdf")' Owner password required for copy/paste restrictionspdf.SecuritySettings.OwnerPassword = "content-protection-key"' Prevent users from selecting and copying text or imagespdf.SecuritySettings.AllowUserCopyPasteContent = Falsepdf.SaveAs("output-no-copy.pdf")
Imports IronPdf
Dim pdf = PdfDocument.FromFile("input.pdf")
' Owner password required for copy/paste restrictions
pdf.SecuritySettings.OwnerPassword = "content-protection-key"
' Prevent users from selecting and copying text or images
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SaveAs("output-no-copy.pdf")
using IronPdf;var pdf = PdfDocument.FromFile("input.pdf");// Owner password required for annotation restrictionspdf.SecuritySettings.OwnerPassword = "legal-admin-2024";// Prevent adding comments, highlights, or other markuppdf.SecuritySettings.AllowUserAnnotations = false;pdf.SaveAs("output-no-annotations.pdf");
using IronPdf;
var pdf = PdfDocument.FromFile("input.pdf");
// Owner password required for annotation restrictions
pdf.SecuritySettings.OwnerPassword = "legal-admin-2024";
// Prevent adding comments, highlights, or other markup
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SaveAs("output-no-annotations.pdf");
ImportsIronPdfDim pdf = PdfDocument.FromFile("input.pdf")' Owner password required for annotation restrictionspdf.SecuritySettings.OwnerPassword = "legal-admin-2024"' Prevent adding comments, highlights, or other markuppdf.SecuritySettings.AllowUserAnnotations = Falsepdf.SaveAs("output-no-annotations.pdf")
Imports IronPdf
Dim pdf = PdfDocument.FromFile("input.pdf")
' Owner password required for annotation restrictions
pdf.SecuritySettings.OwnerPassword = "legal-admin-2024"
' Prevent adding comments, highlights, or other markup
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SaveAs("output-no-annotations.pdf")
using IronPdf;// Open password-protected PDFvar password = "user-access-2024";var pdf = PdfDocument.FromFile("protected.pdf", password);// Work with the decrypted documentvar text = pdf.ExtractAllText();// Modify and savepdf.SaveAs("output-processed.pdf");// Note: For production, use secure password storage (environment variables, key vaults)
using IronPdf;
// Open password-protected PDF
var password = "user-access-2024";
var pdf = PdfDocument.FromFile("protected.pdf", password);
// Work with the decrypted document
var text = pdf.ExtractAllText();
// Modify and save
pdf.SaveAs("output-processed.pdf");
// Note: For production, use secure password storage (environment variables, key vaults)
ImportsIronPdf' Open password-protected PDFDim password AsString = "user-access-2024"Dim pdf AsPdfDocument = PdfDocument.FromFile("protected.pdf", password)' Work with the decrypted documentDim text AsString = pdf.ExtractAllText()' Modify and savepdf.SaveAs("output-processed.pdf")' Note: For production, use secure password storage (environment variables, key vaults)
Imports IronPdf
' Open password-protected PDF
Dim password As String = "user-access-2024"
Dim pdf As PdfDocument = PdfDocument.FromFile("protected.pdf", password)
' Work with the decrypted document
Dim text As String = pdf.ExtractAllText()
' Modify and save
pdf.SaveAs("output-processed.pdf")
' Note: For production, use secure password storage (environment variables, key vaults)
using IronPdf;var pdf = PdfDocument.FromFile("protected.pdf", "owner-password-2024");pdf.SecuritySettings.RemovePasswordsAndEncryption();pdf.SaveAs("output-unprotected.pdf");
using IronPdf;
var pdf = PdfDocument.FromFile("protected.pdf", "owner-password-2024");
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SaveAs("output-unprotected.pdf");
ImportsIronPdfDim pdf = PdfDocument.FromFile("protected.pdf", "owner-password-2024")pdf.SecuritySettings.RemovePasswordsAndEncryption()pdf.SaveAs("output-unprotected.pdf")
Imports IronPdf
Dim pdf = PdfDocument.FromFile("protected.pdf", "owner-password-2024")
pdf.SecuritySettings.RemovePasswordsAndEncryption()
pdf.SaveAs("output-unprotected.pdf")
using IronPdf;using System;using System.IO;string inputDir = "./input";string outputDir = "./output";Directory.CreateDirectory(outputDir);var pdfFiles = Directory.GetFiles(inputDir, "*.pdf");string password = "batch-process-2024";foreach (var pdfPath in pdfFiles){ try { PdfDocument pdf; try { pdf = PdfDocument.FromFile(pdfPath, password); } catch { pdf = PdfDocument.FromFile(pdfPath); } var text = pdf.ExtractAllText(); pdf.SecuritySettings.RemovePasswordsAndEncryption(); string fileName = Path.GetFileName(pdfPath); string outputPath = Path.Combine(outputDir, fileName); pdf.SaveAs(outputPath); } catch (Exception ex) { // Handle errors as needed }}
using IronPdf;
using System;
using System.IO;
string inputDir = "./input";
string outputDir = "./output";
Directory.CreateDirectory(outputDir);
var pdfFiles = Directory.GetFiles(inputDir, "*.pdf");
string password = "batch-process-2024";
foreach (var pdfPath in pdfFiles)
{
try
{
PdfDocument pdf;
try
{
pdf = PdfDocument.FromFile(pdfPath, password);
}
catch
{
pdf = PdfDocument.FromFile(pdfPath);
}
var text = pdf.ExtractAllText();
pdf.SecuritySettings.RemovePasswordsAndEncryption();
string fileName = Path.GetFileName(pdfPath);
string outputPath = Path.Combine(outputDir, fileName);
pdf.SaveAs(outputPath);
}
catch (Exception ex)
{
// Handle errors as needed
}
}
ImportsIronPdfImportsSystemImportsSystem.IODim inputDir AsString = "./input"Dim outputDir AsString = "./output"Directory.CreateDirectory(outputDir)Dim pdfFiles = Directory.GetFiles(inputDir, "*.pdf")Dim password AsString = "batch-process-2024"For Each pdfPath In pdfFilesTry Dim pdf AsPdfDocumentTry pdf = PdfDocument.FromFile(pdfPath, password)Catch pdf = PdfDocument.FromFile(pdfPath)EndTry Dim text = pdf.ExtractAllText() pdf.SecuritySettings.RemovePasswordsAndEncryption() Dim fileName AsString = Path.GetFileName(pdfPath) Dim outputPath AsString = Path.Combine(outputDir, fileName) pdf.SaveAs(outputPath)Catch ex AsException ' Handle errors as neededEndTryNext
Imports IronPdf
Imports System
Imports System.IO
Dim inputDir As String = "./input"
Dim outputDir As String = "./output"
Directory.CreateDirectory(outputDir)
Dim pdfFiles = Directory.GetFiles(inputDir, "*.pdf")
Dim password As String = "batch-process-2024"
For Each pdfPath In pdfFiles
Try
Dim pdf As PdfDocument
Try
pdf = PdfDocument.FromFile(pdfPath, password)
Catch
pdf = PdfDocument.FromFile(pdfPath)
End Try
Dim text = pdf.ExtractAllText()
pdf.SecuritySettings.RemovePasswordsAndEncryption()
Dim fileName As String = Path.GetFileName(pdfPath)
Dim outputPath As String = Path.Combine(outputDir, fileName)
pdf.SaveAs(outputPath)
Catch ex As Exception
' Handle errors as needed
End Try
Next
using IronPdf;using IronPdf.Signing;using System.Security.Cryptography.X509Certificates;var pdf = PdfDocument.FromFile("input.pdf");// Apply encryptionpdf.SecuritySettings.UserPassword = "view-classified-2024";pdf.SecuritySettings.OwnerPassword = "admin-classified-2024";// Digital signature requires external certificate file (certificate.pfx)// In production: use certificates from trusted Certificate Authorities and secure hardware (HSM)var certificate = new X509Certificate2("certificate.pfx", "cert-password");var signature = new PdfSignature(certificate){SigningContact = "security@agency.gov",SigningReason = "Document Certification",SigningLocation = "Washington DC, USA"};pdf.Sign(signature);pdf.SaveAs("output-signed-encrypted.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
var pdf = PdfDocument.FromFile("input.pdf");
// Apply encryption
pdf.SecuritySettings.UserPassword = "view-classified-2024";
pdf.SecuritySettings.OwnerPassword = "admin-classified-2024";
// Digital signature requires external certificate file (certificate.pfx)
// In production: use certificates from trusted Certificate Authorities and secure hardware (HSM)
var certificate = new X509Certificate2("certificate.pfx", "cert-password");
var signature = new PdfSignature(certificate)
{
SigningContact = "security@agency.gov",
SigningReason = "Document Certification",
SigningLocation = "Washington DC, USA"
};
pdf.Sign(signature);
pdf.SaveAs("output-signed-encrypted.pdf");
ImportsIronPdfImportsIronPdf.SigningImportsSystem.Security.Cryptography.X509CertificatesDim pdf = PdfDocument.FromFile("input.pdf")' Apply encryptionpdf.SecuritySettings.UserPassword = "view-classified-2024"pdf.SecuritySettings.OwnerPassword = "admin-classified-2024"' Digital signature requires external certificate file (certificate.pfx)' In production: use certificates from trusted Certificate Authorities and secure hardware (HSM)Dim certificate As New X509Certificate2("certificate.pfx", "cert-password")Dim signature As New PdfSignature(certificate) With { .SigningContact = "security@agency.gov", .SigningReason = "Document Certification", .SigningLocation = "Washington DC, USA"}pdf.Sign(signature)pdf.SaveAs("output-signed-encrypted.pdf")
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
Dim pdf = PdfDocument.FromFile("input.pdf")
' Apply encryption
pdf.SecuritySettings.UserPassword = "view-classified-2024"
pdf.SecuritySettings.OwnerPassword = "admin-classified-2024"
' Digital signature requires external certificate file (certificate.pfx)
' In production: use certificates from trusted Certificate Authorities and secure hardware (HSM)
Dim certificate As New X509Certificate2("certificate.pfx", "cert-password")
Dim signature As New PdfSignature(certificate) With {
.SigningContact = "security@agency.gov",
.SigningReason = "Document Certification",
.SigningLocation = "Washington DC, USA"
}
pdf.Sign(signature)
pdf.SaveAs("output-signed-encrypted.pdf")
using IronPdf;using IronPdf.Rendering;var pdf = PdfDocument.FromFile("input.pdf");// Prevent JavaScript injection by disabling editingpdf.SecuritySettings.OwnerPassword = "admin-secure-2024";pdf.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.NoEdit;pdf.SaveAs("output-hardened.pdf");
using IronPdf;
using IronPdf.Rendering;
var pdf = PdfDocument.FromFile("input.pdf");
// Prevent JavaScript injection by disabling editing
pdf.SecuritySettings.OwnerPassword = "admin-secure-2024";
pdf.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.NoEdit;
pdf.SaveAs("output-hardened.pdf");
ImportsIronPdfImportsIronPdf.RenderingDim pdf = PdfDocument.FromFile("input.pdf")' Prevent JavaScript injection by disabling editingpdf.SecuritySettings.OwnerPassword = "admin-secure-2024"pdf.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.NoEditpdf.SaveAs("output-hardened.pdf")
Imports IronPdf
Imports IronPdf.Rendering
Dim pdf = PdfDocument.FromFile("input.pdf")
' Prevent JavaScript injection by disabling editing
pdf.SecuritySettings.OwnerPassword = "admin-secure-2024"
pdf.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.NoEdit
pdf.SaveAs("output-hardened.pdf")
How do I keep PDF metadata readable while encrypting the content?
Set SecuritySettings.EncryptMetadata to false. It defaults to true, matching the PDF default. This is useful when documents must remain searchable or catalogued by an external system while the body stays encrypted. Note that EncryptMetadata is only honored for AES encryption and has no effect when EncryptionType is Rc4_128.
What should I consider when managing PDF permissions in a .NET application?
When managing PDF permissions, consider the specific actions you want to restrict (e.g., printing, copying, editing) and use IronPDF’s permission controls for each. Always set an owner password to enforce these restrictions.
What steps are necessary to implement effective PDF security in a .NET application?
To implement effective PDF security, ensure you use strong encryption and complex passwords, apply the principle of least privilege with granular permissions, and regularly sanitize documents before distribution to remove sensitive metadata.
Is it possible to perform batch processing on encrypted PDF files using IronPDF?
Yes, IronPDF supports batch processing of encrypted PDF files, allowing you to handle multiple documents efficiently by looping through a directory of files and applying security settings or removing encryption as needed.
How can digital signatures be used alongside encryption in PDF documents?
Digital signatures can be added to encrypted PDFs using IronPDF to ensure document authenticity and integrity. This involves using a valid X.509 certificate to sign the PDF after applying encryption settings, ensuring both confidentiality and non-repudiation.