Skip to content

Releases: pypdfium2-team/pypdfium2

4.4.0

28 Mar 04:07
Compare
Choose a tag to compare

Changes (Release 4.4.0)

Summary (pypdfium2)

pypdfium2 commit log

Commits between 4.3.0 and 4.4.0 (latest commit first):

  • 4018c9c [autorelease] update changelog and version file
  • ae7d739 bitmap: slightly improve docs
  • 4bbae67 pageobjects: remove ridiculous if expression
  • b5a97fc setup/pkg_base: add dev note
  • 15c5562 bases: add task
  • 7019e67 add note on musl task
  • 0a158b5 [ws only] reformat packaging_base header
  • 6df39f1 Slightly polish setup.py
  • c519024 document: add task
  • 71a0a63 Add reference bindings (closes #192) (#196)
  • 7bb3549 Transfer ownership of ctypesgen fork (closes #194)
  • e285802 MANIFEST.in: add missing word in comment
PDFium commit log

Commits between 5664 and 5677 (latest commit first):

  • aae3f4452 Simplify pitch calculation in CFX_DIBitmap::CalculatePitchAndSize()
  • a59704451 Add a pixel test for axial shading
  • 7bfe65fa5 Add RemoveTextObjectWithTwoPagesSharingContentStreamAndResources test
  • 22614014f Clamp rectangle values in FindTextlineFlowOrientation
  • ab00c1bc9 Use SkPackARGB32NoCheck() instead of SkPackARGB32()
  • a066864b6 Remove unnecessary Clear(0) from CPDF_RenderStatus
  • 3f80d9332 Make SkBitmap immutable before asImage()
  • 9286281aa [Skia] Support pre-multiplied MultiplyAlpha()
  • 168d065ea Clarify what CPDF_PageObject is
  • ef71e9ae3 Do more checks in a FPDFPage_RemoveObject() test
  • 2dee06f04 Remove a toolchain workaround in FPDF_NewFormObjectFromXObject()
  • b4357750c [Skia] Add methods to force pre-multiplied state
  • d914c5fe1 Avoid overloading CPDF_StreamContentParser::AddImage()
  • 22d7c0733 Do less work in CPDF_PageContentGenerator when there are no streams
  • 15b1203da Use NOTREACHED_NORETURN() in fpdfsdk
  • 99dbaf4f6 Implement NOTREACHED_NORETURN()
  • d75dded3f Sync third_party/base/immediate_crash.h with Chromium copy
  • 8bc8377e8 Add MultiplyAlpha() API to CFX_RenderDevice
  • 867f7e996 Roll Catapult from 6234cc4e018d to c9f4f650cdee (57 revisions)
  • 5e426ab5c Roll Code Coverage from 67720beda1c7 to b0f9daa5b3f5 (3 revisions)
  • 45d010567 Add pixel test for transparency group compositing

4.3.0

21 Mar 04:05
Compare
Choose a tag to compare

Changes (Release 4.3.0)

Summary (pypdfium2)

  • Fixed forms rendering in the multi-page renderer by initializing a formenv in worker jobs if the triggering document has one.
pypdfium2 commit log

Commits between 4.2.0 and 4.3.0 (latest commit first):

PDFium commit log

Commits between 5648 and 5664 (latest commit first):

  • dcb27a396 Trim third_party/base/bits.h
  • afdb7cbdb Sync third_party/base/no_destructor.h with the Chromium copy
  • 54a61350f Remove unused STL includes
  • 15ee367a7 Add a new test for rendering JPX images
  • f5057c75a Roll third_party/instrumented_libraries/ 87467200f..0f536d22d (10 commits)
  • 97f66c181 Unsuppress TimeField.pdf
  • 3f9c5f10e Update the matching entry for formfeild.pdf in suppression list
  • f44118bb1 Unsuppress Mac Skia tests
  • 35bf2da24 Unsuppress format_custom_format.pdf
  • 5b81b29a8 Update documentation for FPDFBitmap_GetBuffer()
  • 2821a5034 [Skia] Remove DebugVerify*IsPreMultiplied() calls
  • de5e3799e [AGG] Add more pixel tests for out-of-bounds coordinate lines
  • 3095afdd6 Add more helpers to deal with variable length fields in cpdf_parser.cpp
  • d3fb7d00e Revert "Enable cppgc plugin for pdfium"
  • 9634d4940 Roll testing/corpus/ 746093a2b..62a96ab80 (1 commit)
  • 9140e3ff7 Enable cppgc plugin for pdfium
  • 02beb5f6b Roll v8/ b1f01d3ab..8a4efd3df (590 commits)
  • 7dc8aeb39 Roll third_party/skia/ f9c77b544..0012a5e84 (163 commits)
  • ca3a9c297 Roll third_party/abseil-cpp/ cd843b25b..28c6deaca (9 commits)
  • 14f88c511 Tidy class TreeNode.
  • ab486ae8d Use CRTP idiom to avoid cppgc plugin warnings in TreeNode.
  • d32298341 Add tests for optional /JPXDecode parameters
  • d611f5db9 Add basic /JPXDecode test cases
  • a4669f7b8 Add OWNERS file for skia subdirectory
  • 7f2d281eb Roll skia and change SK_SUPPORT_GPU -> SK_GANESH

4.2.0

14 Mar 04:06
Compare
Choose a tag to compare

Changes (Release 4.2.0)

Summary (pypdfium2)

  • API-breaking changes around forms code, necessary to fix conceptual issues. Closes {issue}182.
    • may_init_forms parameter replaced with init_forms(), so that a custom form config can be provided.
      This is particularly required for V8 enabled PDFium.
    • formtype attribute replaced with get_formtype().
      Previously, formtype would only be set correctly if may_init_forms=True,
      which caused confusion for documents that have forms but no initialized form env.
  • PdfPage.get_*box() functions now provide an option to disable fallbacks. Closes {issue}187.
  • Some formerly hidden utilities are now exposed in the new namespace pypdfium2.internal.
pypdfium2 commit log

Commits between 4.1.0 and 4.2.0 (latest commit first):

  • ae25d31 [autorelease] update changelog and version file
  • e77c8c2 get_bufreader() skip a tell() call
  • 74849ad pdfinfo: nit
  • f4f93f6 somewhat fix autoflake compliance
  • 47eed2b forms rendering test: improve code style
  • e7b82bb Update tasks
  • 7904984 Make get_metadata_dict() slightly nicer
  • b3ff4f6 pdfinfo: inline helper function into main()
  • dadbe01 Misc doc nits
  • ef13095 PdfPage.get_*box(): Make fallback optional (fixes #187)
  • 86e8cb7 docs/python_api: note new internal API
  • 275ffb3 fix typo
  • 3171a37 PdfObject: remove some isinstance checks
  • d4d98d5 PdfDocument: Restructure forms code
  • 0100cd4 internals: remove docs
  • 212e4dd Somewhat expose internal API
  • 45cec58 setup.py: rm unnecessary return
PDFium commit log

Commits between 5633 and 5648 (latest commit first):

  • caf4ce163 Ensure {{include}} output ends on its own line
  • 6df67a765 Make CFXJS_PerObjectData constructor private.
  • e6113f28d Store global proxy object in CJS_Document
  • 1c6ab7fa5 Fix CPPGC Plugin warnings for PDFium
  • ce0337c08 [Skia] Remove redundant DrawDeviceText() branches
  • c4e67dc29 Remove SkiaState
  • 05293b016 Inline SkiaState::DrawPath()
  • f6f88fc87 Remove clipping operations from SkiaState
  • e78b73593 Roll Fuchsia SDK from version:11.20230202.3.1 to version:11.20230306.1.1
  • 52f6c6098 Enable C++20 for Fuchsia
  • c4a35e9cc Remove "temporary" SkiaState fields
  • 7bac6ae44 Remove SkiaState::m_drawMatrix
  • 68cac2f06 Remove CFX_SkiaDeviceDriver::Flush()
  • c1dee3ae8 Roll build/ f8777b60d..1da99af9b (48 commits)
  • defd00cdc Roll tools/clang/ 59d4a6deb..2a7073518 (6 commits)
  • 7a0dece3a Get code coverage for CPDFSDK_Widget::Synchronize()
  • 5471c3078 Eliminate support for lazy SkiaState flushes
  • fb5325380 Do early return to CPDF_PageContentManager::ExecuteScheduledRemovals()
  • 2a43d47fb Use absl::variant in CPDF_PageContentManager
  • 8a87da2cf More tightly validate XML names in CXFA_FFDocView::GetWidgetByName()
  • 7ea7c90ea Make CPDF_PageContentManager::ExecuteScheduledRemovals() private
  • fbd5dcdc4 Support indirect objects for /Filter arrays
  • 359cbde94 Make CXFA_FFPageWidgetIterator CPPGC_STACK_ALLOCATED
  • 703e42226 Simplify CPDF_StreamContentParser::Handle_SetFont()
  • f8a1e5f5b Roll buildtools/third_party/libc++abi/trunk/ b74d77161..cff1f2def (9 commits)
  • 734822fb1 Roll buildtools and libc++
  • 63e3719f1 Observe CPWL_* object destruction across CPDFSDK_Widget methods
  • 2da56e26f Roll buildtools/third_party/libunwind/trunk/ e95b94b74..7b03cc568 (10 commits)
  • 82473b67e Update resultdb_version to git_revision:ebc74d10fa0d64057daa6f128e89f3672eeeec95
  • eec0143e7 [Skia] Eagerly flush text
  • 52bc7bd48 [Skia] Eagerly flush paths
  • 922ceb17d Move CXFA_EventParam::m_pTarget into CFXJSE_Engine
  • 74b865949 Regenerate Skia expectation for bug_1963.in
  • 168173ce1 Enable xfermodes{2,3}.pdf tests for Skia
  • f5756d30d Roll Skia
  • 7f37dc2d2 Add support for per-test fuzzy matching
  • 0bac03976 Roll tools/memory/ 930bae8b2..b55593f4d (1 commit)
  • 597d4c21e Add fuzzy matching to pdfium_diff
  • 38756a395 Roll third_party/skia/ 215b0bcad..7e2c9f54c (1 commit)

4.1.0

07 Mar 04:05
Compare
Choose a tag to compare

Changes (Release 4.1.0)

Summary (pypdfium2)

pypdfium2 commit log

Commits between 4.0.0 and 4.1.0 (latest commit first):

PDFium commit log

Commits between 5619 and 5633 (latest commit first):

  • f9a00f86c Roll base/allocator/partition_allocator/ bb821f990..22b087c8b (40 commits)
  • 1cdd3207d Roll third_party/skia/ 5935b0dc4..215b0bcad (16 commits)
  • 04e76e408 Update gn_version to git_revision:fe330c0ae1ec29db30b6f830e50771a335e071fb
  • c73d784b6 Roll base/trace_event/common/ 05a225a3e..147f65333 (1 commit)
  • d71a97249 Roll third_party/zlib/ 2d44c51ad..90e67ba3f (2 commits)
  • eba6b007e Roll third_party/freetype/src/ 646cc8ef8..d874ffa96 (36 commits)
  • cffa6ad2b Roll third_party/depot_tools/ 963e01c76..424814829 (60 commits; 23 trivial rolls)
  • 623df7e06 Roll third_party/icu/ 2c51e5cc7..1e49ac26d (8 commits)
  • 140c14e52 [Skia] Flush after drawing soft mask dictionary
  • 44910af4e Improving test equality checks to use _NE and _EQ in fx_bidi_unittest.cpp
  • c1ce4c495 Improve RTL support for numbers with separators
  • f9562f5d1 Remove //:gn_visibility carve out.

4.0.0

28 Feb 04:07
Compare
Choose a tag to compare

Changes (Release 4.0.0)

Summary (pypdfium2)

  • Full support model rewrite. Many existing features changed and new helpers added. Numerous bugs fixed on the way.
    Read the updated documentation to migrate your code.
  • The raw API is now isolated in a separate namespace (pypdfium2.raw).
    Moreover, the raw API bindings do not implicitly encode strings anymore (pypdfium2 is now built with a patched version of ctypesgen by default).
  • Helper objects now automatically resolve to the underlying raw object if used as ctypes function parameter.
  • Overhauled the code base to use pathlib and f-strings.
  • Updated wheel tags.
  • Improved command-line interface, setup code, and documentation.
pypdfium2 commit log

Commits between 4.0.0b2 and 4.0.0 (latest commit first):

  • cd79ac2 [autorelease] update changelog and version file
  • a6d43a7 update_pdfium: fix tar vuln false negatives (e. g. '/dest', '/dest2')
  • 369af47 Fix unused imports in setup_base
  • 00ae082 attempt to fix autorelease
  • 5d4bc43 Revert "test_sourcebuild: combine regular and syslibs build"
  • f16d461 test_sourcebuild: combine regular and syslibs build
  • add0c4c test_sourcebuild: attempt to add syslibs build testing
  • 750805f setup.py: move v8 status creation where it belongs
  • d4f784f update_pdfium: add emplace option
  • 9a1d2e2 update_pdfium/setup: start working on V8 support
  • e393835 Rework PDFium version handling
  • a83b303 gh_pages wf: nit
  • 4fa259a Consistently get pages using index access
  • 28e87bb Re-schedule workflow to Tuesday
  • 2ba08e2 readme: note code contributors graph
  • 97631f3 Fix reuse lint on release workflow
  • 44bf803 autorelease: attempt to fix commit log
  • 9bc2c7c update_pdfium: improve note on path traversal
  • 899cacc build wf: also move install step
  • 5b8b016 build workflow: move test step
  • 9786f0c build workflow: comments
  • 3424202 build_pdfium: windows fix
  • a76651a Port setup code to pathlib (#181)
  • ea5a55e page: add renderer tasks
  • a98cb78 Further f-strings
  • ddcc5f2 Rename pl_setup to pypdfium2_setup
  • 42d0f19 Start porting src/pypdfium2/ to f-strings (where appropriate)
  • c0e3ca0 Rename craft_wheels to craft_packages
  • 48cfca5 build_packages/test: download all packages for simplicity
  • 31fc5ba nits
  • 4cea0ce textpage: add consecutive option
  • ab72fe5 docs: nit
  • 0e6d624 Attempt to fix RTD build
  • 4bdb6db Attempt to fix test_release workflow
  • cc300fa Revert "suspend schedule"
  • 3d49517 autorelease: comment nit
PDFium commit log

Commits between 5579 and 5619 (latest commit first):

  • f3b685793 Make more dictionaries const in fpdf_signature.cpp
  • 97a5abdc3 Use more form field constants in fpdf_signature.cpp
  • aa2ec3591 Roll v8/ 8256e3617..b1f01d3ab (78 commits)
  • 676f921fd Update a pixel test to render the black image more visible.
  • 96aa3bff6 Update yapf style from "chromium" to "yapf"
  • ca7b98bb1 Add a test case fo indirect references in a /Filter array
  • 8efda5c1d Define enable_safe_libcxx in build_overrides/build.gni.
  • bf5900a3c Remove 1_matrix.pdf from the suppression list for Skia
  • b2ac55750 Remove the renderer filter in the suppression list for bug_1973.in
  • 0c3dbb0d2 Roll build/ ae79e7228..f8777b60d (111 commits) and tools/clang/ 44e5e39a9..59d4a6deb (13 commits)
  • 8d2d3732f Drop 11.pdf from the suppression list.
  • 5ff5d508b Speculative change for SEGV above CFXJSE_Context::ExecuteScript()
  • 5be0603fa Set SkPaint stroke width to 0 to guarantee drawing hairline.
  • 0e8db7578 Remove 2_halftone.pdf from the suppression list.
  • f8963b1c1 Drop obsolete Skia suppressions
  • bad2c6c8f Roll Catapult from c4e9d16032d8 to 6234cc4e018d (89 revisions)
  • f3e449bc6 Roll Code Coverage from aa4af3749029 to 67720beda1c7 (5 revisions)
  • 807692bc8 Move PaintStroke() out of CFX_SkiaDeviceDriver class
  • 3ec4d6508 Update the CFX_FillRenderOptions used for flushing paths
  • 0c2edd779 [Skia] Remove 8-bit to 8-bit image path
  • b4e947272 Add pixel test for 8-bit image scaling
  • a29e1163a Reuse expectations in --regenerate_expected
  • c5387b9b1 Fix a potential OOB read in CFX_SkiaDeviceDriver::DrawShading().
  • [b4aca121f](https...
Read more

4.0.0b2

23 Feb 15:16
Compare
Choose a tag to compare
4.0.0b2 Pre-release
Pre-release

Changes (Release 4.0.0b2)

Summary (pypdfium2)

  • Full support model rewrite. Many existing features changed and new helpers added. Numerous bugs fixed on the way.
    Read the updated documentation to migrate your code.
  • The raw API is now isolated in a separate namespace (pypdfium2.raw).
    Moreover, the raw API bindings do not implicitly encode strings anymore (pypdfium2 is now built with a patched version of ctypesgen by default).
  • Helper objects now automatically resolve to the underlying raw object if used as ctypes function parameter.
  • Improved command-line interface.
  • Improved documentation.
pypdfium2 commit log

Commits between 4.0.0b1 and 4.0.0b2 (latest commit first):

  • 58a2149 [autorelease] update changelog and version file
  • cdbcb31 autorelease: add task
  • 22de783 Edit changelog
  • 27f7b1c release control: keep beta
  • 36f6fbd Switch to requirements files
  • 58a5cbf Attempt migration to pyproject.toml
  • 8cb95b0 suspend schedule

4.0.0b1

22 Feb 20:40
Compare
Choose a tag to compare
4.0.0b1 Pre-release
Pre-release

Changes (Release 4.0.0b1)

Warning: PyPI upload failed due to #177

Summary (pypdfium2)

  • Full support model rewrite. Many existing features changed and new helpers added. Numerous bugs fixed on the way.
    Read the updated documentation to migrate your code.
  • The raw API is now isolated in a separate namespace (pypdfium2.raw).
    Moreover, the raw API bindings do not implicitly encode strings anymore (pypdfium2 is now built with a patched version of ctypesgen by default).
  • Helper objects now automatically resolve to the underlying raw object if used as ctypes function parameter.
  • Improved command-line interface.
  • Improved documentation.
pypdfium2 commit log

Commits between 3.21.1 and 4.0.0b1 (latest commit first):

  • d714356 [autorelease] update changelog and version file
  • 2a6e8b7 Major support model update (API breaking v4 branch) (#169)
  • 240772a Readme: Fix crop box parameter order (#175)

3.21.1

20 Feb 10:26
Compare
Choose a tag to compare

Changes (Release 3.21.1)

Summary (pypdfium2)

pypdfium2 commit log

Commits between 3.21.0 and 3.21.1 (latest commit first):

  • 604c582 [autorelease] update changelog and version file
  • 1706c5d workflows: drop python 3.6
  • 8828b21 readme comment: fix order of searcher.get_next() result (#174)

3.21.0

13 Feb 10:25
Compare
Choose a tag to compare

Changes (Release 3.21.0)

Summary (pypdfium2)

pypdfium2 commit log

Commits between 3.20.1 and 3.21.0 (latest commit first):

  • 6514939 [autorelease] update changelog and version file
PDFium commit log

Commits between 5567 and 5579 (latest commit first):

  • 4f5038d08 Roll buildtools, libc++/libc++abi, and abseil-cpp
  • 9de35bc5c Use a stable sort to rank XFA font candidates
  • 064da5387 Roll third_party/zlib/ 18d27fa10..2d44c51ad (5 commits)
  • 907fb2cf1 Roll third_party/freetype/src/ ace97a02a..646cc8ef8 (29 commits)
  • 0d637fa95 Update resultdb_version to git_revision:ac21cf9883af7d1bf6d60e8a7448918eb3b6aa18
  • 2bc0e2b3a Roll third_party/depot_tools/ 5b0c93402..963e01c76 (88 commits; 13 trivial rolls)
  • c9c139aff Roll third_party/libjpeg_turbo/ ed683925e..0b6e6a152 (1 commit)
  • 8961defcf Roll base/allocator/partition_allocator/ 85f9e65df..bb821f990 (10 commits)
  • 2997b101a Roll buildtools/third_party/libunwind/trunk/ 5e22a7fe2..e95b94b74 (2 commits)
  • 70583a9f2 Roll base/trace_event/common/ 521ac34eb..05a225a3e (2 commits)
  • 515651e88 Roll third_party/nasm/ 0873b2bae..7fc833e88 (3 commits)
  • 4235f4ce9 Roll tools/memory/ 5d2efcc93..930bae8b2 (4 commits)
  • be7e92f0f Roll Fuchsia SDK from version:11.20230103.1.1 to version:11.20230202.3.1
  • 33cb4f0c1 Update gn_version to git_revision:84c8431f3e03cc6226c59dd49637c15ea31169a1
  • a5ec3a4a1 Avoid a potentially dangling pointer in CPDF_PageImageCache.
  • bac72b00c Roll build/ 46f1d3482..ae79e7228 (203 commits)
  • 936ec3fe8 Roll tools/clang/ 3b54a131a..44e5e39a9 (24 commits)
  • a30e656e2 Update libtiff from 4.2.0 to 4.5.0.
  • 1c95623be Add a pixel test for masked image filtering

3.20.1

06 Feb 10:26
Compare
Choose a tag to compare

Changes (Release 3.20.1)

Summary (pypdfium2)

pypdfium2 commit log

Commits between 3.20.0 and 3.20.1 (latest commit first):

  • 8cc9c0d [autorelease] update changelog and version file
  • c1d90a9 workflows/trigger: deactivate pre_test step
  • d020641 autorelease: add task
  • e895633 Attempt to fix sourcebuild on Windows (closes #171)