pdfcraft/crates
philip-tam 88d96c93a8
M2: snap shrunk interpolated images to whole pixels so scans stay sharp (#1377)
* M2: snap shrunk interpolated images to whole pixels so scans stay sharp

A scanned page (one 300 dpi image with /Interpolate true) was shrunk to a
ceil-sized raster and then sampled a second time at a fractional scale and
offset, which softened every edge next to Acrobat. An axis-aligned shrunk
interpolated image is now shrunk once to its rounded device rectangle and
drawn 1:1 at the rounded corner. Rotated, skewed, flipped, Type 3 and
non-interpolated images are unchanged.

On a synthetic scan page the mean error against an area-average reference
falls from 3.4 to 1.6 grey levels at 96 dpi (3.0 to 1.5 at 144 dpi).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* vendor: list the hayro snap patch as (14) in the Patches and Tests columns; correct gaps.md patch counts

The patch description had been appended to the Tests column of one of the
two hayro rows. gaps.md now counts the distinct patches vendor/README.md
lists (26 hayro-interpret, 15 hayro, 3 hayro-jbig2, 17 hayro-syntax).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
2026-10-12 07:12:02 -04:00
..
a11y Keep manual review visible in accessibility summaries (#1224) 2026-10-12 02:52:35 -04:00
annot M14: text the fonts can't draw is kept and reported, never written as ? silently (#1112) 2026-10-11 17:53:55 -04:00
audit Add faux-redaction audit (paint-order and colour-aware, fail-closed) (#110) 2026-10-11 14:32:33 -04:00
automation M7: preserve Arabic text order in copy, search and editing (#1369) 2026-10-12 07:11:23 -04:00
compare Rename PrintCraft to PdfCraft (#174) 2026-10-07 16:03:57 -04:00
content Fix #155: edit text across content stream pieces (#628) 2026-10-09 17:57:02 -04:00
cos fix(preflight): find colour operators after any PDF whitespace (#1334) (#1373) 2026-10-12 06:25:42 -04:00
create M14: text the fonts can't draw is kept and reported, never written as ? silently (#1112) 2026-10-11 17:53:55 -04:00
crypt Issue #1185: Protect refuses passwords that encryption would make empty or equal (#1186) 2026-10-11 18:30:00 -04:00
edit M7: preserve Arabic text order in copy, search and editing (#1369) 2026-10-12 07:11:23 -04:00
engine Issue #1296: hayro-syntax applies SASLprep to AES-256 passwords (PdfCraft patch 16) (#1345) 2026-10-12 05:41:38 -04:00
export M10: Presentation (.pptx) export (#1137) (#1162) 2026-10-11 21:55:25 -04:00
filters Rename PrintCraft to PdfCraft (#174) 2026-10-07 16:03:57 -04:00
fonts M7: preserve Arabic text order in copy, search and editing (#1369) 2026-10-12 07:11:23 -04:00
forms M12: accept literal digits in date formats (dd.mm.26) (#1352) 2026-10-12 05:43:55 -04:00
geom M10: Enhance camera image finds the document's edges; rotate, crop or organize after Enhance page (part 3 of #1008) (#1027) 2026-10-11 12:31:23 -04:00
js XFA: one script thread per event, and the live form kept up to date in place (#1355) 2026-10-12 05:39:49 -04:00
measure Issue #432: global Units preference (mm, cm, in, pt), defaulting to the system region (#463) 2026-10-11 15:33:54 -04:00
model M2: pages with /UserUnit are shown at their size in points, as in Acrobat (#722) 2026-10-10 06:19:31 -04:00
ocr M14: text the fonts can't draw is kept and reported, never written as ? silently (#1112) 2026-10-11 17:53:55 -04:00
optimize M11: strip redundant ASCII stream wrappers during optimization (#989) 2026-10-11 13:21:20 -04:00
organize M4: rename colliding form field names when combining (organize.field-name-conflicts) (#1155) 2026-10-11 21:18:21 -04:00
platform fix(theme): complete Linux System appearance tracking (#1017) 2026-10-11 15:23:49 -04:00
preflight fix(preflight): find colour operators after any PDF whitespace (#1334) (#1373) 2026-10-12 06:25:42 -04:00
print fix(print): refuse huge posters at the sheet limit instead of overflowing (#1335) (#1376) 2026-10-12 06:27:50 -04:00
redact fix(redact): removing comments keeps non-comment annotations (#1325) (#1375) 2026-10-12 06:27:04 -04:00
render M2: snap shrunk interpolated images to whole pixels so scans stay sharp (#1377) 2026-10-12 07:12:02 -04:00
sign fix(sign): a signature field with a null /V can be signed by name (#1328) (#1374) 2026-10-12 06:26:18 -04:00
ui-egui M7: preserve Arabic text order in copy, search and editing (#1369) 2026-10-12 07:11:23 -04:00
xfa XFA: one script thread per event, and the live form kept up to date in place (#1355) 2026-10-12 05:39:49 -04:00
xfdf fix(xfdf): text data from a one-field form keeps its commas (#1321) (#1371) 2026-10-12 06:24:27 -04:00