Skip to main content

PdfDocumentProcessor.SaveDocument(Stream, PdfSaveOptions) Method

Saves the current PDF document to the specified stream with encryption settings and document signature.

Namespace: DevExpress.Pdf

Assembly: DevExpress.Docs.v24.1.dll

NuGet Package: DevExpress.Document.Processor


public void SaveDocument(
    Stream stream,
    PdfSaveOptions options


Name Type Description
stream Stream

A Stream value, specifying the location of the saved document.

options PdfSaveOptions

A PdfSaveOptions that contains the encryption settings and document signature that should be saved.


When you dispose of an output stream that has not been detached, an attempt to apply further changes to a document may cause errors. If you want to close the stream when a document is saved, call the SaveDocument method overload with the detachStream parameter enabled.

If you load and save a document to the same stream, it may lead to unexpected results. Use the PdfDocumentProcessor.SaveDocument(Stream, PdfSaveOptions, Boolean) method overload for safer results.


The PdfDocumentProcessor removes existing signatures from a document when it is saved. However, if you use PdfDocumentProcessor to apply a signature, it is retained.


This example shows how a PDF document can be protected using both the owner and user passwords.

Refer to the following topic fro more information: Document Protection

using DevExpress.Pdf;

namespace PDFPasswordProtection
  class Program
    static void Main(string[] args)

      using (PdfDocumentProcessor pdfDocumentProcessor = new PdfDocumentProcessor()) {

        // Load a PDF document.

        // Specify printing, data extraction, modification, and interactivity permissions. 
        PdfEncryptionOptions encryptionOptions = new PdfEncryptionOptions();
        encryptionOptions.PrintingPermissions = PdfDocumentPrintingPermissions.Allowed;
        encryptionOptions.DataExtractionPermissions = PdfDocumentDataExtractionPermissions.NotAllowed;
        encryptionOptions.ModificationPermissions = PdfDocumentModificationPermissions.DocumentAssembling;
        encryptionOptions.InteractivityPermissions = PdfDocumentInteractivityPermissions.Allowed;

        // Specify the owner and user passwords for the document.
        encryptionOptions.OwnerPasswordString = "OwnerPassword";
        encryptionOptions.UserPasswordString = "UserPassword";

        // Specify the 256-bit AES encryption algorithm.
         encryptionOptions.Algorithm = PdfEncryptionAlgorithm.AES256;

        // Save the protected document with encryption settings.
        using (FileStream stream = new FileStream("Result.pdf", FileMode.Create, FileAccess.ReadWrite))
        pdfDocumentProcessor.SaveDocument(stream, new PdfSaveOptions()
           { EncryptionOptions = encryptionOptions });
See Also