Commit Graph
906 Commits
Author SHA1 Message Date
mtlcl410 0a12d9a1fe Merge remote-tracking branch 'upstream/main' into lane7-4608b
# Conflicts:
#	crates/xfa/src/layout/flow.rs
#	parity/acrobat-features.toml
2026-11-09 19:13:08 +08:00
Dylan M. Taylor 8f29ed66f9 fix(engine): open linked documents without blocking and check the handle is a regular file (#5982) 2026-11-09 18:37:30 +08:00
pat26-dotcom 8f5373a7d1 M12: turn a layout table into Div and P tags in one call (#4105) (#4250) 2026-11-09 18:33:01 +08:00
oracola91 12a9b23394 Create PDF from text takes Cyrillic and Greek, and reports no longer escape them (#5403) 2026-11-09 18:31:29 +08:00
Dylan M. Taylor 5f4003e562 fix(engine): summarizing comments requires copying permission (#6039) 2026-11-09 18:19:15 +08:00
Dylan M. Taylor 4791327701 fix(engine): unknown permissions on an encrypted document refuse copying and printing (#6011) 2026-11-09 18:18:28 +08:00
.CooCoo 17425b0147 fix(automation): XFA clicks and form edits return only the script output they produced (#4559) 2026-11-09 18:13:50 +08:00
Eric Kaden 7fa6f10720 M12: an XFA date field keeps what its patterns don't read as typed, and reads its own patterns first (#4511) 2026-11-09 18:13:08 +08:00
mtlcl410 e142d30dfd M3: web and email addresses written as page text open like links (#4207) (#4472) 2026-11-09 18:12:05 +08:00
regendorf-ux 08c3d3a5ab feat(ui): split view: two panes, one document or two (#2518) 2026-11-09 18:11:13 +08:00
mtlcl410 bd5db5dc35 M2: a page whose content was cut at the renderer's limits says so (#623) (#2113) 2026-11-09 18:09:37 +08:00
regendorf-ux e63736d2e7 Print production: Fix hairlines (dialog, edit, tool) (#1906) 2026-11-09 18:08:46 +08:00
ljkx 930b441312 fix(redact): Remove Hidden Information reads only what the chosen categories need (part of #5873) (#6021) 2026-11-09 18:01:36 +08:00
mtlcl410 3739a0c481 Merge upstream/main again
Conflict: xfa layout.rs keeps main's MAX_DRAW_CHARS draw-phase budget
and this PR's MAX_INSTANCES of 1,000 in place of main's 50.
2026-11-09 12:08:02 +08:00
bflatastic 6b6531ff03 Merge remote-tracking branch 'origin/main' into tmpup
# Conflicts:
#	crates/engine/src/tests.rs
2026-11-09 10:31:59 +07:00
mtlcl410andClaude Opus 5.5 68a7c3ab0a Merge upstream/main again (picks up the revert of #5536 that broke the ui-egui gate)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Pq7HyCHD1R3rywQBPCHXZA
2026-11-09 11:18:01 +08:00
bflatastic 6bfc0af05d Merge remote-tracking branch 'origin/main' into tmpup 2026-11-09 10:12:20 +07:00
bflatastic 75a370c202 Merge remote-tracking branch 'origin/main' into tmpup 2026-11-09 10:12:17 +07:00
BFlat d8c2b9ffe8 Revert "fix(ui): show creation and modification dates in Document Properties (#5534) (#5536)" (#6671) 2026-11-09 11:09:22 +08:00
bflatastic 08c0a59212 Merge main into merge/redact-forms-misc
# Conflicts:
#	ROADMAP.md
#	crates/render/src/text/tests.rs
2026-11-09 09:56:59 +07:00
bflatastic 8ed1e1e155 Merge origin/main into merge/preflight-pdfa-checks 2026-11-09 09:55:52 +07:00
mtlcl410andClaude Opus 5.5 2bd378c656 Merge upstream/main into fix/xfa-repeat-more-than-50
Conflict: layout/flow.rs imports take both MAX_INSTANCES (this PR) and
MAX_MEASURES (main). Main's new check-box width arm in measure() now
passes the &Ctx this PR's per-instance measure takes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Pq7HyCHD1R3rywQBPCHXZA
2026-11-09 10:30:48 +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 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 fbff06bd83 Merge main into merge/redact-forms-misc
# Conflicts:
#	crates/engine/src/tests.rs
#	crates/render/src/inspect/tests.rs
#	crates/render/src/text/tests.rs
2026-11-09 09:03:20 +07: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 0de09d6ee7 Merge remote-tracking branch 'origin/main' into tmp-53380 2026-11-09 08:43:28 +07:00
BFlat bfed7bbabe Fix main's build after the latest merges (#6660) 2026-11-09 09:43:17 +08:00
bflatastic cf10038885 Merge #6650: fix(edit): editing an OCR phrase redraws only the words it changes (refs #3313)
# Conflicts:
#	crates/edit/src/text.rs
#	crates/edit/src/text_regions.rs
2026-11-09 08:21:42 +07:00
bflatastic a7bc9c5301 Merge #6620: M5: comments keep their formatting and appearance through XFDF and FDF (comment.import-fdf-xfdf, comment.export-fdf-xfdf)
# Conflicts:
#	crates/xfdf/src/xfdf.rs
2026-11-09 08:21:11 +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 870d56a77d Merge #6231: fix(measure): snap on heavy sheets, off the window thread
# Conflicts:
#	crates/measure/src/snap.rs
2026-11-09 08:10:45 +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 56f1f3689e Merge #6463: Combine and Insert bring only the bookmarks and attachments of the pages chosen
# Conflicts:
#	crates/organize/src/tests.rs
2026-11-09 08:04:31 +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
eliets2 a2f155e4df Deduplicate pages in ocr_job and use a set for page lookup (#6586) 2026-11-09 08:58:19 +08:00
mtlcl410 3e437b7bd4 M10: comments and fields without an appearance print as the page shows them (#6367) 2026-11-09 08:56:16 +08:00
mtlcl410 c67c44bf21 M10: applying recognized words refreshes only the page content they add (#6310) (#6316) 2026-11-09 08:55:14 +08:00
quincy-jc d0b2a32744 perf(optimize): work out pictures on threads and skip needless page reads (#6230) 2026-11-09 08:53:27 +08:00
oracola91 3c26e2e3eb Apply Redactions replaces the recovery snapshot at once (#6454) 2026-11-09 08:50:55 +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
quincy-jc 0b9c7fb821 fix(canvas): find a page's pictures off the window thread (#6228) 2026-11-09 08:47:47 +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
Dylan M. Taylor ee6ae8eac4 fix(engine): coalesce script resetForm requests and bound console output per edit (#5975) 2026-11-09 08:41:24 +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
jonathanwxh-cell 1f48670fce refactor(cos): consolidate duplicate civil_from_days onto pdfcraft_cos::civil_from_days (#6540)
Fixes #6466
2026-11-09 08:32:08 +08:00
jonathanwxh-cell 90def111c9 fix(engine): map URL text line rects with view_rect_to_user and filter non-finite coordinates (#6536)
* fix(engine): map URL text line rects with view_rect_to_user and filter non-finite coordinates

* test(engine): assert concrete rotated user rects and overflow guards (#6469)
2026-11-09 08:31:41 +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
Tiago KielandClaude Opus 5.5 19450d7cdf fix(edit): an OCR word edit can't land on the wrong word (refs #3313)
A rewrite also takes away copies of its words. With a copy earlier on the
page, the words after it moved up the list, so the next change rewrote the
word after the one it meant: deleting John removed Smith and left John.

Before each change, the words up to the next one that stays must still be
where they were. If they aren't, the edit falls back to the whole-phrase
rewrite.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 16:41:17 -05:00