forked from 1b-agent/opencadstudio-upstream
Bug: The PDF underlay renderer sized its pixmap from page size x requested DPI with no ceiling: a large page at a high raster DPI (display or print) computes a multi-gigabyte image - testing reached a 17 GB pixmap and a 543-second render attempt before the allocator gave up. Reproduce: 1. Attach a large-page PDF; set a high raster DPI (print above 150 DPI, or display with DPI raised). 2. Before: minutes of rendering and a multi-GB allocation, then abort. 3. After: display rasters are clamped so the longest side is at most 3072 (like DWF/DGN, the effective DPI is stored); print rasters over 268,435,456 pixels are refused with an error instead of rendered. Fix: Display (at or below 150 DPI): the scale is clamped to RASTER_SIDE/longest before the pixmap is allocated, and the DPI actually used is stored for downstream math. Print (above 150 DPI): refused when width x height exceeds MAX_PRINT_RASTER_PIXELS (256 Mpx) or is non-finite - print DPI is never silently rescaled because the sheet-mm-from-exact-DPI conversion must stay exact; the user gets an error instead of a hang. A regression test covers the hostile page x DPI case (about 1 second, previously 543 seconds and 17 GB).