mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-11-07 11:14:14 +00:00
Review of #2815: `page_of` built every page to return one, and the Add Background dialog checked 24 pages a frame that way, so a frame cost 24 page-tree walks (93 ms at 5,000 pages, 385 ms at 20,000). - `page_backdrops(doc, pages)` walks the tree once for a batch; the dialog checks one batch a frame and `doc_backdrops` one batch in all. A page past the end answers None without hiding the others (the viewer's page count can disagree with the page tree's). - `scan` and `replace` take the page; `add_background` no longer walks the tree twice more per page to replace a backdrop. - Tests: 4,000 pages checked in one batch under a generous bound (17.6 s with the old lookup), batch order and missing pages, and a background over several pages sharing streams, replaced and restored. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>