Releases: UglyToad/PdfPig
Red Wattle Hog
This will be the last release solely by the current maintainer, future releases can come from new co-maintainer(s) and you should audit your dependency upgrades on this basis.
This is the first major release in well over a year so it is not feasible to provide exhaustive release notes.
This release contains many performance improvements and bug-fixes. We also drop support for the following full framework versions:
- .NET 4.5.1
- .NET 4.5.2
- .NET 4.6
- .NET 4.6.1
If you are using full framework the newest version has additional dependencies:
- Microsoft.Bcl.HashCode (>= 1.1.1)
- System.Memory (>= 4.5.5)
The other major change is to use double
instead of decimal
package-wide. This should provide performance benefits and more closely matches the behavior in the official PDF specification. Where you were using decimal
before you will need to switch to double
.
Thanks to all the contributors!
Tamworth
This is a release with various bug-fixes and quality of life improvements but no new major features. It adds many of the supporting classes necessary for PDF rendering.
Breaking Changes
IColor
can now be of typePatternColor
. This implementation will throw an error when callingToRGBValues()
. You might have to check forIColor.ColorSpace != ColorSpace.Pattern
before calling this function- Remove
Details
suffix fromColorSpaceDetails
property names AlternateColorSpaceDetails
renamed toAlternateColorSpace
BaseColorSpaceDetails
renamed toBaseColorSpace
- Seal
IColor
implementations - Use
double
instead ofdecimal
in color spaces and colors - Move
IColorSpaceContext
fromIOperationContext
toCurrentGraphicsState
- Removed
ColorSpace
property fromIPdfImage
. UseColorSpaceDetails.Type
to get the enum value IColorSpaceContext
'sCurrentStrokingColorSpace
andCurrentNonStrokingColorSpace
are now of typeColorSpaceDetails
(not aColorSpace
enum
anymore). UseCurrentStrokingColorSpace.Type
orCurrentNonStrokingColorSpace.Type
to get theenum
value- Logic change to
DefaultWordExtractor
, a logic bug in the existing implementation was fixed, meaning the output of the defaultpage.GetWords()
may change in this version
NET 4.5
Note that this version removes support for .NET 4.5. Consumers should upgrade to .NET 4.5.1 or 4.5.2
Release notes
- Fix support for using the ZapfDingbats Standard 14 font when creating files
- Address issue with extracting CJK text from PDFs
- Fix issue with writing ShowText operations to output files when the text contained parentheses
- Error handling for Type 2 charstring parsing
- New letter properties,
TextRenderingMode
,StrokeColor
andFillColor
- Fix for copying inline images to output files
- Enums for PDF/A-3 compliance
- Fix for library embedding PNGs with invalid information on output
- Resolve
PageSize
enum for landscape orientation documents - Fix to rotation handling. The coordinates used for letters etc. are different now for rotated and/or cropped pages
- Fix to calculated positions of annotations
- Fix to adding JPG files to output documents
- Add height to Type 3 font bounding boxes and default width/height for zero values
CreationDate
andModifiedDate
are now available inDocumentInformationBuilder
- Images can be added to document builder without specifying placement rectangle, this will place the image at 0,0 with full width and height
PdfAction
exposed byAnnotation
class.InReplyTo
property also addedGetFields
extensions method forAcroForm
type- Fix for internal links when using existing documents with annotations with
PdfDocumentBuilder
- Handle name conflicts when using
PdfDocumentBuilder
with one or more existing documents - Swaps internal uses of
Rijndael
andRijndaelManaged
toAes
since these were marked as obsolete
Gloucestershire Old Spots
Changes since 0.1.6:
- Add
page.SetRotation
forPdfPageBuilder
- Add
SkipMissingFonts
to parsing options to ignore content where the font is not present or corrupt. Can result in content being missed during extraction but will enable partial extraction of retrievable content on page for corrupted files. - Multiple bug fixes thanks to @fnatzke
- Fix to page number order bug on extraction thanks to @grinay
- Various shape drawing utilities on
PdfPageBuilder
thanks to @Jonowa - Fix to issue in
GrahamScan
thanks to @BobLd - Remove stray
Debugger.Break
from the encryption handler - Various other bug fixes
Australian Yorkshire
Mainly bug fixes. There are some compatibility changes in the document layout analysis API. See here: https://github.com/UglyToad/PdfPig/wiki/Migration-to-0.1.6
- Fix transparency being applied for PDF/A-1
- Fixes to string handling
- .NET 6.0 support
- Handle null rather than missing encryption data
- Fixes bug with size of JPG files in documents created by PdfPig
- Better handling for unusual Type1 fonts
- Support for invisible/hidden text in document builder
- Fixes stack overflow when parsing page tree for some documents
- Fixes bug in some glyph bounding boxes for Type2 fonts
- Handle non-contiguous xref ranges when building a document
- Better location of version headers for non-compliant documents
Finnish Landrace
Changes since v0.1.4: v0.1.4...v0.1.5
0.1.5 Second Alpha
Some more bug-fixes:
- Fix for object streams in files which require brute force searching.
- Handle
NullToken
presence when creating documents. - Support for PDFs where the filters are defined as indirect references (against specification).
- Support for CMYK when generating PNG images from
IPdfImage
. - Support for indexed ColorSpaces where palette is stored in a string.
- Handle UTF16 strings in encrypted document dictionaries.
- Handle documents with a XMP metadata stream instead of an information dictionary.
- CCITTFaxDecode filter support.
- Tweaks to
DefaultWordExtractor
to try and detect word gap size based on preceding text instead of a global gap threshold.
Note that changes to DefaultWordExtractor
may change the output of calls to Page.GetWords()
in this version.
0.1.5 First Alpha
First alpha version of 0.1.5
- Fix glyph bounding boxes and paths for Type1 fonts using flexpoints.
- Fix stack overflow when merging some documents.
- Support loading existing documents into PdfDocumentBuilder.
- Performance improvements for multithreaded scenarios.
- Fix checked value for AcroForm checkboxes where the checked state is appearance only.
- New
page.GetOptionalContents()
partial optional content retrieval support. - Partial support for colorspace details on
IPdfImage
s. - Multiple bug-fixes for various font related issues.
Breaking changes:
PdfDocumentBuilder
now implementsIDisposable
. This disposes the underlying stream by default but this is aMemoryStream
normally so not any serious consequences if left undisposed.PdfPageBuilder
had theAdvancedEditing
property removed. The API is now available in theContentStream
methods / properties (this was from #250).
British Lop
- Adds support for filling rectangles when using
PdfDocumentBuilder
. TheDrawRectangle
method now takes an optional boolean parameter,fill
. - Fix bug recognising Standard 14 fonts with
Arial MT
naming. - Handle unusual object streams containing
endobj
tokens. - Support broken
Differences
arrays for encodings. - Support very long xref streams by making infinite loop detection more relaxed.
- Fix issue with parsing Type0 fonts that are using indirect references.
- Internal structure changes to support pdf to image work.
Göttingen Minipig
- Fixes a set of bugs for font handling and PDF parsing.
- Improves font detection on Linux systems
- Improves calculation of
PointSize
for letters accounting for rotation and other transformations - Improves document layout analysis results in some cases
- Fixes writing UTF strings when using document builder
- Improvements to PDF graphics path API
0.1.3 First Alpha
First alpha version of 0.1.3