Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
PdfPig.0.1.11.nupkg | 2025-07-26 | 11.6 MB | |
Forest Mountain (0.1.11) source code.tar.gz | 2025-07-26 | 138.5 MB | |
Forest Mountain (0.1.11) source code.zip | 2025-07-26 | 139.3 MB | |
README.md | 2025-07-26 | 10.6 kB | |
Totals: 4 Items | 289.5 MB | 0 |
Welcome to version 0.1.11. The changes in this version have mainly focused on stability. There is a breaking API change.
We have also started to run tests against a larger corpus of documents from Common Crawl allowing us to find bugs and malformed files proactively. This release is screened against 6000 additional files.
- Improvements to content and font parsing detected by fuzzing inputs.
- Improvements and resiliency for finding the
startxref
location when parsing a file.. - Adds build and tests for Mac OS as well as retrieving system fonts on iPad (Mac Catalyst).
- Support clipping when rendering XObjects.
- Prevent malformed files leading to an out-of-memory when decompressing streams.
- Make
IGraphicsStateOperationFactory
andReflectionGraphicsStateOperationFactory
public. - Softmask support for images.
- Performance improvements using
Span
andReadOnlyMemory
where available. - Handle corrupt files where the stream contains comment tokens.
- Improvements to copying from existing files when using
PdfDocumentBuilder
, fixes some bugs with copying fonts and dictionary tokens referenced indirectly. - Handle corrupt files with double
endstream
definitions. - More tolerant parsing for a number of invalid PDFs, including invalid USC2 input, CMAP formats, CFF fonts, missing font subtypes, invalid
xref
table positions, missing/FirstChar
entry for font dictionaries and corrupt ASCII 85 encoded data. - Fix an issue where adding content to an existing PDF using
PdfDocumentBuilder
could result in upside-down or wrongly positioned text due to global transforms in the source PDF. - New option to completely skip annotations when building a document.
- Prevent infinite loops in certain documents [#1096].
- Improved performance when tokenizing numbers, this should provide a minor speed improvement.
- When adding a page from an existing PDF to a
PdfDocumentBuilder
any external link annotations should be preserved.
Breaking changes
The method on PdfDocumentBuilder
:
public PdfPageBuilder AddPage(PdfDocument document, int pageNumber, Func<PdfAction, PdfAction?>? copyLink)
Has been changed to wrap the copyLink
parameter in an options object to support the KeepAnnotations
option:
public PdfPageBuilder AddPage(PdfDocument document, int pageNumber, AddPageOptions options)
You can just set the CopyLinkFunc
property in the options object if you need to access this functionality.
Auto generated change log
- Bump version to 0.1.11-alpha001 by @BobLd in https://github.com/UglyToad/PdfPig/pull/1009
- Improve Jpeg2000Helper to support J2K codec and add test by @BobLd in https://github.com/UglyToad/PdfPig/pull/1010
- Add SetStrokeDetails() and SetFillDetails() to PdfPath and tidy up ContentStreamProcessor by @BobLd in https://github.com/UglyToad/PdfPig/pull/1014
- Implement clipping in ProcessFormXObject() by @BobLd in https://github.com/UglyToad/PdfPig/pull/1015
- Fix [#1017] by @lofcz in https://github.com/UglyToad/PdfPig/pull/1018
- Fix PatternColor Equals() method and fix [#1016] by @BobLd in https://github.com/UglyToad/PdfPig/pull/1019
- Feature/image mask by @BobLd in https://github.com/UglyToad/PdfPig/pull/1012
- Update README.md by @BobLd in https://github.com/UglyToad/PdfPig/pull/1020
- Fix bug where FormXObject bbox needs to be normalised by @BobLd in https://github.com/UglyToad/PdfPig/pull/1021
- Add MacOS test pipeline and fix failing tests by @BobLd in https://github.com/UglyToad/PdfPig/pull/1025
- Update README.md by @BobLd in https://github.com/UglyToad/PdfPig/pull/1026
- Seal PdfSubpath class and IPathCommand implementations, fix Close.GetHashCode() and fix [#1027] by @BobLd in https://github.com/UglyToad/PdfPig/pull/1029
- Fix issue [#1013] by @BobLd in https://github.com/UglyToad/PdfPig/pull/1031
- Add support for MacCatalyst in SystemFontFinder by @BobLd in https://github.com/UglyToad/PdfPig/pull/1033
- Make sure the value of the ImageMask / Im token is check in ColorSpaceDetailsParser by @BobLd in https://github.com/UglyToad/PdfPig/pull/1038
- Add early support for Stencil masking, rename SoftMaskImage property into MaskImage and make sure IsInlineImage is true for InlineImage by @BobLd in https://github.com/UglyToad/PdfPig/pull/1039
- Bugfix and optimize GetStartXrefPosition by @ricflams in https://github.com/UglyToad/PdfPig/pull/1036
- Fix bug introduced in [#1039] by @BobLd in https://github.com/UglyToad/PdfPig/pull/1041
- Try to repair xref offset by looking for all startxref and fix [#1040] by @BobLd in https://github.com/UglyToad/PdfPig/pull/1044
- Add test to ensure [#822] is fixed by @BobLd in https://github.com/UglyToad/PdfPig/pull/1045
- Handle TrueType case in CidFontFactory where the font is CFF by @BobLd in https://github.com/UglyToad/PdfPig/pull/1046
- Issues/1048 by @BobLd in https://github.com/UglyToad/PdfPig/pull/1049
- Check for infinite recursion in ObjectLocationProvider.TryGetOffset() and fix [#1050] by @BobLd in https://github.com/UglyToad/PdfPig/pull/1051
- Improve IFilter memory allocation by @BobLd in https://github.com/UglyToad/PdfPig/pull/1052
- Modernise PngPredictor and refactor LzwFilter and FlateFilter to reduce memory allocation by @BobLd in https://github.com/UglyToad/PdfPig/pull/1053
- Do not throw if the Mask dictionary contains a ColorSpace key by @BobLd in https://github.com/UglyToad/PdfPig/pull/1055
- Make the Diacritics class public for use in external StreamProcessors by @BobLd in https://github.com/UglyToad/PdfPig/pull/1056
- Add extension method to get Memory<byte> from MemoryStream, attempting to do it without allocation and update CMapParser by @BobLd in https://github.com/UglyToad/PdfPig/pull/1057
- Miscellaneous minor changes by @BobLd in https://github.com/UglyToad/PdfPig/pull/1058
- Optimize internal representation of IndirectReference by @BobLd in https://github.com/UglyToad/PdfPig/pull/1059
- Skip creating IndirectReference in CrossReferenceTablePartBuilder when generationNumber is more than 65,535 by @BobLd in https://github.com/UglyToad/PdfPig/pull/1060
- Check ColorSpace token as dictionary and fix issue [#1061] by @BobLd in https://github.com/UglyToad/PdfPig/pull/1063
- Make classes related to page content parsing public by @BobLd in https://github.com/UglyToad/PdfPig/pull/1065
- Prevent RunLengthFilter malicious OOM by @BobLd in https://github.com/UglyToad/PdfPig/pull/1068
- Use ReadOnlyMemory<byte> in ShowText operators and implement MoveToNextLineShowTextWithSpacing parsing by @BobLd in https://github.com/UglyToad/PdfPig/pull/1066
- Fix bug in PngFromPdfImageFactory where softmask is wrongly referenced. by @orrest in https://github.com/UglyToad/PdfPig/pull/1069
- Fix issue 926 by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1072
- writer util did not follow reference links [#1032] by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1073
- fix [#670] by ignoring duplicate endstream definitions by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1075
- skip single letter final blocks by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1076
- fix copying of sub-dictionary when keys collide by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1077
- use correct bounding boxes for standard 14 glyphs [#850] by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1080
- back-calculate first char if last char and widths present by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1081
- fix off-by-one and optimize brute force xref search [#1078] by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1079
- fall back to times-roman as standard 14 font when lenient by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1085
- allow reading to continue if encountering an invalid surrogate pair by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1084
- fix colorspace error when form xobject contains a transparency group by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1088
- support bfrange having incorrect length in a cmap by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1089
- add new action to run integration against common crawl corpus by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1090
- Update run_common_crawl_tests.yml by @BobLd in https://github.com/UglyToad/PdfPig/pull/1091
- Remove decode parameter application from Stencil color space for consistency by @BobLd in https://github.com/UglyToad/PdfPig/pull/1092
- Update hack for 1bpc + DeviceGray by @BobLd in https://github.com/UglyToad/PdfPig/pull/1093
- when writing content to an existing page inverse any global transform [#614] by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1094
- add option to strip annotation by @EnraH in https://github.com/UglyToad/PdfPig/pull/492
- check for cycles during indirect reference resolution by @jan-sutter in https://github.com/UglyToad/PdfPig/pull/1097
- i merged a pr which broke the build, this updates the build to work by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1099
- remove debug asserts causing test failures by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1098
- Track IndirectReference instead of only ObjectNumber when checking for cycles during indirect reference resolution and add test by @BobLd in https://github.com/UglyToad/PdfPig/pull/1101
- move last uncovered operators to switch statement by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1100
- rework numeric tokenizer hot path by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1104
- make link copying more tolerant when adding page by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1103
- handle additional broken pdf files in the common crawl set by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1108
- update readme to avoid people using
page.Text
or asking about editing docs by @EliotJones in https://github.com/UglyToad/PdfPig/pull/1109
New Contributors
Thanks to the following people who made their first contributions to the project in this release:
- @lofcz https://github.com/UglyToad/PdfPig/pull/1018
- @ricflams https://github.com/UglyToad/PdfPig/pull/1036
- @orrest https://github.com/UglyToad/PdfPig/pull/1069
- @EnraH https://github.com/UglyToad/PdfPig/pull/492
- @jan-sutter https://github.com/UglyToad/PdfPig/pull/1097
And thanks to those who reported issues that help us improve the library and fix bugs.
Full Changelog: https://github.com/UglyToad/PdfPig/compare/v0.1.10...v0.1.11