History of Docotic.Pdf releases in 2023
Version 9.2
Dec 6th, 2023
Core library
Added the ability to extract and copy marked content. Look at the new PdfObjectExtractionOptions.FlattenMarkedContent property, PdfMarkedContent class and the updated Edit PDF page content sample.
Added the ability to copy marked content. Look at the new PdfCanvas.BeginMarkedContent and PdfCanvas.EndMarkedContent methods.
Added the ability to use layers within page content streams. Use the PdfCanvas.BeginMarkedContent method with
OC
tag.Added the ability to enumerate CosArray items.
From now on, the API supports C# nullable reference types to make it obvious which entities can be null and which are not.
Breaking change: PdfPage.GetObjects methods no longer return page objects from marked content by default. They return PdfMarkedContent objects instead. You can set PdfObjectExtractionOptions.FlattenMarkedContent property to
true
if you need the old behavior.Breaking change: PdfImage.Id property returns an empty string instead of
null
for inline images.Significantly improved processing speed for documents with large number of name objects (e.g., large number of images)
Reduced the amount of memory used to keep track of changed objects.
Improved the way the library stores cross-reference entities. Now fewer object collections can get to LOH.
The library now uses less time and memory to copy or extract pages to a new document.
Improved the parsing of PDFs with broken or incorrect structures.
Improved license validation for Microsoft test runners.
Removed PdfSaveOptions.RemoveSignaturePermissions property previously marked as obsolete.
Fixed NullReferenceException issues when parsing actions.
Fixed bugs related to creation of PdfLabColorSpace objects.
Fixed bugs related to decoding of CCITT (fax) images.
Fixed bugs related to decoding of documents encrypted with AES-256.
Fixed bugs related to drawing of PDF documents.
Fixed bugs related to drawing of underlined and strikethrough text with patterns.
Fixed bugs related to drawing with different color types in PDF canvas.
Fixed bugs related to changing brush and pen colors in PDF canvas.
Fixed bugs related to parsing of PDFs with thousands of cross-reference tables or streams.
Fixed bugs related to parsing of JPEG image with non-JFIF APP0 marker segments.
Fixed bugs related to text extraction.
Fixed bugs related to processing of large PDF dictionaries and arrays.
Fixed bugs related to processing of documents with broken or incorrect structures.
Fixed bugs related to processing of fonts.
Fixed bugs related to processing of text drawn using non-embedded fonts.
Fixed bugs related to calculating of the PdfDocumentView.Width property.
Layout add-on
The add-on is now compatible with .NET Standard 2.1.
Fixed compatibility issues with Unity and Mono.
Fixed trim compatibility issues.
Updated to work with the current core library version.
HTML to PDF add-on
From now on, the API supports C# nullable reference types to make it obvious which entities can be null and which are not.
Updated to use Chromium 119.0.6045.105.
Updated to work with the current core library version.
Breaking change: The library uses transparent background color by default. The PdfPageOptions.TransparentBackground property is marked as obsolete and ignored by the library. If you need an opaque background then you can use CSS background or add PdfXObject with
DrawOnBackground = true
after the HTML to PDF conversion. Look at comments in the Convert HTML and put it over existing PDF content sample.Breaking change: HtmlEngineOptions.ChromiumRevision property is now defined as
static readonly
instead ofconst
.
GDI add-on
From now on, the API supports C# nullable reference types to make it obvious which entities can be null and which are not.
Improved speed of drawing for PDF documents without color blending.
Updated to work with the current core library version.
Fixed bugs related to drawing of PDF documents.
Version 9.1
Aug 10th, 2023
Core library
Added the ability to save PDFs incrementally, without changing the source PDF data. Use the new PdfSaveOptions.WriteIncrementally option to save incrementally. The support for incremental updates is especially useful when you need to update a signed document. Incremental updates do not invalidate digital signatures. Writing PDFs incrementally, you can sign the same document multiple times.
Added the ability to flatten PDF annotations. Look at the new PdfDocument.FlattenWidgets and PdfWidget.Flatten methods.
Added the ability to merge controls with the same full name. Look at the new CopyAsKids value in PdfControlMergingMode enumeration.
Added the ability to read and modify XFA forms. Look at the new PdfDocument.Xfa property and CreateXfaForm methods.
Added the ability to remove XFA forms. Look at the new PdfDocument.RemoveXfa method.
Added the ability to convert PDF to image for printing. Look at the new PdfDrawOptions.UsePrintMode property.
Added the new Pdf20 value to the PdfVersion enumeration.
Added support for UTF-8 PDF strings introduced in PDF 2.0.
Added support for drawing of PDF documents with Function-based shadings (shading type 1).
Added support for drawing of PDF documents with Gouraud-shaded triangle meshes (shading types 4 and 5).
Added support for drawing of PDF documents with patch meshes (shading types 6 and 7).
Added support for drawing text annotations, sound annotations and file attachment annotations without normal appearance streams.
Added support for non-standard annotation types. Use PdfCustomAnnotation class to access such annotations.
Added properties for changing default text of controls. The default text is the text to which the control reverts when a reset-form action is executed. Look at the new PdfComboBox.DefaultText and PdfTextBox.DefaultText properties.
Added properties for changing default checked state of controls. The default checked state is the state to which the control reverts when a reset-form action is executed. Look at the new PdfRadioButton.DefaultChecked and PdfCheckBox.DefaultChecked properties.
Breaking change: Changing text box or combo box text no longer affects their default text. Please use the DefaultText properties in the corresponding classes to change the default text too.
Breaking change: Changing radio button or a check box checked state no longer affects their default checked state. Please use the DefaultChecked properties in the corresponding classes to change the default checked state too.
Breaking change: Clearing or selecting list box or combo box items no longer affects their default value.
Breaking change: The library no longer removes XFA forms on editing AcroForm controls. You can use the PdfDocument.Xfa property and PdfDocument.RemoveXfa method to read, modify, or remove an XFA data.
The PDF version specified in a document catalog now affects the version reported by PdfDocument.Version property. Also, when updating files, the library now properly updates any version specified in the catalog.
PdfDocument.DocumentsAreEqual methods now take PDF version into account.
The PdfControl.Flatten method is moved to the base PdfWidget class.
Now the library extracts text from hidden widgets when the PdfTextExtractionOptions.SkipInvisibleText property is
false
.Improved processing of controls in PdfControlMergingMode.CopyWithRename and DoNotCopy modes.
Improved speed of drawing for PDF documents with colored tiling patterns.
Reduced the amount of memory required to render shadings.
Reduced the amount of memory required to draw non-transformed images or save such images as painted.
Made some memory- and speed-related improvements to fonts processing code.
Improved the parsing of PDFs with broken or incorrect structures.
Improved saving of images as painted in JPEG format.
In XML metadata, PDFVersion property in pdf schema now gets updated, not removed.
PdfSaveOptions.RemoveSignaturePermissions property is marked as obsolete. The library ignores the value of this property and will automatically remove permissions when required. Use PdfDocument.RemoveSignaturePermissions method to remove the permissions any time you need.
Fixed bugs related to binding of radio button actions.
Fixed bugs related to drawing and extraction of 1bpp RGB images.
Fixed bugs related to loading of bytes for non-embedded fonts.
Fixed bugs related to decoding of CCITT Group Fax 3 images.
Fixed bugs related to processing of fonts.
Fixed bugs related to processing of layers.
Fixed bugs related to drawing and flattening of PDF controls.
Fixed bugs related to text extraction.
Fixed implementation of PdfDocument.UsesObjectStreams property.
Layout add-on
- Updated to work with the current core library version.
HTML to PDF add-on
Added the ability to preserve structure information (accessibility tags) in the produced PDF. Take a look at the new HtmlConversionOptions.PreserveStructureInformation property.
Updated to work with the current core library version.
GDI add-on
- Updated to work with the current core library version.
Version 9.0
May 30th, 2023
Core library
Added free add-on for generating PDF documents. Please try the BitMiracle.Docotic.Pdf.Layout add-on and let us know about your findings with it. The add-on is also available in the zip we distribute from our site.
Added a new group of sample codes for the Docotic.Pdf.Layout add-on.
Added the ability to customize the appearance of PdfFileAttachmentAnnotation. Look at the new PdfFileAttachmentAnnotation.NormalAppearance property.
Added the ability to save PDF pages as JPEG images using less memory and time in expense of the output JPEG size. Look at the new JpegImageCompressionOptions.ComputeOptimalTables property.
Breaking change: PdfDocument.FlattenControls method no longer skips hidden controls. Also, the PdfControl.Flatten method no longer throws exceptions if the control is hidden or does not belong to any page in the document.
PdfBox, PdfMatrix, PdfPoint, PdfQuadrilateral, PdfRectangle, and PdfSize now implement IEquatable
interface. Operations with document structure information now complete faster.
Improved the library to reuse allocated memory in Flate codec. This significantly reduces the total number of memory allocations and positively affects the document reading and saving processes. And operations with certain images and masks, too.
Improved the library to reuse memory allocated for intermediate structures when reading, drawing, editing, and saving documents. This reduces the total number of allocations and the memory footprint.
Now the library creates fewer objects in the Large Object Heap (LOH).
Improved removal of unused font glyphs.
Improved writing of PDF content stream operations.
Improved speed of adding controls to documents and speed of merging documents with forms.
Reduced the amount of memory required to parse a font.
Reduced the amount of memory required to save a document with a cross-reference stream.
Reduced the amount of memory required to recompress or resize an image.
Reduced the amount of memory and time required to find and remove duplicate objects in a document.
Parsing operations in this version complete faster than before.
Improved parsing of PDFs with broken or incorrect structures.
Improved processing of invalid XMP metadata elements.
Improved processing of text drawn using non-embedded substituted fonts.
Improved substitution of fonts.
Improved drawing of underlined or strikethrough text.
Decoding and encoding of JPEG images now require much less memory allocations and complete faster.
Improved drawing, extraction, and recompression of JPEG images with incorrect size in JPEG data.
Improved error reporting for signature revocation checks.
Fixed implementation of ICollection interface in PdfCollection
. Fixed implementation of PdfSaveOptions.RemoveSignaturePermissions property.
Fixed bugs related to decoding of GIF images.
Fixed bugs related to drawing of font glyphs.
Fixed bugs related to calculation of text height.
Fixed bugs related to copying of created OpenType fonts.
Fixed bugs related to copying and parsing of PDF pages.
Fixed bugs related to parsing of PDF documents.
Fixed bugs related to processing of symbolic TrueType fonts.
Fixed bugs related to processing of empty streams.
Fixed bugs related to removing unused font glyphs.
Fixed bugs related to reading of fonts via symbolic links.
Fixed bugs related to changing combo box value.
Fixed bugs related to importing and exporting FDF data for combo boxes and list boxes.
Fixed bugs related to reading of combo box and list box items.
Fixed bugs related to text extraction.
Fixed bugs related to handling of named destinations.
Fixed a stream leak that could happen when adding rotated JPEG images.
Fixed cases when the library produced TIFF images with incorrect resolution values.
Fixed bugs in code that resizes images with soft masks.
Layout add-on
- Updated to work with the current core library version.
HTML to PDF add-on
- Updated to work with the current core library version.
GDI add-on
Updated to use System.Drawing.Common 7.0.0.
Updated to work with the current core library version.