5.1.0
Changes (Release 5.1.0)
Summary (pypdfium2)
- Added new helpers
textpage.get_textobj(),PdfTextObjandPdfFont.
These helpers currently just cover font info and object-level text extraction, but may be extended in the future.
For objects of typeFPDF_PAGEOBJ_TEXT,PdfPage.get_objects()and thePdfObjectconstructor will now returnPdfTextObjrather than justPdfObjectinstances.
Thanks to Mykola Skrynnyk for the initial proposal. - Rolled back
musllinuxtag from1_2to1_1. This was erroneously incremented shortly before5.0.0, but the pdfium-binaries do still run onmusllinux_1_1, probably because they're statically linked. build_toolchained: Significant portability enhancements. Should now work on Linux CPUs that are unhandled/incomplete upstream (e.g.aarch64). Also, building on Windows arm64 natively may now work. Added ability to cross-compileppc64lefromx86_64. Removed--use-syslibsoption (usebuild_nativeinstead).build_native: Fixed Python 3.6/3.7 compatibility. Added--no-libclang-rtoption.- Setup: Fixed inclusion of
BUILD_LICENSES/sub-directories. Added extra licenses for DLLs pulled in by auditwheel. This concerns sourcebuilds/cibuildwheel only. The wheels on PyPI are unaffected. - Added android targets to
sbuild.yamlworkflow. This does not impact releases, which still use the pdfium-binaries. - Added i686 (manylinux and musllinux) to cibuildwheel workflow.
Use an arm64 host (GHAubuntu-24.04-arm) for armv7l builds, which is much faster than with anx86_64host. Added armv7l manylinux target (previously just musllinux).
This does not impact releases yet, but it may in the future. - CI: Migrated from
macos-13tomacos-15-intel.
pypdfium2 commit log
Commits between 5.0.0 and 5.1.0 (latest commit first):
46afdae[autorelease main] update 5.1.0d6d1ea5build_toolchained: set config var regardless of sync1054d12Update RTD build host0c2eef0build_toolchained: update comment346bba0build_toolchained: use PORTABLE_MODE on musllinux and androidedad47emain.yaml: add ref to upload-artifact bug24aea3cUpdate changelog again6bc04d3main.yaml: propagate py_version28639a5Add a comment5c93651Readme: update sourcebuild section49404d2Fix reuse lint7cb5bc0Fix bootstrap_ninja()b4f2bc6Extract non-split-related work from PR #394d839e2eDefer _get_local_bin()6be8ad0build_toolchained: in PORTABLE_MODE, use bootstrap_buildtools()6fb248bMake bootstrap_gn target dir portable1613353Add proper ninja/gn bootstrapping functions6ec44e2Avoid setup-just action where we can0cd1f73Update changelog again5fc9bb0sbuild_one: fix artifact naming if target_os is set3998f82pdfium-binaries/android: bump to android_23a645230sbuild.yaml: attempt adding android buildsc739b22build_toolchained: continuea86826fbuild_toolchained: limit PORTABLE_MODE to Linux for now2c8bd51sbuild_one: dropjustdependency1bcc02aUpdate changelogf60248cchores: fixjust check, rename some patchesd9f66f0build_toolchained: more portability fixes9d32e5fsbuild.yaml: test build_toolchained.py on native arm64 runnerf54247cFurther build_toolchained improvements45c8084build_toolchained.py: add ppc64le cross-comp ability2d8e00bImprove portability of build_toolchained.py3eb8204Remove build_toolchained --syslibs from CI4c1038bbuild_native: add option to disable libclang_rt dependencyc345690Readme: somewhat update licenses sectionf5bff20Add extra licenses for cibuildwheel builds (#390)5159278Clarify and update changelog7e849deMerge pull request #392 from pypdfium2-team/font_helpers17c8412Parametrize font helpers test51d0adfAdd draft font helpersa816bfeUpdate REUSE.toml, fix typo in pyproject.tomlda3b4f5Make GN patch less invasive2e3d2baFactor out cloning utility for cibw gn bootstrap4b4e344cibw i686: try to improve GN bootstrapfef5d24Move patches9e0e53fcibw: fix manylinux_i686 target5bd0d31Drop emulated musllinux_armv7l target0e74a4ccibw: retry armv7l with newer imagee5f2212Comment out manylinux_armv7l againbcad837Yet another attempt at cibw/manylinux_armv7l0c7bde8cibw/pyproject.toml nits4b6f2dccibw/pyproject.toml: deduplicate symlinks (#389)8d6f6adcibw: give up on manylinux_armv7l for now767e3a5cibw: have another go at armv7lf06a078cibw: try to fix manylinux_{i686,armv7l}9d56c4aRearrange cibw.yaml2dbde32autorelease.py: style nite7ca107utils/get_gcc_prefix: handle armv8l as well2ea9a28cibw: say ubuntu-latest instead of ubuntu-24.046f1245aautorelease: make sure GH release notes stay below limits1060a86Readme: make python setup deps slightly clearer55a94e8Changelog73c1a96Update macos-13 to macos-15-intel (fixes #388)d3beb16Fix up previous commit009f11aRe-suspend trigger_main schedule after all605d765Minor cleanups94b02c1setup/build_native: python < 3.8 compat1f457d4build(deps): bump actions/upload-artifact from 4 to 577f0697build(deps): bump actions/download-artifact from 5 to 68aa2658Fix inclusion of BUILD_LICENSES sub-directoriesc74b8f4Further changelog tweak1c50fb3Changelog markdown rendering fixa3f2a9fmain.yaml/test: install auditwheel only on linuxe26769aPost-release chores, reinstall schedule
PDFium commit log
Commits between 7483 and 7529 (latest commit first):
c2e74df91Add FPDF_SYSFONTINFO version 2 for per-request font matching99e950ba7Remove CFX_Face::GetRec() callers from CFGAS_FontMgr917797d28Add CFX_Face::HasFaceRec()a3cc2e30eRemove FXFT_Get_Glyph_* macrosce3baac0fRename "pFace" instances to "face"2a230b8e7Fix decoding of JBIG2 files with more than four referred-to segments2de46c603Remove redundant jbig2 test files503710a3dRename "pStreamAcc" instances to "stream_acc"57baefcd1Make Skia corpus tests pass for Mac ARM64 with macOS 155f97789beMake Skia pixel tests pass for Mac ARM64 with macOS 15bcd8f224dTeach suppressor.py about mac_arm and mac_x861861f24aeConsolidate CFX_Face::Open() callers1a275e49aUpdate test corpus revisiondbfa29d16Fix progressive unoptimized decoding of JBIG2 generic region with template 14d3dc1bd8Update some Skia test expectations for Mac ARM64 with macOS 1561b3d09ebFix various pylint warnings in testing/tools/*.pyf2de80031Auto-format testing/tools/*.pya4c4d0ad1Fix reading refine-one symbols in huffman symbol dictionaries using refinementdebf26bdcLimit bitmap memory usage in PDFiumFuzzerHelper450290147Roll third_party/freetype/src/ 36f917cc6..fc9cc5038 (17 commits)c81783ef3Roll third_party/freetype/src/ e969f5298..36f917cc6 (3 commits)1d67846a1Roll Catapult from 67287c8f0b4e to 5b6dfc90097d (37 revisions)2bf421a5eRoll Depot Tools from 3008b57e5d18 to 6f83fce8652b (79 revisions)89bb8a241Roll Code Coverage from ef6864ec11f1 to 9e4876df273e (1 revision)06df1a295Remove reference to third_party/instrumented_librariesd7fbd2ca8Update test expectations for Mac ARM64 with macOS 15f49889b9cRegenerate jbig2-mmr.in0f689aaa2Rename "iIndex" instances to "index"728097ea0Delete CFX_Face::ClearExternalStream()bebe89931Remove dead code in xfa/fwl/cfwl_notedriver.cpp2fbebb9efEnable new unsafe-buffers diagnostic for PDFium.0ca246f33Fix another CHECK() failure in CXFA_Document::DataMerge_CopyContainer()0b9f84147Rename "pContext" instances to "context" or "ctx"8ace2bfc6Change pdfium_fuzzer_helper.cc to render with different bitmap formatsd83e98eb1Use more spans in pdfium_fuzzer_helper.cc53d474a8eRoll third_party/freetype/src/ d3668e00d..e969f5298 (6 commits)5e6ead329[rust png] Makelibpng-dependent targets conditional.dffbe9888Consolidate the determination code for font stylesb3b74b1d1Roll build, third_party/rust, clang, and tools/rustee0ba679aRoll abseil-cpp, buildtools, and libc++bb669b8f8Roll goldctl from 93cc2a21b9bd to 53e5aa34af53a61bc59beRoll Zlib from 85f05b0835f9 to 5aa617372945 (1 revision)7f43fd792[rust png] Support using Rust-based PNG codec in XFA implementation.4d80852fdUpdate siso_version to 0915813c4c786240e12d03aa3018c02bab4df14fdb3687db7Revert "Add debugging data to help diagnose a hang in fread()"e3387c5b1Roll third_party/libc++abi/src/ f7f5a32b3..a02fa0058 (4 commits)95856f11bRoll third_party/libunwind/src/ 6dc2f29f9..14b9dee79 (10 commits)4cb6688caRoll third_party/llvm-libc/src/ dba78cfc7..006672b9b (52 commits)a9cd189c6Update reclient_version to re_client_version:0.185.0.db415f21-gomaipab7975e18Roll third_party/icu/ 1b2e3e8a4..f27805b7d (6 commits)526366fa4Roll v8/ 7f18b53ba..dd1717b9d (325 commits)3f8887d82Update gn_version to 07d3c6f4dc290fae5ca6152ebcb37d6815c411abad29c35beRoll third_party/googletest/src/ 9df216cc9..b2b9072ec (10 commits)797447805Roll third_party/fp16/src/ b3720617f..3d2de1816 (5 commits)639553c55Roll third_party/skia/ 479696a3c..a1ff58d34 (61 commits; 6 trivial rolls)ded86ac62Roll third_party/clang-format/script/ 1549a8dba..c2725e062 (20 commits)5bbc12ff9Roll base/allocator/partition_allocator/ e3fec0a68..2f4069fb8 (9 commits)d4c2dadd7[rust png] Un-nestProgressiveDecoderIface::Context.b73d6847a[rust png] Stop usingSkXPS...PngHelpers.hfrom PDFium.b4b1cfd4dMove all FT_Load_Glyph calls into CFX_Face for consistency89afb3340Remove dead code: CPWL_Edit::CutText()048a19460Remove dead code: CPWL_Edit::{Copy,Paste}Text()216862ba4[rust png] IntroduceProgressiveDecoder::PngReadMoreData.8f655643d[rust png] Deduplicate cleanup/return logic inPngContinueDecode.b4937e9b4[rust png] Devirtualize all methods ofProgressiveDecoderIface.3077cfa5aRoll libpng from dc2507e99733 to 84d676669166 (4 revisions)f5c376f93[rust png] Stop using hungarian (dwFoo/pFoo) inReadMoreData.553e531de[rust png] Add explicitPngFinishedDecodingcallback.c890df130[rust png] Remove unusedProgressiveDecoder::src_pass_number_field.e136238ea[rust png] Use new overload ofSkXPS::MakeDocument.d2c50ffd0Roll third_party/skia/ 89a8bc508..479696a3c (104 commits; 20 trivial rolls)96a2bccf5[rust png] Removepassparameter fromPngReadHeader.47dbb620e[rust png] AddProgressiveDecoderTestunit test for a simple PNG.dfba959aeUpdate bug IDs in TODOs in testing/SUPPRESSIONS and related test filesfa63d2782Refactor CPDFSDK_PageView::OnKeyDown()4aa3b725cUpgrade libtiff from 4.7.0 to 4.7.1b2e300abaRemove deprecated Skia SkPath API usage82125ddb8[rust png] Decode PNGs directly intodevice_bitmap_.a8cba1c40[rust png]span-ify return type ofPngAskScanlineBuf.c6dac1b25[rust png] Removecomponents_countand "bpc" fromPngReadHeader.4c93f9f22[rust png] Remove obsoletePngDecoderDelegate::DecodedColorType.f0f8a099a[rust png] Checkdevice_bitmap's format is alwayskBgrafor PNGs.9ab3b8992[rust png] Removescanline_size_field.dd778d389[rust png] Deduplicate code into a newGetScanlineSizemethod.923d946a1Add crbug.com links to TODOs in testing/SUPPRESSIONS