Includes #4325 #1952 #4180 #2529 #4320 #4805, preserving their original histories. Keep paragraph alignment and hard/soft wrap metadata together; retain CCITT/downsampling/RGB ownership guards with bounded JBIG2 export and exact-copy symbol encoding. Combined interaction regressions added. Validation pending.
5.7 KiB
PdfCraft integration candidate, 2026-10-30
Base: 1d1cbc4ec9
Validation: pending combined GitHub CI. No fresh manual GUI pass has been performed. All included source heads are preserved as merge parents, retaining original authorship. No upstream PR was merged. Conflicts were resolved after the user requested inclusion despite merge conflicts.
Included
- #4304: M11: PDF Optimizer stores black-and-white images as CCITT Group 4 (optimize.mono-compression) (
1b7164cab1) - #4335: M11: black-and-white pictures stay one bit: Create PDF, the optimizer, and CCITT image export (
210ba20fe6) - #4384: M11: Monochrome Images ▸ Downsample: black-and-white images above 450 ppi are averaged down to 300, Group 4 scans included (
1ad951e25b) - #4404: M11: the optimizer stores Group 3 fax as Group 4, and packs black-and-white RGB and two-entry indexed images to one bit (
2d0a7b2241) - #4179: fix(ui): Ctrl+Z in an open paragraph undoes the document, not stale text (
296b930098) - #5300: fix(ui): a press on the page belongs to what its one hit test finds, until the button is up (
11bc8c5652) - #4719: fix(comments): delete or edit one reply from its own menu, keeping the thread (
adeb9c1cf2) - #4541: M5: a moved comment is drawn where it goes while it is dragged (
f0cd96e90b) - #2815: fix(edit): show backgrounds on pages that paint their own white backdrop (
9aaac56417) - #4620: feat(edit): Esc in an open paragraph selects its box, so Delete removes it (
64fba7d177) - #3789: Alt+Left / Alt+Right go back and forward through the view history (#3632) (
08f3991ab9) - #3779: Window title: mark unsaved changes, and set it on the web (#3640) (
3850c9f52e) - #2960: Keep lines with footnote references in paragraph reading order (#2929) (
2a7e5bda26) - #5208: M10: export a PDF to Markdown (#1595) (
20d396d180) - #4596: fix(organize,print): join /Contents array pieces with a space (#3502) (
d58d121170) - #3636: Content streams: step over a malformed token instead of ending the page (
43337c7fd5) - #4494: M2: page_render and render_preview report the render warnings next to the PNG (#4340) (
5ada1249e9) - #4013: fix(engine): generate Protect keys and salts with getrandom (#4000) (
c580b55055) - #5134: fix(ui): keep the All tools rows clear of the scrollbar (#5133) (
0c5119791d) - #2133: Fix Pages sidebar select-all keyboard shortcut (#2052) (
7227eb68ab) - #2635: Allow typed font sizes and Fill & Sign text colours (
4b319bb383)
Added after conflict resolution
- #4320: M11: lossless JBIG2 for black-and-white images (optimize.mono-compression) (
e18d1bfed3). - #4805: M11: JBIG2 symbol coding for black-and-white images (optimize.mono-compression) (
c7f39a4d9a). - #4325: M6: calculation checks: formulas reading missing fields, scripts building names, shown on the Calculation order page (
ebad7f849d). - #4180: M7: align the selected lines of a paragraph or text box on their own (
5a86f35210). - #1952: feat(forms): edit checkbox and radio export values (#231) (
e19f964690). - #2529: M7: keep a blank line as a paragraph break (#2517) (
55a933800b).
Additional previously reviewed parity fixes: #2133, #2635 and #1952. Excluded held PRs #4648, #2877 and #3762 were not included. Source reviews and individual hosted CI do not establish combined-build safety; the integration gate must pass.
Integration-specific changes: preserve hard/soft wrap metadata together with per-row alignment; share CCITT/JBIG2 export paths with the 32 MiB globals cap retained; keep downsampling and RGB ownership guards with JBIG2 encoding; retain all translation keys and both sets of regression tests.