* Support for Python 3.7 is dropped.
* Added Page.form_xobjects, which returns all Form XObjects that
are used in a page
* Fixed an issue with extracting images that were compressed
with multiple compression filters
* Improved Object.repr() to avoid printing the entire contents
of large object trees such as those in PDFs with structural
element trees.
* Fixed error when attempting to convert XMP metadata to
DocumentInfo when the author was omitted.
* Added a method to add items to the document table of contents.
* Adjusted stream preview (with __repr__) so it does not attempt
to decompress very long
* Removed uses of deprecated function datetime.utcnow()
* Adjusted timeline of potentially flaky hypothesis test.
* PyPy 3.10 is now supported on some platforms.
* PyPy 3.8 support will be dropped in the next major release
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pikepdf?expand=0&rev=34
* Removed a debug message during mmap.
* Fixed errors when using AccessMode.mmap
* Fixed noisy log message.
* Made some flakey tests less flakey.
* Fixed deprecated information in setup.cfg. Thanks @mgorny.
* Rebuild binary wheels using zlib 1.2.13. Source build unchanged.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pikepdf?expand=0&rev=30
- Update to version 6.2.0:
* Add new keyword argument Pdf.save
- version 6.1.0: Rebuild wheels with qpdf 11.1.1.
- version 6.0.2:
* Fixed large increase in binary wheel file size for linux wheels.
* Provide macOS and Linux wheels for Python 3.11.
- version 6.0.1:
* Use qpdf 11.1.0
- version 6.0.0:
* pikepdf 6.0.0 released to align with backward incompatible
changes in qpdf 11.
* Remove deprecated APIs
- version 5.6.1:
* Made treatment of CCITT image photometry ignore BlackIs1.
- version 5.6.0:
* Improved support for extracting the contents of inline images.
* Marked some "always should have been private" functions as deprecated
with removal planned for v6, mainly in pikepdf.models.image.
* Fixed all Python documentation style inconsistencies.
- version 5.5.0:
* Fixed undefined behavior on creating NameTree on direct object.
* Fixed sdist with coverage build.
* Added support for specifying QPDF's library build directory, for
compatibility with QPDF's transition to cmake.
* QPDF_* environment variables will modify build paths even when CFLAGS
is defined.
* Fixed case where GIL was not held while discarding a certain exception.
* Now using cibuildwheel 2.9.0.
* Many typo fixes.
- version 5.4.2:
* Fixed Pages.__eq__ not returning NotImplemented when it ought to.
* Fixed possible problems with NameTree and NumberTree.__eq__ operators.
* Changed to SPDX license headers throughout.
- version 5.4.1:
* Fixed ReadTheDocs build, updated versions, fixed a test warning, improved
coverage, modernized type annotations.
- version 5.4.0:
* New feature: pikepdf.Job bindings to QPDFJob API.
* New feature: pikepdf.NumberTree to support manipulation of number trees.
* Many improvements to pikepdf.NameTree including the ability to instantiate
a new name tree.
* Several memory leaks were fixed.
* Rebuilt against pybind11 2.10.0.
- version 5.3.2: Build system requires changed to setuptools-scm 7.0.5.
- version 5.3.1:
* Fixed issue with parsing inline images, causing loss of data after inline
images were encountered in a content stream. :issue:`299
- version 5.3.0:
* Binary wheels for Linux aarch64 are now being rolled automatically.
* Refactor JBIG2 handling to make JBIG2 decoders more testable and pluggable.
* Fixed some typing issues around ObjectHelper.
* Exposed some pikepdf settings that were attached to the private _qpdf
module in a new pikepdf.settings module.
- version 5.2.0:
* Avoid versions of setuptools_scm found to cause build issues. :issue:`359`
* Improved unhelpful error message when attemping to save a file with
invalid encryption settings. :issue:`341`
* Added workaround for XMP metadata blocks that are missing the expected
namespace tag. :issue:`349`
* Minor code improvements, removed some deprecated private methods.
OBS-URL: https://build.opensuse.org/request/show/1010227
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pikepdf?expand=0&rev=28
* Rebuild against QPDF 10.6.3.
* Improvements to Makefile for Apple Silicon wheels.
* Fix issue where Pdf.check() would report a failure if JBIG2 decoder was not
installed and the PDF contains JBIG2 content.
* Some errors and inconsistencies are in the "pdfdoc" encoding provided by pikepdf
have been corrected, in conjunction with fixes in libqpdf.
* libqpdf 10.6.2 is required.
* Previously, looking up the number of a page, given the page, required a linear
search of all pages. We now use a newer QPDF API that allows quicker lookups.
* Fixed gcc linker error with linking to a source-compiled version of qpdf. Thanks @jerkenbilt.
* Fixed dead/obsolete link to old QPDF manual. Thanks @m-holger.
* Rebuild binary wheels against qpdf 10.5.0. Note 10.6.0 has been released but
requires further changes so does not work yet.
* Removed some workarounds to support now-unsupported versions of pybind11.
* Adjusted hypothesis test settings so it does not randomly fail on PyPy.
* Mention vector vs raster images in documentation.
* JBIG2 decoding is now more tightly integrated. In particular, we can now decode
more types of JBIG2 image and they can be decoded using either the object or
image interface.
* Switch to tomli for TOML parsing.
* Refactor image tests to use hypothesis more effectively and use more random issues,
fixing many errors along the way.
* Fixed two instances of a Python object being copied without the GIL held.
May have caused some instability. Thanks @rwgk.
* Further improvements to handling of 2- and 4-bit per component images. Major
refactoring of relevant code and improved testing.
* Mark pybind11 2.9 as supported. Thanks @QuLogic.
* Improved support for images with bits per component set to values between 2 and 7
inclusive.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pikepdf?expand=0&rev=24
- Update to 2.12.2
- Rebuild wheels against libqpdf 10.3.2.
- Enabled building Linux PyPy x86_64 wheels.
- Fixed a minor issue where the inline images would have their
abbreviations expanded when unparsed. While unlikely to be
problematic, inline images usually use abbreviations in their
metadata and should be kept that way.
- Added notes to documentation about loading PDFs through Python
file streams and cases that can lead to poor performance.
- Fix build error for Leap and Tumblweed.
OBS-URL: https://build.opensuse.org/request/show/931979
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pikepdf?expand=0&rev=22
- Update to version 2.12.1
* Fixed documentation typo and updated precommit settings.
* Ongoing improvements to code coverage: now related to image
handling.
- Update to version 2.12.0
* Complete bindings for ``pikepdf.Annotation`` (useful for
interpreting PDF form widgets, comments, etc.)
* Ongoing improvements to code coverage: minor bug fixes,
unreachable code removal, more coverage.
- Update to version 2.11.4
* Fix issue #160, 'Tried to call pure virtual function
"TokenFilter::handle_token"'; this was a Python/C++
reference counting problem.
- Update to version 2.11.3
* Check for versions of jbig2dec that are too old to be
supported (lacking the necessary command line arguments to
extract an image from a PDF).
* Fix setup.py typo: cmd_class changed to cmdclass.
- Update to version 2.11.2
* Added missing documentation for ``Pdf.is_encrypted``.
- Update to version 2.11.1
* Fixed an issue with ``Object.emplace()`` not retaining the
original object's /Parent.
OBS-URL: https://build.opensuse.org/request/show/897750
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pikepdf?expand=0&rev=20
- Update to version 2.11.0
* Add new functions: Pdf.generate_appearance_streams and
Pdf.flatten_annotations, to support common work with PDF forms.
- Update to version 2.10.0
* Fixed a XML External Entity (XXE) processing vulnerability in
PDF XMP metadata parsing (CVE-2021-29421)
* Bind new functions to check, when a PDF is opened, whether
the password used to open the PDF matched the owner password,
user password, or both: Pdf.user_password_matched and
Pdf.owner_password_matched.
- Update to version 2.9.2
* Further expansion of test coverage of several functions, and
minor bug fixes along the way.
* Improve parameter validation for some outline-related functions.
* Fixed overloaded __repr__ functions in _methods.py not being
applied.
- Update to version 2.9.1
* Fixed function signatures for _repr_mimebundle_ functions to
match IPython's spec.
* Fixed some error messages regarding attempts to do strange
things with pikepdf.Name, like pikepdf.Name.Foo = 3.
* Eliminated code to handle an exception that provably does not
occur.
- Update to version 2.9.0
* We now issue a warning when attempting to use pikepdf.open
on a bytes object where it could be either a PDF loaded into
memory or a filename.
* pikepdf.Page.label will now return the "ordinary" page number
if no special rules for pages are defined.
* Many improvements to tests and test coverage.
OBS-URL: https://build.opensuse.org/request/show/884806
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pikepdf?expand=0&rev=18
- Update to version 2.8.0
* Fixed an issue with extracting data from images that had their
DecodeParms structured as a list of dictionaries.
* Fixed an issue where a dangling stream object is created if we
fail to create the requested stream dictionary.
* Calling Dictionary() and Array() on objects which are already
of that type returns a shallow copy rather than throwing an
exception, in keeping with Python semantics.
- Update to version 2.7.0
* Added an option to tell Pdf.save to recompress flate streams,
and a global option to set the flate compression level. This
option can be use to force the recompression of flate streams
if they are not well compressed.
* Fixed "TypeError: only pages can be inserted" when attempting
to an insert an unowned page using QPDF 10.2.0 or later.
- Update to version 2.6.0
* Rebuild wheels against QPDF 10.2.0.
OBS-URL: https://build.opensuse.org/request/show/878572
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pikepdf?expand=0&rev=16
- Update to version 1.11.1
* We now avoid creating an empty XMP metadata entry when files
are saved.
* Updated documentation to describe how to delete the document
information dictionary.
- Update to version 1.11.0
* Prevent creation of dictionaries with invalid names (not
beginning with /).
* Allow pikepdf's build to specify a qpdf source tree, allowing
one to compile pikepdf against an unreleased/modified version
of qpdf.
* Improved behavior of pages.p() and pages.remove() when
invalid parameters were given.
* Fixed compatibility with libqpdf version 10.0.1, and build
official wheels against this version.
* Fixed compatibility with pytest 5.x.
* Fixed the documentation build.
* Fixed an issue with running tests in a non-Unicode locale.
* Fixed a test that randomly failed due to a "deadline error".
* Removed a possibly nonfree test file.
- Update to version 1.10.4
* Rebuild Python wheels with newer version of libqpdf. Fixes
problems with opening certain password-protected files (#87)
OBS-URL: https://build.opensuse.org/request/show/795597
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pikepdf?expand=0&rev=8