mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-10-25 10:39:01 -06:00
M10: Office export follows forms 50 deep and up to 50 000 a page and says where it stops (#3120) (#3426)
* M10: Office export reads forms as far as the renderer and says where it stops (#3120) Export to Word, PowerPoint, HTML and RTF stopped at 12 nested forms and 4 096 forms a page and left the rest out silently. It now follows forms 50 deep, as the renderer does, and up to 50 000 a page (the renderer's budget for nested paints), still bounded on hostile files. doc_export_office lists pages past those limits in truncated_pages, with a warning. New: reading_blocks_checked and export_office_checked; reading_blocks and export_office keep their signatures. Fixes #3120 Co-Authored-By: Claude <noreply@anthropic.com> * Tests: pin the form depth limit to the renderer's 50 (#3120) The depth test built its chain from MAX_FORM_DEPTH, so it moved with the constant. Write the renderer's limit out: depth 50 is read, depth 51 is left out and reported. Fails with the constant at 49 and at 51. Co-Authored-By: Claude <noreply@anthropic.com> * Export: say which forms count toward the page limit (#3120) The page budget also counts forms the page draws itself, which the renderer does not charge, so a page can be reported as cut although the viewer shows it. The warning and the tool description now say so. Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Brandon Thomas <echelon@gmail.com>
This commit is contained in:
co-authored by
Claude
Brandon Thomas
parent
84bd488db3
commit
5602fbba12
@@ -7088,8 +7088,8 @@ milestone = "M10"
|
||||
status = "partial"
|
||||
commands = ["export.html"]
|
||||
tools = ["doc_export_office"]
|
||||
evidence = ["crates/export/src/lib.rs::html_has_headings_paragraphs_and_images_in_order", "crates/export/src/lib.rs::text_colour_survives_every_format", "crates/export/src/lib.rs::grid_text_becomes_a_real_table_in_every_format", "crates/automation/tests/automation.rs::exporting_to_word_html_and_rtf", "crates/ui-egui/tests/compare.rs::export_to_word_html_and_rtf"]
|
||||
notes = "Single HTML file with headings, paragraphs (with text colour), inline images, and detected tables with spans/empty cells. Not yet: multi-page folder output, CSS from fonts."
|
||||
evidence = ["crates/export/src/lib.rs::html_has_headings_paragraphs_and_images_in_order", "crates/export/src/lib.rs::text_colour_survives_every_format", "crates/export/src/lib.rs::grid_text_becomes_a_real_table_in_every_format", "crates/automation/tests/automation.rs::exporting_to_word_html_and_rtf", "crates/ui-egui/tests/compare.rs::export_to_word_html_and_rtf", "crates/automation/tests/automation.rs::exporting_office_files_says_which_pages_left_form_text_out", "crates/edit/src/tests.rs::reading_follows_forms_as_far_as_the_renderer_and_says_where_it_stops"]
|
||||
notes = "Single HTML file with headings, paragraphs (with text colour), inline images, and detected tables with spans/empty cells. Text and images in form XObjects are read 50 levels deep, as the renderer does, and up to 50 000 forms a page; the tool lists pages past that in truncated_pages, with a warning (#3120). Not yet: multi-page folder output, CSS from fonts."
|
||||
|
||||
[[feature]]
|
||||
id = "create.export-text"
|
||||
|
||||
Reference in New Issue
Block a user