What's Changed
- Windows on ARM64: release builds, tested on ARM64 hardware (#61) by @echelon in #66
- Windows ARM64: fix the intermittent WARP crash in tests, remove the diagnostic job by @echelon in #71
- Fonts: use craft-fonts as an optional build input; move the Japanese fonts out by @echelon in #75
- View: next page in two-page view moves a whole spread (#70) by @bflatastic in #77
- Export to Word: files open in Word again (#72) by @bflatastic in #78
- ROADMAP: session 14 log by @echelon in #83
- UI: sharper, higher-contrast text, most visible on Windows (#76) by @bflatastic in #84
- macOS: open PDFs from Finder, Open With and the Dock (#73) by @bflatastic in #82
- Add text: clicking elsewhere keeps the text and starts a new box (#74) by @bflatastic in #86
- ROADMAP: session 15 log by @bflatastic in #88
- Prepare a form: Detect form fields in the panel, delete several fields at once (#93, #95) by @bflatastic in #116
- Forms: check box and radio button styles (#94) by @bflatastic in #118
- Docs: automation README, internal craftrules links, docs/releasing.md (#97, #98, #100) by @bflatastic in #120
- Windows: register PrintCraft as a PDF handler, so it can be the default (#107) by @bflatastic in #122
- Rename PrintCraft to PdfCraft by @echelon in #174
- Redact: operators split across a page's content streams are redacted whole by @EthanSuquet in #153
- Security: --root confinement leaks and escapes (#136, #137) by @jcl-bit in #164
- Security: ask before opening links from documents (#90, #91) by @jcl-bit in #104
- M1: validate object-number ranges before reading cross references by @storybored379 in #92
- fix: print: read lpstat untranslated so printers show on non-English macOS by @rutkk in #101
- macOS: declare PDF by UTI so Open With recommends PrintCraft by @ShauryaSwarup in #176
- Issue #96: on Linux, draw on the GPU that drives the monitors by @cmoro-deusto in #105
- Edit text: the graphics state carries over between a page's content streams by @Checkov23 in #150
- Edit text: keep the tokens a content stream shares with its neighbours by @EthanSuquet in #154
- Automation: file-writing tools no longer advertise read-only (#130) by @itsmunzir in #138
- CLI: text exits non-zero when a selected page cannot be read (#131) by @itsmunzir in #139
- Checkboxes with an indirect /AP /N state dictionary are drawn (#180) by @ebastos in #181
- Select all pages with Ctrl+A in Organize Pages by @Frumpy9 in #113
- Render: round page rasters up so the last partial row and column are drawn (#102) by @HEOJUNFO in #114
- M3: Add middle-click autoscroll on Linux by @Frumpy9 in #111
- Persist default workspace mode for newly opened PDFs by @mjshfrvstj-sys in #172
- macOS: File ▸ Open and file pickers no longer crash the app by @AutoHenry in #145
- Fix saved signature replacement and long-name clipping (#163) by @DWAA1660 in #178
- Forms: run show/hide-a-field button actions by @pauliusiv123-rgb in #192
- #143: Windows MSI desktop shortcut checkbox, Start Menu fix and install-complete dialog by @DWAA1660 in #183
- Print: add cut-and-stack page order by @excited-raccoon in #197
- CI: ARM64 smoke test writes its page render inside --root by @echelon in #198
- About: contributor and model credits compiled in (grab bag + table, self-submitted names) by @echelon in #196
- CI: tell actionlint about the macos-release runner label by @echelon in #202
- CLI: exit cleanly when stdout pipe closes by @excited-raccoon in #203
- M14: translation catalogs, same system as PhotoCraft by @leblanc-simon in #106
- i18n: add Brazilian Portuguese (pt-br) UI translation by @RicSchonfelder in #165
- i18n: Czech interface language by @petrleocompel in #68
- M14: complete Japanese dialogs, panels, shortcuts and diagnostics by @sakamoto824 in #141
- M14: expand Traditional Chinese UI, dialogs and language preferences by @sakamoto824 in #140
- i18n: Simplified Chinese UI language option by @shuiyue-cmyk in #112
- Signatures: RFC 3161 timestamps, document timestamps, DSS/VRI and revocation verification (non-network half) by @justinjohn0306 in #69
- Add DPI choices when creating PDFs from images by @DWAA1660 in #206
- #161: keep the Save-changes prompt inside the screen by @Mawfyy in #207
- XFA: lay dynamic forms out from their template and keep their data in step (#60) by @ysrdevs in #121
- M14: complete Simplified Chinese translation catalog by @CQMHV in #209
- Measure: add distance, perimeter and area tools by @excited-raccoon in #208
- fix(i18n): follow Windows display language for Chinese UI by @neavo in #216
- Fix theme controls with shared System, Light and Dark preferences by @CQMHV in #212
- Fix flaky picker tests: join the worker instead of polling by @echelon in #221
- #211: guard the macOS PDF file association with a packaging test by @chiranjeevi-max in #226
- Restore #196, #202, #203 and the macOS release-runner change, reverted by the i18n chain by @echelon in #229
- CLI: edit rejects unknown options instead of writing an unchanged copy (#133) by @wstock in #227
- Split: keep only the resources each part draws (#204) by @itsmunzir in #228
- XFA: run the forms' JavaScript: calculations, validation, rows, visibility (#60) by @ysrdevs in #230
- CLI: text fails when the document cannot be opened (#132) by @wstock in #233
- README: install on Gentoo from the ::snakebyte overlay by @switch87 in #237
- Desktop: write log records to standard error and a rotating log file by @switch87 in #239
- #214: wheel paging, Page display menu, default layout and zoom by @chiranjeevi-max in #241
- Automation: doc_info reports annotation and link rects in displayed-page coordinates (#129) by @wstock in #242
- Automation: doc_protect restrictions need a permissions password — say so, and refuse them without one (#134) by @wstock in #243
- Pin mixed-size Fit page behavior with regression tests by @chiranjeevi-max in #245
- Desktop: no eprintln! on the log and panic paths by @switch87 in #246
- Add Spanish (es) interface catalog by @viator1969 in #251
- Issue #253:
comment_addanchors note and attachment icons at the displayed top-left on rotated pages by @wstock in #254 - Issue #248:
pdfcraft-cli renderwrites the format its--outname says (.png, .jpg, .tif or .pam) by @wstock in #255 - Issue #249:
pdfcraft-cli splitcreates--out-dirwhen it does not exist by @wstock in #256 - Issue #189: each document tab keeps its own scroll position by @wstock in #259
- Issue #185: arrow keys and Page Down / Up move through a scrolling document by @wstock in #261
- macOS: every file picker is non-blocking (Save As, exports, folders, Browse…) by @AutoHenry in #262
- Add my contributor name (viator1969) by @viator1969 in #264
- Issue #188: page steps in two-page view take every spread when several fit on screen by @wstock in #265
- Fix flaky CLI text tests: separate files per protected-PDF test by @echelon in #267
- Web: Insert/Replace edit the document they started on; Print ▸ Save as PDF downloads (#167, #170) by @AutoHenry in #270
- render: guard degenerate annotation appearance transforms by @cyfung1031 in #271
- render: synthesize missing Highlight appearances by @cyfung1031 in #274
- fonts: keep later widths and the embedded font when /Widths or /FirstChar is malformed by @cyfung1031 in #276
- render: map annotation appearance boxes onto /Rect corner to corner by @cyfung1031 in #277
- Release: Flatpak bundles, AppImage zsync updates, README Downloads by @echelon in #275
- README Downloads: where to get it, then builds (Windows first) by @echelon in #279
New Contributors
- @bflatastic made their first contribution in #77
- @EthanSuquet made their first contribution in #153
- @jcl-bit made their first contribution in #164
- @rutkk made their first contribution in #101
- @ShauryaSwarup made their first contribution in #176
- @cmoro-deusto made their first contribution in #105
- @Checkov23 made their first contribution in #150
- @itsmunzir made their first contribution in #138
- @ebastos made their first contribution in #181
- @Frumpy9 made their first contribution in #113
- @HEOJUNFO made their first contribution in #114
- @mjshfrvstj-sys made their first contribution in #172
- @DWAA1660 made their first contribution in #178
- @pauliusiv123-rgb made their first contribution in #192
- @excited-raccoon made their first contribution in #197
- @leblanc-simon made their first contribution in #106
- @RicSchonfelder made their first contribution in #165
- @petrleocompel made their first contribution in #68
- @sakamoto824 made their first contribution in #141
- @shuiyue-cmyk made their first contribution in #112
- @Mawfyy made their first contribution in #207
- @ysrdevs made their first contribution in #121
- @CQMHV made their first contribution in #209
- @neavo made their first contribution in #216
- @chiranjeevi-max made their first contribution in #226
- @switch87 made their first contribution in #237
- @viator1969 made their first contribution in #251
- @cyfung1031 made their first contribution in #271
Full Changelog: v0.2.1...v0.4.0