2020 Releases
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.
Previous releases