v3.2.0 Fixes several decoding issues, extra/missing spaces, overall resilience and performance
·
61 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
馃挅 Sponsorship
If you depend on this package and want to support its maintenance, please consider sponsoring me. I'll continue maintaining and releasing updates regardless, but sponsorships help cover the time it takes to review changes and keep everything accurate.
What's Changed
- Recover byte offsets from raw stream when cross reference source is corrupt by @PrinsFrank in #413
- Accept empty string literal and hex dates by @PrinsFrank in #417
- Gracefully handle exceptions in recovered cross reference sources by @PrinsFrank in #416
- Add sample from #148 with corrupt crossReferenceStream by @PrinsFrank in #418
- Pin test suite timezone to UTC so date tests are host-independent by @splitbrain in #420
- Add PDFDocEncoding by @PrinsFrank in #423
- Always return UTF-8 from text string metadata by @splitbrain in #422
- Normalize simple-font glyph widths to em units by @splitbrain in #421
- Fix greedy space insertion causing multiple consecutive spaces by @PrinsFrank in #424
- Parse padded CIDFont /W arrays without shifting glyph widths by @splitbrain in #425
- Clarify usage of comments in CONTRIBUTING.md by @PrinsFrank in #427
- Fix text rendering matrix order by @splitbrain in #426
- Pre-parse text segments in positioned text elements by @PrinsFrank in #432
- Reuse text string value decode logic resulting in recovered characters by @PrinsFrank in #433
- Reuse binary decoding in text segments to fix extra spaces by @PrinsFrank in #434
- Simplify text segment decoding by reusing binaryString decoding logic recovering more missing characters by @PrinsFrank in #435
- Bump zizmorcore/zizmor-action from 0.5.6 to 0.5.7 by @dependabot[bot] in #437
- Bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot[bot] in #438
- Detect word breaks between text segments using consistent 0.25EM threshold by @PrinsFrank in #440
- Detect enclosed subscript when grouping text elements that are on the same line by @PrinsFrank in #441
- Fix extra space insertions when previous or next text segment already ends/starts with space by @PrinsFrank in #442
- Detect word breaks between elements against a reconstructed advance width by @splitbrain in #430
- The font dictionary should only be retrieved from the resource dictionary, not the page dictionary, fixes #439 by @PrinsFrank in #443
- Document/Enforce Pull Request size limits by @PrinsFrank in #445
- Update PHPStan by @PrinsFrank in #446
- Speed up samples tests by not comparing individual pixels but image content directly by @PrinsFrank in #449
- Cache toUnicodeCMap characters (avg 4% speed improvement) by @PrinsFrank in #450
- Add docker image for contributors by @PrinsFrank in #451
- Set up the PHP-SPX UI for out of the box profiling by @PrinsFrank in #454
- Add simple profile script that parses a pdf file without using PHPUnit and Composer by @PrinsFrank in #455
- Speed up usage of differences by caching any encountered codepoints (20%-25% speed improvements on samples with differences arrays) by @PrinsFrank in #456
- Add missing require for composer-less local profiling by @PrinsFrank in #458
- Allow partial reference value arrays to be parsed as arrays in dictionary by @PrinsFrank in #460
- Support nested arrays by @PrinsFrank in #462
- Simplify CIDFontWidth parsing and allow multiple consecutive closing brackets by @PrinsFrank in #463
- Fix toUnicodeCMap parsing with multiple targetValues by @PrinsFrank in #464
- Add test for multiline code space range by @PrinsFrank in #465
- Optimize content stream parsing by @PrinsFrank in #466
- Don't return new TransformationMatrix when multiplying with identity matrix reducing memory footprint by @PrinsFrank in #467
- Optimize fallback object position parsing by @PrinsFrank in #468
- Fix efficiency of object position recovery when cross reference source is invalid by @PrinsFrank in #469
- Centralize font size fallback by @PrinsFrank in #470
New Contributors
- @splitbrain made their first contribution in #420
Full Changelog: v3.1.0...v3.2.0