History of Docotic.Pdf releases in 2020
Version 7.4
November 25th, 2020
Added ability to specify threshold level as the option for PdfImage.ResizeTo(Int32, Int32, PdfImageCompression) method when the compression is PdfImageCompression.Group4Fax.
Added ability to recompress images with stencil and soft masks. Previously all recompressing methods did nothing for images with masks.
Added ability to resize and scale images with color key, stencil and soft masks. Previously all scaling and resizing methods did nothing for images with masks.
Added ability to compress scaled and resized images using JPEG 2000 compression scheme.
Added ability to identify fonts. Take a look at the new PdfFont.Id property.
Added signature timestamping ability. To add a timestamp to a signature, just provide a Timestamp Authority URL and, optionally, username and password using signing options. Take a look at the new PdfSignatureContents.Timestamp property and the new PdfSignatureTimestampOptions class.
Added ability to retrieve an embedded timestamp from a signature. And ability to verify the timestamp. Take a look at the new PdfSignatureContents.Timestamp property and the new PdfSignatureContents.VerifyTimestamp method.
Added new Sign PDF document and embed a timestamp in C# and VB.NET sample code.
Added new Print PDF in Eto.Forms sample.
Added "Print PDF in WPF" application to the Print PDF sample.
Now it is possible to retrieve the URL of the Timestamp Authority (TSA) specified in a signature certificate. Take a look at the new PdfSignatureCertificate.GetTimestampAuthorityUrl method.
Improved compression ratio when resizing images with Indexed or Gray color spaces. Images with Gray color spaces can be encoded with Flate or Jpeg. Images with Indexed color spaces can be encoded with Flate only.
Updated Compress PDF document in .NET and Optimize PDF images in C# and VB.NET sample codes to use latest recommended image optimization approaches.
Updated Read PDF signature properties in C# and VB.NET and Verify PDF signature in C# and VB.NET sample codes with new timestamping-related features.
Improved speed of text extraction.
Improved support for transparent (RGBA) TIFF images.
Improved parsing of PDFs with broken or incorrect structure.
Improved parsing of documents with object streams.
Improved parsing of incorrect destination arrays.
Improved Lab to RGB color conversion.
Fixed drawing of PDF documents with separation color spaces.
Fixed extraction of images with Lab color spaces.
Fixed bugs related to processing of Indexed colors and color spaces.
Fixed bugs related to calculation of text height.
Fixed bugs related to text extraction.
Fixed bugs related to copying of pages.
Fixed bugs related to drawing of text with existing fonts.
Fixed bugs related to loading of fonts.
Fixed bugs related to reading of actions.
Fixed bugs related to replacing of duplicate objects.
Fixed bugs related to the rendering of text drawn using CJK fonts.
Fixed bugs related to removing of unused resources.
Fixed bugs related to extraction of recompressed images.
Fixed bugs related to creation of cross-reference streams.
Following methods, properties and operators (previously marked as obsolete) are removed: PdfRgbColor.PdfRgbColor(Color), PdfRgbColor.PdfRgbColor(PdfColorProfile, Color), PdfPoint.PdfPoint(PointF), PdfPoint.PointF(PdfPoint), PdfPoint.+(PdfPoint, Size), PdfPoint.+(PdfPoint, SizeF), PdfPoint.-(PdfPoint, Size), PdfPoint.-(PdfPoint, SizeF), PdfPoint.Add(PdfPoint, Size), PdfPoint.Add(PdfPoint, SizeF), PdfPoint.Subtract(PdfPoint, Size), PdfPoint.Subtract(PdfPoint, SizeF), PdfRectangle.PdfRectangle(PointF, SizeF), PdfRectangle.PdfRectangle(Rectangle), PdfRectangle.PdfRectangle(RectangleF), PdfSize.PdfSize(SizeF), PdfSize.PdfSize(PointF), PdfSize.PointF(PdfSize)
Version 7.3
September 13th, 2020
Breaking change: the library no longer allows comparing PdfColor and System.Drawing.Color objects. In other words, the PdfColor.Equals method always returns false when given a System.Drawing.Color as the parameter.
PdfRgbColor(System.Drawing.Color) and PdfRgbColor(PdfColorProfile, System.Drawing.Color) constructors are marked obsolete (and will be removed in the next release of Docotic.Pdf). Please use another constructor overloads instead.
PdfPoint(System.Drawing.PointF) constructor, PointF(PdfPoint), plus, and minus operators, some Add and Subtract method overloads are marked obsolete (and will be removed in the next release of Docotic.Pdf). Please use the recommended alternatives instead.
PdfRectangle(System.Drawing.PointF, System.Drawing.SizeF) constructor, PdfRectangle(System.Drawing.Rectangle) operator, and PdfRectangle(System.Drawing.RectangleF) are marked obsolete (and will be removed in the next release of Docotic.Pdf). Please use the recommended alternatives instead.
PdfSize(System.Drawing.SizeF) constructor, PdfSize(System.Drawing.PointF) constructor, and PointF(PdfSize) operator are marked obsolete (and will be removed in the next release of Docotic.Pdf). Please use the recommended alternatives instead.
Following methods (previously marked as obsolete) are removed: PdfDocument.Clear, PdfDocument.ReplaceDuplicateFonts, PdfColor.ToColor, PdfCmykColor.ToColor, PdfGrayColor.ToColor, PdfIndexedColor.ToColor, PdfLabColor.ToColor, PdfRgbColor.ToColor, PdfSpotColor.ToColor.
The library no longer uses System.Drawing and GDI+ when resizing images.
The library no longer uses System.Drawing and GDI+ when processing certain soft mask images.
The library no longer uses System.Drawing and GDI+ to detect invisible text.
The library no longer internally throws FreeTypeException during font loading.
Clarified stream requirements in some methods and constructors of PdfDocument and XmpMetadata classes.
Improved parsing of PDFs with broken or incorrect structure.
Improved speed of DirectoryFontLoader.Load(String, Boolean, Boolean) method.
Fixed bugs related to handling of disposable objects.
Fixed bugs related to replacing of duplicate objects.
Fixed bugs related to removing of unused resources.
Fixed bugs related to removing of XObjects.
Fixed bugs related to parsing of inline images.
Fixed bugs related to the usage of Docotic.Pdf from Blazor and from HoloLens projects.
Fixed bugs related to text extraction.
Fixed bugs related to drawing of text with existing fonts.
Fixed bugs related to calculation of text width.
Fixed bugs related to the rendering of text drawn with fonts that use WinAnsi encoding.
Fixed bugs related to the rendering of text drawn using CJK fonts.
Fixed bugs related to the PDF to image rendering from parallel threads.
Version 7.2
July 16th, 2020
Added new PdfSpotColor.Components and PdfSpotColor.ColorSpace properties. These properties can be used to query colorant values and the underlying color space.
Added new PdfSeparationColorSpace.Name and PdfDeviceNColorSpace.Names properties. These properties can be used to query color space colorant names.
Added new Logging with log4net and Logging with NLog sample codes.
The library can now automatically detect and attach to a configured logger. NLog, Log4Net, Serilog, and Loupe loggers are supported.
PdfColor.ToColor method and its implementations are marked obsolete (and will be removed in the next release of Docotic.Pdf). Please use PdfColor.ToRgb method instead.
The library no longer uses System.Drawing and GDI+ when saving (extracting) images "as painted". This improves stability of all ASP.NET applications that perform this kind of image extraction.
The library now saves images "as painted" with 72 dpi. Previously, such images were saved with 96 dpi, which led to unnecessary scaling.
Improved parsing of PDFs with broken or incorrect structure.
Improved parsing of XMP metadata.
Fixed issues related to importing of two samples per pixel TIFF images.
Fixed bugs related to processing of widgets with zero width or height.
Fixed bugs related to processing of images with invalid masks.
Version 7.1
June 28th, 2020
Added ability to save whole PDF files or individual PDF pages as grayscale images. Take a look at the new ImageCompressionOptions.CreateGrayscaleJpeg, ImageCompressionOptions.CreateGrayscalePng and ImageCompressionOptions.CreateGrayscaleTiff methods.
Added new PdfDocument.ReplaceDuplicateObjects methods that replace duplicate fonts, non-inline images, color spaces, patterns and shading objects with the first duplicate. These methods are useful when you are trying to reduce output file size. New methods give good results for documents, which were incrementally updated or created by a merge of several documents with the same objects.
Added new PdfTextData.CharacterSpacing, PdfTextData.HorizontalScaling, and PdfTextData.WordSpacing properties.
Added new signature appearance options. Now it is possible to add an image to a signature. You can also hide all the text inside a signature by using one of IncludeXXX properties or by calling the new HideAllText method. It is possible to specify the alignment of the text inside a signature. Please take a look at the new PdfSignatureAppearanceOptions.TextAlignment, PdfSignatureAppearanceOptions.Image, PdfSignatureAppearanceOptions.IncludeReason, PdfSignatureAppearanceOptions.IncludeLocation, PdfSignatureAppearanceOptions.IncludeDate properties, PdfSignatureAppearanceOptions.HideAllText method and the new PdfSignatureTextAlignment enumeration.
Breaking change: the library no longer implicitly removes glyphs with zero width in PdfCanvas.DrawString and PdfCanvas.DrawText(String, PdfTextDrawingOptions) methods.
Breaking change: Background and border color of a control can now be
null
if there is no color specified. This change affects the following properties: PdfControl.BackgroundColor, PdfControl.BorderColor. Previously the properties mentioned above returned a default color when there was no color specified.PdfDocument.ReplaceDuplicateFonts method is marked obsolete (and will be removed in the next release of Docotic.Pdf). Please use one of the PdfDocument.ReplaceDuplicateObjects methods instead.
The library no longer extracts text from hidden layers when PdfTextExtractionOptions.SkipInvisibleText property set to
true
.The library no longer uses System.Drawing and GDI+ when saving (extracting) images. This improves stability of all ASP.NET applications that perform image extraction.
When no background color specified, signature fields get drawn with a transparent background instead of a white one.
Improved speed of PDF drawing.
Improved importing of grayscale OJpeg-in-Tiff images.
Improved parsing of PDFs with extremely long integer numbers.
Improved parsing of PDFs with broken or incorrect structure.
Improved parsing of XMP metadata.
Fixed drawing of PDF documents with hidden layers.
Fixed drawing of images with inverted soft masks.
Fixed issues related to importing of multi-strip TIFF images.
Fixed issues related to parsing of files with multiple incremental updates.
Fixed bugs related to measuring text width for existing fonts.
Fixed bugs in PdfFont.ContainsGlyphsForText(String) method.
Fixed bugs related to extraction of CMYK JPEG images with color masks.
Fixed bugs related to drawing of text with existing fonts.
Version 7.0
May 10th, 2020
BitMiracle.Docotic.Pdf.dll is now signed with SHA-256 digital signature.
Added ability to digitally sign PDF documents. To sign a document please use one of the PdfDocument.SignAndSave methods. You can create signatures of different types, in different formats, using different digest algorithms. For complete set of properties please take a look at the new PdfSigningOptions type.
Added ability to verify digital signatures in signature fields. You can verify if digest (hash) is valid, check if a signature contains embedded OCSP or CRL revocation data, or if the signing certificate is revoked. You can also access signing and issuer certificate properties. All this is available via PdfSignature.Contents property.
Added ability to create signature fields. Take a look at the new PdfPage.AddSignatureField methods.
Added PdfSignatureField.Signature property. You can use it to access properties of the signature used to sign the signature field.
Added PdfSignatureField.Lock property. You can use it to read properties of the signature field lock. Or you can create a new lock.
Added DigitalSignatureException class. Instances of this exception class can be thrown by digital signatures related methods.
Added new Digital signatures samples.
Signature fields can now be flattened like other controls.
Added ability to check if an image has associated mask image or mask color. See the new PdfImage.HasMask property.
Added ability to remove all page-piece dictionaries from documents. Take a look at PdfDocument.RemovePieceInfo method. Removing page-piece dictionaries can significantly reduce file size if document will then be saved with PdfSaveOptions.RemoveUnusedObjects property set to
true
.Breaking change: Color related properties of widgets and controls can now return
null
if there is no color specified. This change affects the following properties: PdfActionArea.BorderColor, PdfButton.FontColor, PdfCaretAnnotation.Color, PdfEllipseAnnotation.Color, PdfFileAttachmentAnnotation.Color, PdfFreeTextAnnotation.BackgroundColor, PdfInkAnnotation.Color, PdfLineAnnotation.Color, PdfPolygonAnnotation.Color, PdfPolylineAnnotation.Color, PdfRectangleAnnotation.Color, PdfSoundAnnotation.Color, PdfStampAnnotation.Color, PdfTextAnnotation.Color, PdfTextMarkupAnnotation.Color. Previously the properties mentioned above returned RGB(0, 0, 0) when there was no color specified.Changed PdfImage.RecompressWithFlate, PdfImage.RecompressWithGroup3Fax, PdfImage.RecompressWithGroup4Fax, PdfImage.RecompressWithJpeg, PdfImage.RecompressWithJpeg2000, PdfImage.Uncompress methods to do nothing for mask images or images with a mask.
The library no longer uses System.Drawing.Bitmap when drawing images. This improves stability of all ASP.NET applications that perform PDF to image conversion.
PdfPage.Save now produces smaller TIFF images.
Improved the way the library allocates memory when drawing PDF documents. The library now uses smaller byte arrays. The change helps preventing segmentation of Large Object Heap.
Improved tiled drawing of PDF documents.
Improved drawing of documents when the output size is smaller than the actual page size. This is the case when FitHeight, FitSize, FitWidth, or Zoom mode is used. The drawing process in such cases is now faster and requires less memory.
PdfDocument.Clear method is marked obsolete and will be removed in the next release of the library.
Improved extraction of tabular text.
Improved PdfWidget.Owner property. Now it can return non-null values for existing documents too.
Improved the font unembedding part in the CompressAllTechniques sample code.
Improved parsing of PDFs with broken or incorrect structure.
Fixed bugs related to text extraction.
Fixed bugs related to drawing of text with existing fonts.
Fixed bugs related to drawing of text on canvas in a rectangle with negative width or height.
Fixed bugs related to drawing of documents with invalid color profiles.
Fixed bugs related to drawing of documents with axial shadings.
Fixed bugs related to parsing of Type0 fonts.
Fixed bugs related to flattening of controls.
Fixed bugs related to forms creation and filling (including FDF import).
Fixed bugs related to processing of annotations rectangles.
Fixed bugs related to extraction of JPEG images with color mask.
Fixed bugs related to drawing and extraction of CMYK JPEG images.
Version 6.0
March 15th, 2020
Implemented new PDF rendering engine that does not depend on System.Drawing.Graphics class. That greatly improved PDF to image conversion on Linux, Mac OS and in ASP.NET context.
Added PdfPage.Resolution property.
Added PdfTextExtractionOptions.Rectangle property. The property is useful when you want to extract text from only a part of a page.
Improved Print PDF and Compress PDF document in .NET samples.
LicenseManager class is now thread-safe. You can use it from multiple threads at the same time. It is still recommended to add all license data at the start of your application (see remarks to LicenseManager.AddLicenseData(String) method.
PdfPage.Save method now produces 24bpp images instead of 32bpp when background is opaque. In most cases that leads to smaller output files.
Following properties (previously marked as obsolete) are removed: PdfDrawOptions.Format, PdfDrawOptions.TileWidth, PdfDrawOptions.TileHeight.
Improved appending of documents with layers. From now on, the library keeps layers when merging / appending documents.
Improved rendering of barcodes and lines.
Improved rendering of text drawn with substituted fonts.
Improved loading of non-embedded fonts.
Improved handling of TIFF images.
Improved handling of disposable objects.
Improved drawing of PDFs with broken or incorrect structure.
PdfCanvas.Resolution property is marked obsolete (and will be removed in the next release of Docotic.Pdf). Please use PdfPage.Resolution property instead.
Methods of PdfCanvas, PdfDocumentView, PdfPage that acccept parameters of types from System.Drawing namespace are marked obsolete. Those methods will be removed in the next release of Docotic.Pdf. For each of the now obsolete methods there is at least one overload. Please use the overloads instead of the obsolete methods.
Fixed bugs related to parsing of annotations.
Fixed bugs related to parsing of radio buttons.
Fixed bugs related to processing of shadings.
Fixed bugs related to processing of nested XObjects.
Fixed bugs related to rendering of soft masks.
Fixed bugs related to drawing of text with existing fonts.
Fixed bugs related to text extraction.
Fixed bugs related to extraction of images.
Fixed bugs related to replacement of images.
Fixed bugs related to writing of XMP metadata.
Fixed bugs related to opening of documents.