github storytold/pdfcraft v0.9.0
PdfCraft v0.9.0

4 hours ago

What's Changed

  • Make a missing external oracle loud instead of a silent pass by @tanish2k09 in #2266
  • One way to write a synthetic PDF fixture by @tanish2k09 in #2275
  • Measure rendering against Poppler, and turn the pixel test on by @tanish2k09 in #2286
  • Say what the render-oracle score does and does not mean by @tanish2k09 in #2290
  • Pin that every JBIG2 conformance fixture decodes to the same picture by @tanish2k09 in #2300
  • The fonts README still called the standard-14 widths an estimate by @tanish2k09 in #2304
  • The text oracle scored us zero for honouring a no-copy document by @tanish2k09 in #2312
  • Fix oracle Clippy failure for four-byte pixel chunks by @sanyamsingh001 in #2342
  • Preserve precision when writing page transforms by @sanyamsingh001 in #946
  • Printing: a layer that is off in the document stays off on the sheets by @Byxis in #1135
  • Clear image leftovers by @not-a-feature in #1151
  • Tests: use 300 DPI synthetic scan for OCR searchability by @earlvanze in #1197
  • M8: Bound and reuse repeated redaction overlays by @LabDennis in #1426
  • M4: keep the last saved revision across undo (#1310, #1311, #1312) by @bartalos86 in #1435
  • M5: add comment and reply submission shortcuts by @Luchsen in #1457
  • M12: mark leaf tags as artifacts by @earlvanze in #1475
  • COS: index cross-reference entries on demand by @cyfung1031 in #1505
  • feat(ui): drop files on the Pages panel to insert pages by @tylerstoltz in #1547
  • Clamp extracted Indexed image samples to the declared palette range by @FredApps in #1581
  • Keep page labels and focused navigation consistent across reloads by @sanyamsingh001 in #1667
  • Keep the full final spread reachable with unequal page heights by @FredApps in #1672
  • Text selection: dragging to the top or bottom edge of the view scrolls it by @marcoarnulfo in #1675
  • Edit text & images: a dragged image's pixels follow its frame instead of waiting for the release by @marcoarnulfo in #1677
  • Text selection: a drag after a double- or triple-click extends by whole words or lines by @marcoarnulfo in #1689
  • fix(render, ui): form-heavy documents draw and fill fast (spot-colour images, widget placement, Fields panel) by @Piohrun in #1691
  • i18n(pt-br): fix 6 Brazilian Portuguese strings by @s17sh70x2jfl031ag in #1694
  • Sinhala and Tamil interface: draw with an installed font (part of #1688) by @manchitmr in #1706
  • M5: Fill & Sign text reads across on rotated pages by @alexanderalber in #1710
  • M14: add Vietnamese interface and date localization by @duydev in #1712
  • Edit text: the four-way arrow wherever a drag moves, and a sharp page while editing by @ch0kemeister in #1717
  • macOS: the standard About panel shows the website and Discord links (#1287) by @ch0kemeister in #1718
  • M6: detect form fields on scanned pages (#1721) by @alexanderalber in #1722
  • M2: Make literal text search linear and tolerate missing layout metadata by @LabDennis in #1725
  • fix(ui): clicking a theme card in Preferences picks that theme by @umesh429 in #1727
  • Issue #1676: put fallback faces on the interface baseline by @mtlcl410 in #1743
  • M7: fold repeated image transforms into one cm instead of nesting q by @komo1iddin in #1746
  • i18n: Taiwan vocabulary and the missing entries in zh-hant by @mtlcl410 in #1750
  • M7: keep the source operators of rows a text edit doesn't reach by @komo1iddin in #1754
  • M7: draw new characters with the source font's own embedded program by @komo1iddin in #1760
  • Automation: tell a tool name or an unknown id from a command without a tool in command_run by @marcoarnulfo in #1765
  • M7: reuse a page's font resource and program when embedding again by @komo1iddin in #1779
  • M2: Add word and character counts with optional content exclusions by @LabDennis in #1780
  • M7: read the page once per keystroke when measuring a text draft by @komo1iddin in #1781
  • M11: merge image fragments, and the Standard and Mobile optimizer presets (closes #1783) by @magdale76 in #1784
  • M7: rewrap Chinese and Japanese text between characters by @komo1iddin in #1827
  • M7: justify paragraphs whose font shows the space with another code by @komo1iddin in #1832
  • Edit image: give each flip button the icon of its own mirror axis by @marcoarnulfo in #1841
  • M10: A6 paper in the print dialog and doc_print by @marcoarnulfo in #1849
  • M7: Add / Update / Remove menu on Header and footer, Watermark, Background by @Byxis in #1857
  • fix(a11y): mark_decorative no longer panics on an unpaired ParentTree key (#1809) by @mtlcl410 in #1862
  • M2: a /Rotate that isn't a quarter turn counts as 0, as the page is drawn by @pauliusiv123-rgb in #1863
  • fix(cos): a nonpositive crypt-filter /Length no longer overflows (#1816) by @mtlcl410 in #1864
  • fix(audit): find rectangle covers closed with h or painted with b/b* (#1817) by @mtlcl410 in #1865
  • fix(sign): an unreadable extendedKeyUsage allows no purpose (#1807) by @mtlcl410 in #1866
  • audit: harden finding classes with golden tests and docs by @ejbarraza in #1892
  • fix(audit): an applied redaction at the end of a line is not a faux redaction by @CouchRiv in #1898
  • fix(a11y): bookmarks from structure keep the words of glyph-by-glyph headings by @CouchRiv in #1899
  • fix(audit): report faux-redaction rectangles in top-left page points by @CouchRiv in #1900
  • fix: render CCITT Group 4 images that declare /Rows 0 by @ehinderer in #1903
  • fix(automation): a missing path under --root says where it was looked for (#1890) by @mtlcl410 in #1907
  • M3: touchpad swipes glide on after the fingers lift on Wayland (#531) by @mlkonrad in #1909
  • fix(redact): the tail of a longer number is not a phone number (#1884) by @mtlcl410 in #1911
  • fix(forms): new text and date fields take Acrobat's Auto font size (#1888) by @mtlcl410 in #1912
  • feat(ui): a middle click closes a tab (#1853) by @mtlcl410 in #1920
  • fix(organize): bound how deep an import follows the object graph (#1800) by @mtlcl410 in #1921
  • M2: Bound page-tree traversal memory for repeated children (#1798) by @LabDennis in #1926
  • Compare files: side by side, scrolled and zoomed together by @regendorf-ux in #1927
  • M11: measure every use of an image drawn through deeply nested forms (#1811) by @mlkonrad in #1933
  • fix(edit): flattening keeps a widget it cannot draw and an undrawn reply (#1794) by @mtlcl410 in #1934
  • fix(control): a deadline and a cap for connections that have not authenticated (#1806) by @mtlcl410 in #1939
  • Issue #305: an update keeps the File Explorer menu choices, and the image menu gets a switch by @jcl-bit in #1941
  • fix(sign): a signed revision of a password-protected file opens with the document's key (#1808) by @mtlcl410 in #1945
  • feat(organize): Insert pages from file brings the file's bookmarks by @CouchRiv in #1947
  • XFA: flatten a form into a plain PDF, or convert it to a static form by @ysrdevs in #1948
  • feat(cli): page lists take ranges, and a missing page is named as typed (#1923) by @mtlcl410 in #1950
  • M9: signature labels follow the interface language, and one the font can't draw is refused, never written as ? by @kekeandzeyu in #1951
  • Keep native open replies queued while dialogs and pickers are active by @sanyamsingh001 in #1953
  • M2: bound ASCII85 decoding by the stream's output limit (#1796) by @Ridzzz0Alam in #1954
  • M4: write each page label dictionary as an indirect object by @marcoarnulfo in #1959
  • M6: auto-size text fields shrink and wrap typed text on screen, as on the page by @dsskaggs-ai in #1964
  • Print: print as image (Advanced), with grayscale pictures by @regendorf-ux in #1965
  • fix(automation): no top-level oneOf in form_set_props input schema (#1961) by @andreero0 in #1967
  • CLI: run --script --report prints one JSON document for the run (#1891) by @vangel76 in #1974
  • Issue #1910: Organize opens on the current page by @alehel in #1975
  • Signature pad: Undo button and Ctrl/Cmd+Z take back the last stroke (#1963) by @vangel76 in #1978
  • View: show page size when hovering the bottom-left of the page view (#1855) by @vangel76 in #1979
  • Export to Word: show pictures on positioned pages, bound the pictures (#1936) by @vangel76 in #1981
  • M2: keep the raw crop minimum in physical points by @sanyamsingh001 in #1982
  • Comments: font size for text boxes in Comment Properties (#1908) by @vangel76 in #1984
  • Viewer: a press on a page makes it the current page (#1956) by @vangel76 in #1985
  • View: Single Page wheel turns to the next page at the edge of a zoomed-in page (#1924) by @vangel76 in #1986
  • Draw: a released pen stroke stays on screen until the page raster has it (#1858) by @vangel76 in #1987
  • Forms: simplified field notation written as real JavaScript, not AFMakeNumber(0) by @regendorf-ux in #1995
  • Edit: crop an existing page image with its handles by @regendorf-ux in #2002
  • Redaction Tool Properties: the mark's appearance, and Make properties default by @regendorf-ux in #2008
  • fix(ui): wrap long filenames and metadata in Document Properties (#2011) by @Osaym in #2012
  • M2: clip intersection starts its row walk at the first shared row by @cyfung1031 in #2026
  • fix(render): a Multiply highlight inside a transparency group keeps the text (#1968) by @mtlcl410 in #2027
  • M7: list Edit text & images first under Modify page by @lava in #2028
  • Linux/BSD: open files from later launches in the running PdfCraft (#1726) by @tydude001 in #2037
  • fix(forms): read each JavaScript name tree node once by @Dev-next-gen in #2040
  • Wait for remote-link errors before asserting in UI tests by @sanyamsingh001 in #2041
  • M2: heavy-sheet generator and page timing harness (item 8 of #623) by @cyfung1031 in #2042
  • perf(xfa): make som index lookup linear by @osaidahmed in #2047
  • i18n(es): translate the new print and Add text strings, Type on the signature pad, tú register by @txiki739 in #2049
  • fix(ui): preserve Ctrl+Alt+Q during digital ID creation by @sampaiodias in #2055
  • chore(contributors): credit mtlcl410 by display name by @mtlcl410 in #2065
  • M4: read page transitions and display times (/Trans, /Dur) into DocInfo by @mtlcl410 in #2074
  • M4: set page transitions and display times (/Trans, /Dur) through the engine and the tools by @mtlcl410 in #2083
  • M12: the geometry of page transitions (ISO 32000-2 table 164) by @mtlcl410 in #2084
  • M3: a document that asks to open in Full Screen mode asks first (/PageMode /FullScreen) by @mtlcl410 in #2086
  • chore(packaging): give test-msi.ps1 a UTF-8 BOM so Windows PowerShell 5.1 parses it by @mtlcl410 in #2092
  • fix(organize): keep page labels on their pages when pages are deleted by @marcoarnulfo in #2093
  • fix(ui): check boxes over text should show the pointing hand, not the I-beam by @alehel in #2099
  • M3: preserve coordinate clicks across slow frames by @sanyamsingh001 in #2100
  • fix(a11y): mark_decorative finds MCIDs in named property lists (#1813) by @jonathanwxh-cell in #2106
  • fix(ui): header, footer and watermark dialogs refuse undrawable text … by @jonathanwxh-cell in #2107
  • M7: Hebrew in Add text (#128) by @michaelsh1 in #2109
  • fix(sign): a signed page's resources are page content whatever keys a later revision writes (#1787) by @mtlcl410 in #2115
  • fix: Space Audit lines up its columns and counts form fonts as fonts by @alehel in #2118
  • test(ui): wait for the save to write the file instead of a fixed frame count by @lhymes in #2122
  • fix(render): a soft mask fades a gradient fill again by @marcoarnulfo in #2132
  • OCR: Downsample to shrinks a page box given in pixels by @marcoarnulfo in #2135
  • Fix multi-select choice index ordering by @sanyamsingh001 in #2144
  • M3: Improve Back/Forward page navigation (fixes #2080) by @srt8hellcat2-ui in #2151
  • fix(fonts): keep a subset Type 0 font for glyphs /W leaves to /DW by @marcoarnulfo in #2153
  • M1: every PDF leaves the engine checked, and every writer uses one staging-file writer (#2166) by @mtlcl410 in #2182
  • M9: harden .p12 digital IDs (#1847) by @Ridzzz0Alam in #2201
  • packaging: RPM requires library sonames, so openSUSE can install it by @tydude001 in #2205
  • fix(edit): keep the runs of untouched text between two edits by @marcoarnulfo in #2209
  • Forms: fields that share a name take the same value by @marcoarnulfo in #2217
  • M3: Save asks before writing over a changed file, one tab per file, locked autosaves (#2166) by @mtlcl410 in #2218
  • fix(redact): size image clearing with checked arithmetic (#2177) by @atahabilder1 in #2221
  • fix(forms): open a text field on press so dragging over it selects text by @marcoarnulfo in #2226
  • fix(test): reload tests pin the English interface like every other harness by @abc2cb in #2239
  • M7: the Edit tab turns on Edit text & images, as in Acrobat by @abc2cb in #2241
  • fix(edit): keep Edit text & images boxes drawn while page input waits by @abc2cb in #2242
  • fix(organize): draw a rotated page large and centred in its grid cell by @abc2cb in #2243
  • M4: lay out Organize pages as Acrobat's panel by @abc2cb in #2248
  • feat(ui): Shift on a corner handle keeps proportions for comments, stamps, and form fields by @adrianiglesiass in #2252
  • Refuse header/footer Bates numbers that would overflow u64 by @Silvertree2010 in #2253
  • fix(preflight): read device colour from content operators, not whitespace-split bytes by @guillehr2 in #2260
  • docs: catalog hashes in ATTRIBUTION.toml are updated by hand by @vangel76 in #2271
  • Tabs: show the drop line in front of the first tab (#2225) by @vangel76 in #2278
  • M0: the every-command test never opens a real file dialog by @abszar in #2281
  • Export All Images: zero-pad the page number so files sort in page order (#2208) by @snipeTR in #2295
  • edit: commit the open paragraph when a click switches text boxes by @midasmatterhorn in #2302
  • Read WinAnsi 0xAD as a hyphen, so search and redaction can see it by @tanish2k09 in #2305
  • fix(engine): give a host with no clock or time zone a real one (Session::with_wall_clock) by @bonfim6P in #2317
  • feat(automation): Automation::render_pixels returns a page as RGBA, without the PNG round trip by @bonfim6P in #2318
  • M14: Italian catalog: complete the missing entries by @kcobelli-pixel in #2320
  • fix(ui): stop dropping cached tiles when zooming away and back (#2196) by @Hathor875 in #2323
  • test(ui): wait for the text layer by state, not for a fixed second (#1277) by @mtlcl410 in #2327
  • fix(print): the Print dialog waits for the printer list instead of offering Save as PDF (#160) by @mtlcl410 in #2332
  • M3: arrow keys follow the Scroll speed preference (#985) by @mtlcl410 in #2333
  • Requeue render requests after parse cancellation by @sanyamsingh001 in #2334
  • feat(automation): accessibility_tags lists tags a page at a time, with filters by @CouchRiv in #2335
  • feat(automation): bookmarks and links say where on the page they go by @CouchRiv in #2344
  • fix(ui): on macOS, dragging a tab moves the tab, not the window by @tisca26 in #2347
  • M10.5: convert print previews to grayscale by @earlvanze in #2351
  • Preserve literal spaces in page-label prefixes by @sanyamsingh001 in #2355
  • crypt: property tests for encrypted content, crypt filters and damaged ciphertext by @amoisttowe1 in #2358
  • fix(ui): a shape just drawn resizes from its handles without the Select tool by @cortenburg28-arch in #2362
  • fix(cli): render comments the app renders when /AP is missing by @earlvanze in #2382
  • Fix util.printd panic on an escaped multi-byte character by @Silvertree2010 in #2386
  • Reject impossible dates such as Feb 30 in FormCalc Date2Num and Parse by @Silvertree2010 in #2388
  • M5: Make Properties Default in Comment Properties by @DCM4711 in #2031
  • M1: keep unknown trailer entries on a full save (#1338) by @bartalos86 in #1431
  • Tests: viewer find test waits by a deadline (flaky under load) by @echelon in #779
  • Add permission-aware selected-text Copy to Edit and context menus by @FredApps in #1244
  • M6: expose dropdown and list-box field alignment (#1208) by @DWAA1660 in #1263
  • M14: correct localization and installer parity statuses (gap 24) by @rp6186030 in #1211
  • M1: repair exhausted xref hints without object-number overflow (#1337) by @DWAA1660 in #1359
  • M10: Windows print jobs show per-sheet progress; printers list faster (follow-up to #944) by @TKIPisalegacycipher in #1236
  • Keep selected form values and page content through later edits (#1319, #1305, #1324, #1306) by @bartalos86 in #1452
  • M7: keep line breaks when editing a multi-line paragraph (#1443) by @rp6186030 in #1486
  • MCP: confine file access with --automation-read-root and --automation-write-root by @isaac-levine in #1448
  • fix(macos): Cmd+Q asks about unsaved changes (#1136) by @Mahmud-Baspehlivan in #1533
  • M3: scroll the view when drawing at an edge; take back a polygon's last point by @philip-tam in #1549
  • M2: preserve inline-image pixels when rewriting page content by @MMexicann in #1562
  • Perf: defer marker and link index scans until first use by @cyfung1031 in #1434
  • M12: tag unstructured AcroForm widgets by @earlvanze in #1451
  • M12: find untagged accessibility content by @earlvanze in #1463
  • feat(ui): preference to hide author-only highlight hover previews (#1432) by @Totopo27 in #1466
  • Print: 4 x 6 in label paper and a Label layout for shipping labels by @Ace40063 in #1583
  • M12: show structure tag content by @earlvanze in #1496
  • Keep added text selectable over form fields by @FredApps in #1528
  • M7: Cut, Redact, Create Link and Recognize Text in the picture menu; keep the menu open by @philip-tam in #1621
  • M6: preserve XFDF field text around XML comments by @storybored379 in #1647
  • M14: store XDG preferences in configuration directory (#1395) by @DWAA1660 in #1536
  • M7: grow text boxes and edit existing text by @YouseifUS in #1539
  • M6: make list boxes directly selectable and scroll to selection (#1524) by @lollinoo in #1543
  • Complete the Arabic (العربية) catalog: every missing row translated by @hasan-sdaif in #1559
  • M1: edit finds the pages a damaged file's readers find by @marcoarnulfo in #1664
  • M14: Fix(nixos): discover installed UI fallback fonts on NixOS by @tomasmark79 in #1553
  • M6: preserve carriage returns in form CSV exports by @MMexicann in #1563
  • M6: export valid XML tags for Unicode field names by @MMexicann in #1588
  • Keep annotations readable under reading colours (#1548) by @edurbs in #1557
  • Comments panel: page groups fold from their chevron by @marcoarnulfo in #1614
  • M3: Wayland: stop retaining Ctrl zoom for pixel-only wheel input by @tomasmark79 in #1569
  • Tests: the signing test's password meets the 8-character minimum (#2417) by @wstock in #2420
  • fix(parity): merge the keys concurrent merges left twice in acrobat-features.toml by @mtlcl410 in #2419
  • fix(i18n): zh-hant had two keys twice after concurrent merges by @mtlcl410 in #2414
  • Tests: repair stale save and search regressions without weakening validation by @FredApps in #2484
  • Fix main UI regressions in paging, fonts and test expectations by @FredApps in #2502
  • i18n: fill Vietnamese and Lithuanian coverage gaps on main by @FredApps in #2510
  • Read the Annex D.2 alias codes as the ink they draw, in both tables by @tanish2k09 in #2656
  • Score reading order in the text oracle, which word F1 cannot see by @tanish2k09 in #2680
  • Record the day's two changes in the roadmap and gap 12 by @tanish2k09 in #2682
  • fix(render): faster sampled functions, image decodes across zoom levels and patch meshes (vendored hayro-interpret patches 31–33) by @Piohrun in #2436
  • fix(ui): validated signature display, snapshot tab reuse by @chiranjeevi-max in #1895
  • ci: add nix check workflow by @dylanmtaylor in #2727
  • test: retain open regressions and deterministic fixtures by @skylartaylor in #2067
  • M8: the redaction audit finds a cover over one word of a long line (#2662) by @mtlcl410 in #2698
  • Resolve remote links and document-supplied output names safely by @skylartaylor in #3083
  • M6: preserve complete plain XML form values by @MMexicann in #2686
  • deny: acknowledge the new zbus unmaintained advisories by @skylartaylor in #3091
  • M6: preserve whitespace in XML and XFDF attributes by @MMexicann in #1917
  • fix(filters): preserve output-limit errors in raw Flate fallback by @MMexicann in #2267
  • Read stream-boundary comments as the renderer does, and isolate new marks from appended graphics state by @skylartaylor in #3102

New Contributors

Full Changelog: v0.8.0...v0.9.0

Don't miss a new pdfcraft release

NewReleases is sending notifications on new releases.