mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-11-11 16:36:13 -06:00
Each `Do` copied the page's `/XObject` dictionary, and each form its `/Resources`, `/Properties`, `/Font` and `/ExtGState`, or the resources it was drawn with if it had none. So Office export of one page took time in the square of what it drew: 31 s for 10,000 pictures, about 70 ms of it decoding, 30 s for 10,000 forms with no `/Resources`, and 16 minutes for one form with 100,000 keys in them drawn 50,000 times, in a test build. `FormCall` keeps the form and `resource_dict` reads a dictionary where it is, with an object of its own held. 10,000 pictures take about 0.15 s now, 10,000 forms 79 ms, and that form drawn 5,000 times 40 ms. The test holds to 10,000 pictures, not the 2,000 it could afford. A `gs` reads a direct graphics state in place too, in the text walk and in `page_background`, and a value of the wrong type isn't copied to find that out. A form that sets a font still reads the font each time it is drawn, as the fonts read are kept only for that draw: 3.5 ms a draw for one of 100,000 widths. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AmsdeUCdTaD72jkDw2pJKY