Version history

Docotic.Pdf library help > Version history

Version 7.5

February 5th, 2021

  • Added 2021 Encryption API migration guide.
  • Added ability to inspect, encrypt, and decrypt documents protected with Public-Key Security Handlers. You would need a corresponding certificate to process such documents.
  • Added ability to create launch actions. Take a look at the new CreateLaunchAction(String) method.
  • Added ability to extract right-to-left and bidirectional text in the correct order. PdfDocument.GetText(), PdfDocument.GetTextWithFormatting(), PdfPage.GetText(), PdfPage.GetTextWithFormatting(), and PdfCanvas.GetText() methods now extract text according to the logical order. From now on, these methods also normalize Hebrew and Arabic codepoints from Alphabetic and Arabic Presentation Forms.
  • Added new PdfTextData.GetText() methods. These methods allows you to extract right-to-left and bidirectional text according to the logical order.
  • Added new Create PDF document from a Blazor WebAssembly application sample.
  • Added new classes for encryption purposes: base PdfEncryptionHandler, PdfStandardEncryptionHandler for encrypting document with passwords, and PdfPublicKeyEncryptionHandler for encrypting documents with certificates.
  • Added new classes for decryption purposes: base PdfDecryptionHandler, PdfStandardDecryptionHandler for password-protected documents, and PdfPublicKeyDecryptionHandler for public key protected documents.
  • Added new classes for inspection of encrypted PDFs: base PdfEncryptionInfo, PdfStandardEncryptionInfo for password-protected documents, and PdfPublicKeyEncryptionInfo for public key protected documents.
  • Added new PdfRecipientInfo class that provides information about recipients (certificates) allowed to open a public key protected document.
  • Added new PdfPermissionsInfo class and PdfDocument.GrantedPermissions property that provides read-only information about granted PDF access permissions.
  • Added new PdfDocument constructors that accept PdfDecryptionHandler as one of the parameters: PdfDocument(String, PdfDecryptionHandler), PdfDocument(Stream, PdfDecryptionHandler), PdfDocument(String, PdfDecryptionHandler, PdfConfigurationOptions), PdfDocument(Stream, PdfDecryptionHandler, PdfConfigurationOptions). Use these new constructors to open encrypted documents.
  • Added new overloads for PdfDocument.DocumentsAreEqual method. The new overloads accept PdfDecryptionHandler as one of their parameters: PdfDocument.DocumentsAreEqual(String, String), PdfDocument.DocumentsAreEqual(Stream, Stream), PdfDocument.DocumentsAreEqual(String, String, PdfDecryptionHandler), PdfDocument.DocumentsAreEqual(Stream, Stream, PdfDecryptionHandler), PdfDocument.DocumentsAreEqual(Stream, Stream, PdfDecryptionHandler, PdfConfigurationOptions).
  • Added new overloads for PdfDocument.Append method. The new overloads accept PdfDecryptionHandler as one of their parameters: PdfDocument.Append(String, PdfDecryptionHandler), PdfDocument.Append(Stream, PdfDecryptionHandler).
  • Added new PdfDocument.GetEncryptionInfo methods: PdfDocument.GetEncryptionInfo(String), PdfDocument.GetEncryptionInfo(String, PdfConfigurationOptions), PdfDocument.GetEncryptionInfo(Stream), PdfDocument.GetEncryptionInfo(Stream, PdfConfigurationOptions). Use these methods to find out if a document is encrypted, how it was encrypted and what permissions were granted for the document.
  • Added new PdfSaveOptions.EncryptionHandler property. The encryption handler is for encrypting the output PDF.
  • Added new XmpMetadata.Save() methods for saving XMP metadata to a file or a stream.
  • Added new GetApplicationInfo() method. This method returns the information we use to create Application License keys.
  • Added ability to create instances of PdfPermissions class.
  • Added new Open PDF document encrypted with a certificate and Protect PDF document with a certificate sample codes that show how to encrypt and decrypt documents using certificates.
  • All PdfDocument constructors that accept password string as one of their parameters are marked obsolete (and will be removed in the next release of Docotic.Pdf). Please use one of the new constructors with parameter of PdfDecryptionHandler type instead.
  • All PdfDocument.Open methods are marked obsolete (and will be removed in the next release of Docotic.Pdf). Please use one of the constructors instead.
  • The following PdfDocument.DocumentsAreEqual method overloads are marked obsolete (and will be removed in the next release of Docotic.Pdf): PdfDocument.DocumentsAreEqual(string, string, string), PdfDocument.DocumentsAreEqual(byte[], byte[], string), PdfDocument.DocumentsAreEqual(System.IO.Stream, System.IO.Stream, string), PdfDocument.DocumentsAreEqual(System.IO.Stream, System.IO.Stream, string, PdfConfigurationOptions). Instead of them, please use one of the overloads that has a parameter of PdfDecryptionHandler type.
  • The following PdfDocument.Append method overloads are marked obsolete (and will be removed in the next release of Docotic.Pdf): PdfDocument.Append(string, string), PdfDocument.Append(System.IO.Stream, string), PdfDocument.Append(byte[], string). Instead of them, please use one of the overloads that has a parameter of PdfDecryptionHandler type.
  • All PdfDocument.IsPasswordProtected methods are marked obsolete (and will be removed in the next release of Docotic.Pdf). Please use one of the PdfDocument.GetEncryptionInfo() methods instead.
  • PdfDocument.OwnerPassword and PdfDocument.UserPassword properties are marked obsolete (and will be removed in the next release of Docotic.Pdf). Instead of using them, please assign an instance of PdfStandardEncryptionHandler to PdfSaveOptions.EncryptionHandler property. You can use properties of the handler to setup passwords and permissions.
  • PdfDocument.Encryption and PdfDocument.Permissions properties are marked obsolete (and will be removed in the next release of Docotic.Pdf). Instead of using them, please use PdfSaveOptions.EncryptionHandler property if you are going to create an encrypted document. Or use one of the PdfDocument.GetEncryptionInfo() methods and PdfDocument.GrantedPermissions property if you would like to inspect properties of an already encrypted document.
  • PdfDocument.Error event and PdfErrorEventArgs class are marked obsolete (and will be removed in the next release of Docotic.Pdf). To receive notifications about errors, use a log listener. If you use NLog, please consider using the MethodCall target (https://github.com/NLog/NLog/wiki/MethodCall-target).
  • PdfSaveOptions.WriteEncrypted property is marked obsolete (and will be removed in the next release of Docotic.Pdf). This property is always false.
  • All XmpMetadata.Extract methods are marked obsolete (and will be removed in the next release of Docotic.Pdf). To achieve the same, please open a document explicitly and then save its metadata using one of the new Save() methods.
  • PdfTextData.Text property is marked obsolete (and will be removed in the next release of Docotic.Pdf). Please use PdfTextData.GetText() methods instead.
  • The values of PdfDocument.OwnerPassword, PdfDocument.UserPassword, PdfDocument.Encryption, and PdfDocument.Permissions are not used while saving an encrypted document, if the value of the PdfSaveOptions.EncryptionHandler property is not null.
  • When drawing documents with FitSize scaling mode, the result now covers area with the desired size in all cases. Previously, it was not the case when the desired size was larger than the actual page size.
  • Improved speed of processing for broken content streams.
  • Improved license validation for Visual Studio test runners.
  • Improved extraction of plain and formatted text. Improved extraction of text from column-based and tabular layouts. Decreased size of extracted text by removing unnecessary lines and trimming whitespaces.
  • Improved parsing of PDFs with broken or incorrect structure.
  • Updated Check if PDF document is password protected, Set up PDF permissions, Protect PDF document with AES, and Encrypt PDF with a password sample codes to use the new encryption API.
  • Updated Draw PDF page on Graphics in C# and VB.NET sample code to support negative font sizes.
  • Updated Find and highlight text in PDF document sample code to support searching of right-to-left words.
  • PdfCanvas.SaveState() and PdfCanvas.RestoreState() methods now take PdfCanvas.TextAngle property into account.
  • Fixed drawing of PDF documents with very large text.
  • Fixed bugs related to using Docotic.Pdf from Blazor WASM projects.
  • Fixed bugs related to text extraction.
  • Fixed bugs related to recovering encodings for Type0 fonts.
  • Fixed bugs related to parsing of actions.
  • Fixed bugs related to parsing of fonts.
  • Fixed bugs related to editing of listboxes.
  • Fixed bugs related to editing of text markup annotations.
  • Fixed bugs related to opening of documents.
  • Fixed bugs related to drawing of documents with patterns.
  • Fixed bugs related to importing of semi-transparent JPEG-in-TIFF images.
  • PdfPage methods like PdfPage.GetWords() or PdfPage.Save() no longer implicitly modify state of the page canvas.

Previous releases