Table of Contents

Property WriteIncrementally



Gets or sets a value indicating whether to write PDF data incrementally, without changing the source data.

public bool WriteIncrementally { get; set; }

Property Value


true if library should write PDF data incrementally; otherwise, false.


Default value: false.

When this property is true, the library will copy the source data to output with no changes. And then will append the file with new and updated objects. Deleted objects will remain unchanged in the file, the library will only mark them as deleted.

Incremental updates do not invalidate digital signatures. Write PDF incrementally if you need to sign the same document multiple times.

This option requires a valid license data added to license manager. Otherwise, one of the save methods will throw an exception of InvalidOperationException type.

Setting this property to true causes the library to ignore some other options:

  • The library will automatically choose whether to use a cross-reference stream or a cross-reference table in the update. This depends on the source file. The library will detect the type of cross-reference in the original file and will use the same for the update.
  • The output file won't contain object streams if the original file does not use cross-reference streams. Even when UseObjectStreams property is true.
  • The library will produce a non-linearized file. I.e. it will ignore the value of the Linearize property. In addition, even if the source PDF is linearized, the resulting PDF will no longer be linearized.
  • The library uses whatever encryption is already present in the file and ignores the value of the EncryptionHandler property.

The value of this property is ignored when ProducePdfA is true. This is because not every file can be converted to a valid PDF/A document when updating the file incrementally.