Releases: py-pdf/pypdf
Releases · py-pdf/pypdf
Version 6.1.3, 2025-10-22
What's new
Security (SEC)
- Allow limiting size of LZWDecode streams (#3502) by @stefan6419846
- Avoid infinite loop when reading broken DCT-based inline images (#3501) by @stefan6419846
Bug Fixes (BUG)
Robustness (ROB)
- Fail with explicit exception when image mode is an empty array (#3500) by @stefan6419846
Version 6.1.2, 2025-10-19
What's new
Bug Fixes (BUG)
Robustness (ROB)
- Deal with wrong size for incremental PDF files (#3495) by @stefan6419846
- Improve handling for malformed cross-reference tables (#3483) by @stefan6419846
Developer Experience (DEV)
- Use released Python 3.14 by @stefan6419846
- Use Mapping instead of dict in type hint of update_page_form_field_values (#3490) by @stefan6419846
Version 6.1.1, 2025-09-28
What's new
Bug Fixes (BUG)
- Insert new embedded files in a sorted manner (#3477) by @stefan6419846
- Fix name tree handling for embedded files with Kids-based inputs (#3475) by @stefan6419846
- Make embedding files not break PDF/A-3 compliance (#3472) by @stefan6419846
Documentation (DOC)
- Document AFRelationship handling for PDF/A and provide constants (#3478) by @stefan6419846
Version 6.1.0, 2025-09-21
What's new
New Features (ENH)
- Enhance XMP metadata handling with creation and setter methods (#3410) by @Arya-A-Nair
- Add all font metrics for base 14 Type 1 PDF fonts (#3363) by @PJBrs
- Allow deleting embedded files (#3461) by @stefan6419846
- Add support for Python in FIPS mode for document identifier (#3438) by @xnox
Bug Fixes (BUG)
- Fix handling of UTF-16 encoded destination titles (#3463) by @stefan6419846
- Guard empty input to prevent IndexError (#3448) by @KyleJung0828
Developer Experience (DEV)
- Fix type hint for XMP metadata setter to add bytes type (#3464) by @stefan6419846
Version 6.0.0, 2025-08-11
What's new
Security (SEC)
- Limit decompressed size for FlateDecode filter (#3430) by @stefan6419846
Deprecations (DEP)
- Drop Python 3.8 support (#3412) by @stefan6419846
New Features (ENH)
Robustness (ROB)
- Skip Go-To actions without a destination (#3420) by @badGarnet
Developer Experience (DEV)
- Update code style related libraries (#3414) by @stefan6419846
- Update mypy to 1.17.0 (#3413) by @stefan6419846
- Stop testing on Python 3.8 and start testing on Python 3.14 (#3411) by @stefan6419846
Maintenance (MAINT)
- Cleanup deprecations (#3424) by @stefan6419846
Version 5.9.0, 2025-07-27
What's new
New Features (ENH)
- Automatically preserve links in added pages (#3298) by @larsga
- Allow writing/updating all properties of an embedded file (#3374) by @Arya-A-Nair
Bug Fixes (BUG)
- Fix XMP handling dropping indirect references (#3392) by @stefan6419846
Robustness (ROB)
- Deal with DecodeParms being empty list (#3388) by @stefan6419846
Documentation (DOC)
- Document how to read and modify XMP metadata (#3383) by @stefan6419846
Version 5.8.0, 2025-07-13
What's new
New Features (ENH)
Bug Fixes (BUG)
Robustness (ROB)
- Resolve some image extraction edge cases (#3371) by @stefan6419846
- Ignore faulty trailing newline during RLE decoding (#3355) by @henningkoertelgmg
- Gracefully handle odd-length strings in parse_bfchar (#3348) by @stefan6419846
Developer Experience (DEV)
- Modernize license specifiers (#3338) by @stefan6419846
Maintenance (MAINT)
- Reduce max-complexity of tool.ruff.lint.mccabe (#3365) by @j-t-1
- Refactor text extraction code by @MartinThoma
Version 5.7.0, 2025-06-29
What's new
Performance Improvements (PI)
- Performance optimization for LZW decoding (#3329) by @henningkoertelgmg
Robustness (ROB)
- Flate decoding for streams with faulty tail bytes (#3332) by @henningkoertelgmg
- dc_creator could be a Bag as well (#3333) by @stefan6419846
- Handle tree being NullObject when retrieving named destinations (#3331) by @stefan6419846
Maintenance (MAINT)
- Move inline-image mappings to constants (#3328) by @stefan6419846
Version 5.6.1, 2025-06-22
What's new
New Features (ENH)
- Add PDF/A XMP metadata support (#3314) by @Arya-A-Nair
Robustness (ROB)
- Deal with annotations not being lists on merge (#3321) by @stefan6419846
- Handle NullObject for cmap encoding Differences entry (#3317) by @stefan6419846
Developer Experience (DEV)
- Update ruff to 0.12.0 (#3316) by @stefan6419846
Version 5.6.0, 2025-06-01
What's new
New Features (ENH)
- Add basic support for JBIG2 by using jbig2dec (#3163) by @stefan6419846
Bug Fixes (BUG)
- Fix crashes by removing unnecessary line (#3293) by @larsga
- Add delimiters to NameObject.renumber_table (#3286) by @ztravis
Robustness (ROB)
- Handle DecodeParms being a NullObject (#3285) by @stefan6419846
Code Style (STY)
- Update to mypy 1.16.0 (#3300) by @stefan6419846