bflatastic
8ed1e1e155
Merge origin/main into merge/preflight-pdfa-checks
2026-11-09 09:55:52 +07:00
BFlat
cde331fb7e
Merge pull request #6663 from storytold/merge/render-interpret-patches
...
Land render and font patches (#6292 , #6287 , #6314 , #6353 , #6359 , #6368 , #6409 , #6491 , #6545 , #6516 , #6521 , #6528 , #6533 , #6529 , #6542 , #6543 , #6569 , #6572 )
2026-11-09 10:54:50 +08:00
mmmaarian03-crypto
fdfdf6ed9f
Attachments: a saved attachment keeps the PDF's Mark-of-the-Web on Windows ( #3990 ) ( #4091 )
2026-11-09 10:14:27 +08:00
Nate Glasby
b02765b6a1
fix(ui): show creation and modification dates in Document Properties ( #5534 ) ( #5536 )
2026-11-09 10:06:03 +08:00
Ethunxxx
d67b82c591
M4: bookmarks run their actions as links do (organize.bookmark-actions) ( #5410 )
2026-11-09 10:05:18 +08:00
Ethunxxx
fdffff7b85
M7: links that go to a page open at a chosen zoom (edit.action-goto) ( #5277 )
2026-11-09 10:04:00 +08:00
bflatastic
9e6854869b
Merge origin/main into merge/render-interpret-patches
...
# Conflicts:
# crates/render/src/raster/tests.rs
# crates/render/src/text/tests.rs
# parity/acrobat-features.toml
# vendor/README.md
2026-11-09 09:03:56 +07:00
Ethunxxx
4ca5fccf9e
M4: Initial View magnification offers 25% and 100% ( #5254 ) ( #5265 )
2026-11-09 10:03:30 +08:00
bflatastic
8dfb3bdc5b
Merge origin/main into merge/preflight-pdfa-checks
...
# Conflicts:
# crates/engine/src/tests.rs
2026-11-09 09:01:00 +07:00
bflatastic
d2619333e9
Merge #6438 : M2: a page past the rasterizer's coverage renders what fitted instead of failing (view.render-error-isolation)
...
# Conflicts:
# vendor/README.md
2026-11-09 08:15:14 +07:00
bflatastic
795f9a9508
Merge #6532 : M2: a CMap's bfchar mappings read codes at their codespace length (view.render-cid-fonts)
...
# Conflicts:
# crates/render/src/raster/tests.rs
# vendor/README.md
2026-11-09 08:14:19 +07:00
bflatastic
cea263ddbf
Merge #6219 : M11: PDF/A verify reports pages with transparency but no blending colour space, and blend modes ISO 32000-1 doesn't define (optimize.pdfa-validate)
...
# Conflicts:
# crates/preflight/src/lib.rs
# crates/preflight/src/tests.rs
# parity/acrobat-features.toml
2026-11-09 08:12:33 +07:00
bflatastic
2992146abb
Merge #6312 : M1: a document that encrypts only its embedded files opens without a password (core.attachment-only-encryption)
...
# Conflicts:
# crates/render/src/inspect/tests.rs
# vendor/README.md
2026-11-09 08:12:28 +07:00
bflatastic
b3a5ac3ac1
Merge #6215 : M11: PDF/A verify reports SetState, NOP and Named actions other than the four page moves (optimize.pdfa-validate)
...
# Conflicts:
# crates/preflight/src/tests.rs
# parity/acrobat-features.toml
2026-11-09 08:11:26 +07:00
bflatastic
6160819a57
Merge #6533 : M2: a font without a /Subtype is drawn by its /BaseFont (view.render-pages)
...
# Conflicts:
# vendor/README.md
2026-11-09 08:11:11 +07:00
bflatastic
9e2c8130ad
Merge #6561 : M1: a file whose last update has no /Prev opens with all its pages and a repair note (core.repair-broken-files)
...
# Conflicts:
# parity/acrobat-features.toml
# vendor/README.md
# vendor/hayro-syntax/src/pdf.rs
2026-11-09 08:11:01 +07:00
bflatastic
6be3850177
Merge #6214 : M11: PDF/A verify checks the file identifier and Save as PDF/A adds one (optimize.pdfa-validate)
...
# Conflicts:
# crates/automation/src/tools.rs
# crates/cos/src/lib.rs
# crates/preflight/src/lib.rs
# crates/preflight/src/tests.rs
# parity/acrobat-features.toml
2026-11-09 08:10:01 +07:00
bflatastic
574968a03b
Merge #6545 : fix(render): a Type 3 font without /Widths advances by its glyphs' d0/d1 widths, and the page warns about it (hayro-interpret patch 90)
...
# Conflicts:
# crates/render/src/raster/tests.rs
# vendor/README.md
# vendor/hayro-interpret/src/font/type3.rs
2026-11-09 08:08:39 +07:00
bflatastic
174d0b31e8
Merge #6207 : M11: PDF/A verify reports transfer functions, halftones and rendering intents a graphics state may not use (optimize.pdfa-validate)
...
# Conflicts:
# crates/preflight/src/lib.rs
# crates/preflight/src/tests.rs
# parity/acrobat-features.toml
2026-11-09 08:08:08 +07:00
bflatastic
4c219bb055
Merge #6491 : fix(render): a non-embedded Times New Roman draws the glyphs its codes name (hayro-interpret patch 88)
...
# Conflicts:
# crates/render/src/raster/tests.rs
# vendor/README.md
2026-11-09 08:07:55 +07:00
bflatastic
16312e1a10
Merge #6534 : M2: a page without a /MediaBox is US Letter (view.render-pages)
...
# Conflicts:
# vendor/README.md
# vendor/hayro-syntax/src/page.rs
2026-11-09 08:07:49 +07:00
bflatastic
e2417e1561
Merge #6206 : M11: PDF/A verify checks the file header and Save as PDF/A rewrites it (optimize.pdfa-validate)
...
# Conflicts:
# crates/preflight/src/tests.rs
# parity/acrobat-features.toml
2026-11-09 08:07:05 +07:00
bflatastic
9cb7dc4094
Merge #6510 : M1: the renderer reads a cut-off last update's objects, as the document model does (core.repair-broken-files)
...
# Conflicts:
# vendor/README.md
2026-11-09 08:05:56 +07:00
bflatastic
fd204ced66
Merge #6203 : M11: PDF/A verify reports Separation spaces of one name that differ and DeviceN spot colours missing from /Colorants (optimize.pdfa-validate)
...
# Conflicts:
# crates/preflight/src/lib.rs
# crates/preflight/src/tests.rs
# parity/acrobat-features.toml
2026-11-09 08:05:52 +07:00
bflatastic
e7ecc84544
Merge #6506 : fix(render): a fax image with more /Rows than its /Height is decoded to its height (hayro-syntax patch 41)
...
# Conflicts:
# vendor/README.md
2026-11-09 08:05:40 +07:00
bflatastic
5c42721193
Merge #6501 : fix(render): an image whose PNG predictor was declared but never applied draws its samples (hayro-syntax patch 40)
...
# Conflicts:
# parity/acrobat-features.toml
# vendor/README.md
2026-11-09 08:05:23 +07:00
bflatastic
25ac77c360
Merge #6202 : M11: PDF/A verify reports integers, reals, strings, names, CIDs and page boundaries past the implementation limits (optimize.pdfa-validate)
...
# Conflicts:
# crates/preflight/src/lib.rs
# parity/acrobat-features.toml
2026-11-09 08:04:54 +07:00
bflatastic
4dc55320bc
Merge #6254 : M11: PDF/A verify checks that XMP extension schema descriptions are complete (optimize.pdfa-validate)
2026-11-09 08:02:53 +07:00
bflatastic
dee86eecc1
Merge #6232 : M11: PDF/A verify checks that TIFF, EXIF and aux XMP properties have their value types (optimize.pdfa-validate)
...
# Conflicts:
# crates/preflight/src/tests.rs
# crates/preflight/src/xmp_types.rs
# parity/acrobat-features.toml
2026-11-09 08:02:44 +07:00
mtlcl410
d65ae4268e
M6: a calculate script that sets its own field through the field object keeps that value (form.custom-scripts) ( #6616 )
2026-11-09 08:59:19 +08:00
mtlcl410
87bc00a991
M3: Find matches words divided by soft hyphens, zero width characters or a Chinese or Japanese line end (view.find) ( #6595 )
2026-11-09 08:58:34 +08:00
mtlcl410
b9ffb68b12
M6: a product of empty fields is 0, not 1 (form.af-simple-calculate) ( #6567 )
2026-11-09 08:57:28 +08:00
mtlcl410
3e48317ae3
M10: Pages per sheet takes a custom grid of columns by rows ( #6551 ) ( #6559 )
2026-11-09 08:57:06 +08:00
Oliver H.
616f245b04
fix(edit): break the row on every Unicode row break ( #6295 )
2026-11-09 08:54:37 +08:00
mtlcl410
4f97a22a2e
Merge remote-tracking branch 'upstream/main' into lane6-6215
...
# Conflicts:
# crates/preflight/src/tests.rs
# parity/acrobat-features.toml
2026-11-09 08:54:02 +08:00
quincy-jc
25aef86a1d
feat(reduce): ask where to save before compressing ( #6229 )
2026-11-09 08:53:12 +08:00
mtlcl410 and Claude Opus 5.5
2b0fdedffb
Merge upstream/main into fix/pdfa-implementation-limits
...
Resolve conflicts with the XMP value-type checks (6.6.2.3.1): keep both
sets of tests, and combine the pdfa-verify parity evidence and notes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Pq7HyCHD1R3rywQBPCHXZA
2026-11-09 08:52:16 +08:00
mtlcl410 and Claude Opus 5.5
8c2ef13de6
Merge upstream/main into fix/pdfa-separation-devicen
...
Resolve conflicts with the XMP value-type checks (6.6.2.3.1): keep both
sets of tests, and combine the pdfa-verify parity evidence and notes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Pq7HyCHD1R3rywQBPCHXZA
2026-11-09 08:50:28 +08:00
mtlcl410
608ff62dae
M6: a widget whose /Parent names a missing object is a field of its own (form.field-list) ( #6445 )
2026-11-09 08:49:56 +08:00
mtlcl410
de7ed00a1a
M3: End shows the end of the document, the last page down to its bottom (view.page-navigation) ( #6435 )
2026-11-09 08:49:35 +08:00
Ken Mantle
218c2bb21f
M12: headless orbit navigation for 3D models ( #6406 )
2026-11-09 08:48:58 +08:00
mtlcl410
e6b6216fd9
M1: a V4 RC4 file with a 40- or 48-bit key reads and saves ( #6397 ) ( #6398 )
2026-11-09 08:48:43 +08:00
mtlcl410
1a28606c64
M10: a layer the document marks screen-only stays off the printed sheet (print.print-ready-pdf) ( #6387 )
2026-11-09 08:48:28 +08:00
BFlat
53eec5cd24
Merge pull request #6502 from mtlcl410/fix/sign-string-bytes-not-spelling
...
M9: a signed string respelled in hexadecimal is no change after signing (sign.changes-after-signing)
2026-11-09 08:48:07 +08:00
mtlcl410
0a029f0aad
M12: floating fields show the values scripts give them, and the sheet number and count ( #6160 ) ( #6166 )
2026-11-09 08:45:03 +08:00
Harrison Booth
3b731f9458
Expose widget rectangles to field scripts ( #6093 )
2026-11-09 08:42:39 +08:00
Hasan N.
bf409db55c
M3: pages shorter than the window sit in its middle ( #5708 ) ( #5759 )
2026-11-09 08:38:40 +08:00
mtlcl410
6062cd6a44
M5: Replace Text keeps its replacement on the group's primary, the caret (comment.replace-text) ( #5689 )
2026-11-09 08:38:25 +08:00
mtlcl410
ee2398f710
M11: PDF/A verify checks that predefined XMP properties have their value types (optimize.pdfa-validate) ( #6220 )
2026-11-09 08:37:56 +08:00
3ae9093d61
M2: info lists the repairs made while opening, as Document Properties does (misc.cli-inspect) ( #6518 )
...
* M2: `info` lists the repairs made while opening, as Document Properties does (misc.cli-inspect)
`pdfcraft-cli info` now prints a `repairs` array: the notes about damage
repaired while opening that the app shows in Document Properties and
doc_info reports. It opens the document as the app does, once (the session
the dynamic XFA summary already used), so notes the app adds after reading
the objects, such as a page tree rebuilt from the pages found by scanning,
are listed too. A file the app cannot open for editing falls back to what
reading its objects repaired; a sound file prints an empty array.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Pq7HyDBXygTf7jcqdsjcfn
* M2: `info` runs none of the document's scripts while inspecting it (misc.cli-inspect)
The session `info` opens to read the app's repair notes and the dynamic XFA
layout now has JavaScript turned off, so an XFA form's initialize and
calculate scripts, which the app runs on opening, do not run during
inspection of an untrusted file. Before this branch the session was opened
for dynamic XFA forms only, and their scripts ran there too.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Pq7HyDBXygTf7jcqdsjcfn
* M2: `info` reads the standards and repairs from the session it opens, and a laid-out form keeps its repair notes (misc.cli-inspect)
`info` now takes the declared standards (`Document::standards`, as the
Standards panel reads them) and the repair notes from the session it
opened, and reads the file once more only when the app cannot open it.
When opening lays out a dynamic XFA form, or writes any other revision,
the notes about damage repaired while reading the file now stay with the
re-read document, so Document Properties and `info` both list them.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Pq7HyCHD1R3rywQBPCHXZA
---------
Co-authored-by: mtlcl410 <chuanlin@niar.org.tw >
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-09 08:30:37 +08:00