Table of Contents

History of Docotic.Pdf releases in 2022

Version 8.8

Nov 30th, 2022

Core library

8.8.14015

  • Added new PdfPage.MergeContentStreams method that merges page content streams. This method helps to reduce file size when document pages use multiple associated content streams.

  • Added the ability to create 3D views. Look at the new PdfDocument.Create3dView(String) method.

  • Added new Pdf3dAnnotation.Name property.

  • Added new Pdf3dView.TransformationSource, Pdf3dView.CenterOfOrbit, Pdf3dView.Projection, Pdf3dView.LightingStyle properties and Pdf3dView.GetCameraToWorldTransformation, Pdf3dView.SetCameraToWorldTransformation(Double[]), Pdf3dView.GetU3dPath, Pdf3dView.SetU3dPath(String[]) methods.

  • Added new PDF/A conformance levels to PdfaConformance enumeration.

  • Added ability to modify Pdf3dStream.Views collection.

  • Added the ability check where a PDF font can be safely unembedded. Look at the new PdfFont.IsAvailableThroughLoader, PdfFont.IsBuiltIn methods and the updated Compress PDF document in .NET sample.

  • From now on, PdfDocument.CopyPages and PdfDocument.ExtractPages methods preserve structure information for copied pages.

  • From now on, PdfDocument.ReplaceDuplicateObjects methods can also replace duplicate form XObjects with the first duplicate.

  • From now on, PdfDocument.Save and PdfDocument.SignAndSave methods ignore the value of the PdfSaveOptions.UseObjectStreams property when PdfSaveOptions.ProducePdfA is true. Object streams are not allowed in PDF/A documents.

  • PdfDocument.CreateXObject method no longer adds Helvetica font to the document.

  • Breaking change: Now Pdf3dStream.Views property returns PdfList<Pdf3dView> instead of PdfCollection<Pdf3dView>.

  • Breaking change: PdfDocument.CreateXObject methods no longer sets default brush and pen colors on the created XObject canvas. You can set colors explicitly if you need the old behavior.

  • Improved speed and decreased memory consumption during execution of PdfPage.GetPaintedImages, PdfPage.RemovePaintedImages(Predicate<PdfPaintedImage>), and PdfPage.RemovePaths(Predicate<PdfPath>) methods.

  • Improved merging of documents with structure information.

  • Improved removing of structure information.

  • Appending a document can no longer change the value of PdfDocument.UsesObjectStreams property.

  • Removed the following methods and properties of ImageCompressionOptions class previously marked as obsolete: TileWidth, TileHeight, BitonalConversionThreshold, JpegQuality, CreateGrayscalePng, CreateJpeg(int), CreateCmykJpeg, CreateCmykJpeg(int), CreateGrayscaleJpeg, CreateGrayscaleJpeg(int), CreateTiledTiff(int, int), CreateCmykTiff, CreateGrayscaleTiff, CreateBitonalTiff, CreateBitonalTiff(int).

  • Fixed bugs in PdfSignatureContents.CheckHasEmbeddedOcsp and PdfSignatureContents.CheckHasEmbeddedCrl methods.

  • Fixed bugs in PdfPage.GetImages methods.

  • Fixed bugs related to decoding of CCITT (fax) images.

  • Fixed bugs related to drawing of widgets.

  • Fixed bugs related to loading of bytes for non-embedded fonts.

  • Fixed bugs related to moving inline images to resources.

  • Fixed bugs related to naming of fonts.

  • Fixed bugs related to parsing and appending of PDF documents.

  • Fixed bugs related to replacing duplicate objects.

  • Fixed bugs related to text extraction.

  • Fixed bugs related to extraction of text drawn with Type3 fonts.

HTML to PDF add-on

8.8.14015

  • Updated to work with the current core library version.

GDI add-on

8.8.14015

  • Updated to work with the current core library version.


Version 8.7

Oct 11th, 2022

Core library

8.7.13797

  • Added the ability to remove unused glyphs from existing PDF fonts. Look at the new PdfDocument.RemoveUnusedFontGlyphs methods. The PdfFont.RemoveUnusedGlyphs method now also works for existing PDF fonts.

  • Added the ability to specify an options for PDF merging. Look at the new PdfDocument.Append(String, PdfDecryptionHandler, PdfMergingOptions), PdfDocument.Append(Stream, PdfDecryptionHandler, PdfMergingOptions) methods and PdfMergingOptions class.

  • Added the ability to specify a custom handler for glyphs that cannot be drawn when measuring text. Look at the new PdfCanvas.GetTextWidth(String, PdfMissingGlyphMapper) and PdfCanvas.MeasureText(String, PdfMissingGlyphMapper) methods.

  • Added the ability to draw and extract images with 4-bit soft masks.

  • Added the ability to save PDF pages as uncompressed raster bytes in RGB, Gray-scale, and CMYK color spaces with an optional alpha channel. Please take a look at the new ImageCompressionOptions.CreateUncompressed method.

  • Added the ability to retrieving the size of the image produced by a PdfPage.Save call. Take a look at the new PdfDrawOptions.GetOutputWidth(PdfPage) and PdfDrawOptions.GetOutputHeight(PdfPage) methods.

  • Added the new Uncompressed value to PdfDrawFormat enumeration.

  • Added the new PdfSaveOptions.RemoveSignaturePermissions option. The option is true by default.

  • Added new Subset PDF fonts in C# and VB.NET and Embed PDF fonts in C# and VB.NET samples.

  • PdfFont.ContainsGlyphsForText(String) method no longer marks glyphs as used for new OpenType fonts.

  • Breaking change: PdfDocument.Append methods now rename new form fields if the resulting document contains controls with the same full names. Previously, form fields were appended "as is" and that produced inconsistent documents in some cases. You can set PdfMergingOptions.ControlMergingMode property to PdfControlMergingMode.Copy value and use PdfDocument.Append(String, PdfDecryptionHandler, PdfMergingOptions) or PdfDocument.Append(Stream, PdfDecryptionHandler, PdfMergingOptions) methods if you need the old behavior.

  • Breaking change: Now all static methods of ImageCompressionOptions class return instances of types derived from ImageCompressionOptions instead of ImageCompressionOptions itself. Take a look at the new PngImageCompressionOptions, JpegImageCompressionOptions, TiffImageCompressionOptions, and UncompressedRasterOptions classes.

  • The following methods and properties of ImageCompressionOptions class are marked obsolete and will be removed in the next version of the library: TileWidth, TileHeight, BitonalConversionThreshold, JpegQuality, CreateGrayscalePng, CreateJpeg(int), CreateCmykJpeg, CreateCmykJpeg(int), CreateGrayscaleJpeg, CreateGrayscaleJpeg(int), CreateTiledTiff(int, int), CreateCmykTiff, CreateGrayscaleTiff, CreateBitonalTiff, CreateBitonalTiff(int). Please use properties and methods in types derived from ImageCompressionOptions instead.

  • The default value for PdfSaveOptions.UseObjectStreams property changed to true. This means that now the library packs objects into compressed object streams by default. This helps to produce smaller output files but will require Adobe Reader 6 released in 2003 or newer to view produced PDF files. You can set this property to false to get the previous default behaviour.

  • Improved processing of PDF documents encrypted using RC4 or AES-128 algorithms with Unicode passwords.

  • Improved replacing of duplicate objects.

  • Improved resizing of very large images.

  • Improved text size calculation.

  • Improved copying of PDF pages.

  • Improved speed of image extraction from PDF document.

  • Improved the parsing of PDFs with broken or incorrect structures.

  • Improved speed and decreased memory consumption during processing of PDF pages.

  • Removed PdfCanvas.DrawString(byte[]) and PdfTextData.GetCharacterCodes() methods previously marked as obsolete.

  • Fixed bugs in PdfFont.FixEncoding method.

  • Fixed bugs related to drawing of text.

  • Fixed bugs related to getting PDF fonts.

  • Fixed bugs related to measuring text.

  • Fixed bugs related to removing unused font glyphs.

  • Fixed bugs related to renaming PDF controls.

  • Fixed bugs related to removing unused resources.

  • Fixed bugs related to replacing duplicate objects.

  • Fixed bugs related to protecting documents with public keys.

  • Fixed bugs related to unembedding fonts.

HTML to PDF add-on

8.7.13797

  • Updated to use Chromium 100.0.4889.0.

  • Updated to work with the current core library version.

GDI add-on

8.7.13797

  • Updated to work with the current core library version.


Version 8.6

Jun 13th, 2022

Core library

8.6.13474

  • Added the ability to convert PDF text to images. Look at the new PdfTextRasterizer class.

  • Added the ability to specify a custom handler for unmapped character codes. The library uses the handler during text extraction when the PDF file does not define a mapping from a character to its Unicode value. Look at the new PdfTextExtractionOptions.UnmappedCharacterCodeHandler property and Fix garbled text when extracting from PDF documents sample.

  • Added the ability to specify a custom handler for glyphs that cannot be drawn. The library uses the handler during text drawing when a current PDF font does not contain definition for some glyph. Look at the new PdfStringDrawingOptions.MissingGlyphHandler and PdfTextDrawingOptions.MissingGlyphHandler properties.

  • Added the ability to extract and copy painted Form XObjects. Look at the new PdfObjectExtractionOptions.FlattenXObjects property, PdfPaintedXObject class and the updated Copy text, paths and images between PDF pages sample.

  • Added the ability to extract blend mode with page objects. Look at the new PdfTextData.BlendMode, PdfPath.BlendMode, PdfPaintedImage.BlendMode, and PdfPaintedXObject.BlendMode properties and the updated Copy text, paths and images between PDF pages sample.

  • Added new properties to PdfXObject class. Look at the new PdfXObject.Id, PdfXObject.BoundingBox, PdfXObject.Matrix, and PdfXObject.Group properties.

  • Added the ability to read and modify the transparency group for PDF pages. Look at the new PdfPage.Group property.

  • Added new Edit PDF page content and Convert SVG to PDF samples.

  • From now on, PdfPage.GetObjects methods return invisible paths.

  • Breaking change: PdfPage.GetObjects methods no longer return page objects from XObjects by default. They return PdfPaintedXObject objects instead. You can set PdfObjectExtractionOptions.FlattenXObjects property to true if you need the old behavior.

  • PdfCanvas.DrawString(byte[]) method is marked as obsolete. Use PdfCanvas.DrawString(IEnumerable<PdfCharacterCode>) method instead.

  • PdfTextData.GetCharacterCodes method is marked as obsolete. Use PdfTextData.GetCharCodes method instead.

  • Improved the parsing of PDFs with broken or incorrect structures.

  • Improved processing of auto-size text boxes.

  • Improved the library to use less memory and time when importing PNG images.

  • Improved to use less memory when decoding LZW and Flate streams with predictors.

  • Improved to support JPEG images with the undefined EXIF Orientation tag 0.

  • Improved error handling in PdfCanvas.DrawText(String, PdfTextDrawingOptions) method.

  • Improved text height calculations for text in files produced by broken PDF generators.

  • When drawing a text using a Type3 font, the library uses less time, memory, and streams.

  • Reduced the number of streams required to process a document with inline images.

  • Reduced the amount of memory required to deflate a stream.

  • Removed PdfCanvas.DrawString, PdfCanvas.DrawText, PdfPaintedImage.SaveAsPainted methods and PdfSignatureContents.Timestamp property previously marked as obsolete.

  • Now throwing only required exceptions when running in a restricted environment.

  • Now allowing import of a rotated JPEG when the resulting image can contain artifacts on one or more of its sides.

  • Fixed bugs related to drawing of form XObjects.

  • Fixed bugs in PdfFont.RemoveUnusedGlyphs method. Now it properly handles OpenType fonts with 'cmap' subtables in format 12.

  • Fixed bugs related to processing of text boxes when text contains supplementary code points in the range U+FFFF..U+10FFFF.

  • Fixed bugs related to drawing of text containing supplementary code points in the range U+FFFF..U+10FFFF. Such code points are often used to draw emojis.

  • Fixed bugs in PdfCanvas.DrawString methods when PdfStringDrawingOptions provides custom character widths.

  • Fixed bugs related to drawing of text containing invisible characters.

  • Fixed bugs related to drawing of text with created or existing TrueType fonts.

  • Fixed bugs related to copying of pages with layers.

  • Fixed bugs related to drawing of multiline text using PdfCanvas.DrawText(String, PdfTextDrawingOptions) method.

  • Fixed bugs related to extraction of visible text when PdfTextExtractionOptions.SkipInvisibleText property is true.

  • Fixed importing of 32-bit JPEG-in-TIFF images without the ExtraSamples tag.

  • Fixed the processing of checkbox states when there is more than one checkbox in a checkbox field.

  • Fixed the processing of radio button states when a radio button field contains radio buttons with equal export values.

  • Fixed bugs related to parsing of ToUnicode streams.

HTML to PDF add-on

8.6.13474

  • Fix bugs related to incorrect NuGet dependencies.

  • Updated to work with the current core library version.

GDI add-on

8.6.13474

  • Updated to work with the current core library version.


Version 8.5

Mar 3th, 2022

Core library

8.5.13147

  • Added the ability to convert PDF colors to CMYK. Take a look at the new PdfColor.ToCmyk method.

  • Added the ability to read and modify the size of default user space units for PDF pages. Take a look at the new PdfPage.UserUnit property.

  • PdfFont.Unembed method no longer changes fonts when the unembedding will lead to an incorrect PDF document.

  • Added validation of parameters to some public methods.

  • Added the ability to access low-level image streams. Look at the new PdfImage.Stream property.

  • Extended CosStream implementation with new methods and properties. Added new CosStreamFilter enumeration.

  • Added the ability to add CMYK images with alpha channels to documents.

  • Added the ability to specify resolution when saving PDF images as painted. Look at the new PdfPaintedImage.SaveAsPainted(String, PdfPaintedImageSavingOptions) and PdfPaintedImage.SaveAsPainted(Stream, PdfPaintedImageSavingOptions) methods.

  • Added the ability to retrieve extended properties of a timestamp token embedded in a signature. Take a look at the new PdfSignatureContents.GetTimestampToken method and PdfSignatureTimestampToken type.

  • Added the ability to specify base direction when drawing right-to-left and bidirectional text on PdfCanvas. Look at the new PdfCanvas.DrawString(String, PdfStringDrawingOptions), PdfCanvas.DrawString(Double, Double, String, PdfStringDrawingOptions), PdfCanvas.DrawString(PdfPoint, String, PdfStringDrawingOptions), and PdfCanvas.DrawText(String, PdfTextDrawingOptions) methods and PdfStringDrawingOptions.ReadingDirection, PdfTextDrawingOptions.ReadingDirection properties.

  • PdfCanvas.DrawString(string, ICollection<double>), PdfCanvas.DrawString(string, ICollection<float>), PdfCanvas.DrawString(double, double, double, string), PdfCanvas.DrawString(double, double, double, string, ICollection<double>), PdfCanvas.DrawString(float, float, float, string, ICollection<float>), PdfCanvas.DrawString(PdfPoint, double, string), and PdfCanvas.DrawString(PdfPoint, double, string, ICollection<double>) methods are marked as obsolete. Use PdfCanvas.DrawString(String, PdfStringDrawingOptions), PdfCanvas.DrawString(Double, Double, String, PdfStringDrawingOptions), and PdfCanvas.DrawString(PdfPoint, String, PdfStringDrawingOptions) methods instead.

  • PdfCanvas.DrawString(string, PdfRectangle, PdfTextAlign, PdfVerticalAlign), PdfCanvas.DrawText(string, PdfRectangle, PdfTextAlign, PdfVerticalAlign), PdfCanvas.DrawText(string, PdfRectangle, PdfTextAlign, PdfVerticalAlign, double), and PdfCanvas.DrawText(string, PdfRectangle, PdfTextAlign, PdfVerticalAlign, double, bool) methods are marked as obsolete. Use PdfCanvas.DrawText(String, PdfTextDrawingOptions) method instead.

  • PdfPaintedImage.SaveAsPainted(string, PdfExtractedImageFormat) and PdfPaintedImage.SaveAsPainted(Stream, PdfExtractedImageFormat) methods are marked obsolete (and will be removed in the next release of Docotic.Pdf). Use PdfPaintedImage.SaveAsPainted(String, PdfPaintedImageSavingOptions) and PdfPaintedImage.SaveAsPainted(Stream, PdfPaintedImageSavingOptions) methods instead.

  • PdfSignatureContents.Timestamp property is marked as obsolete. Use PdfSignatureContents.GetTimestampToken method instead.

  • Improved the parsing of PDFs with broken or incorrect structures.

  • Improved the verification of ECDSA digital signatures.

  • Removed PdfActionArea.BorderColor, PdfActionArea.BorderDashPattern, PdfComboBox.ShowBorder, PdfControl.BorderColor, PdfListBox.ShowBorder, PdfTextBox.ShowBorder, PdfWidget.HasBorder, PdfSaveOptions.MetadataSyncMode, PdfDocument.SaveOptions properties and PdfMetadataSyncMode enum previously marked as obsolete.

  • From now on, the library only performs automatic synchronization of Info and XMP metadata when marking output as PDF/A compliant.

  • Uncompress and RecompressWithFlate methods are now allowed for mask images. Clarified documentation for other recompressing methods in PdfImage class.

  • Fixed the PdfImage.Compression property for cases when the image data stream uses two or more compression schemes.

  • Fixed bugs related to processing of PDF pages with the custom size of default user space units.

  • Fixed bugs related to extraction of JPEG images with invalid color profiles.

  • Fixed bugs in JPEG importing code. The library can now correctly add JPEG images with EXIF Orientation tags to documents.

  • Fixed bugs in PdfDocument.RemoveUnusedResources method.

  • Fixed bugs related to reading of PdfOutlineItem.Page and PdfOutlineItem.PageIndex properties.

  • Fixed bugs related to saving of linearized documents.

  • Fixed bugs related to text extraction.

  • Fixed bugs related to text extraction from rotated pages.

  • Fixed bugs related to extraction of text drawn with Type3 fonts.

  • Fixed bugs related to calculating text coordinates.

  • Fixed bugs related to the decoding of CCITT (fax) images.

  • Fixed bugs related to parsing of fonts.

HTML to PDF add-on

8.5.13147

  • Updated to work with the current core library version.

GDI add-on

8.5.13147

  • Fixed bugs related to drawing of documents with blend modes to Graphics.

  • Updated to work with the current core library version.



Previous releases