Critical fixes — Memory leaks & auto-save reliability fix
- IDML import — image blob URLs leaked — every
.idmlimported left Nblob:URLs in memory until the next page reload. Bitmaps are already inlined asdataURLduring parse, so the blob URLs were referenced nowhere. NowURL.revokeObjectURL()is called on every image right afterparseIdmlAndBuild()resolves and in the catch path fix - IDML import — font blob URL leaked on error — when
FontFace.load()rejected (corrupted / unsupported font), the blob URL created just before was never revoked. The variable now lives outside the try block so thecatchbranch can free it fix - Auto-save — silent skipped saves — the previous “cheap” hash compared
pages.length + sum(objects.length). Add+delete operations producing the same total length collided silently, skipping the IndexedDB write. Replaced by a FNV-1a 32-bit content hash per page (~5–10 ms per 100 KB) — collisions effectively eliminated, no more lost work after a crash fix
Memory — Imposition VRAM released fix
- Fabric
dispose()+ canvas zero-out — Fabric removes listeners but doesn’t always reset the underlying<canvas>dimensions, which can pin GPU textures until the next garbage collection. The imposition export pipeline now grabslowerCanvasEl/upperCanvasElbeforedispose()and zeroes their width/height — large imposition sheets release several megabytes of VRAM immediately fix
PDF import — micro white seam fixed fix
- Imported PDF placed at 100,5 % instead of 100 % — sub-pixel rounding between the rasterised PDF page and the page background occasionally left a 1–2 px white antialiasing line at the edge. The placement scale in
importPDFPagesV2now applies a uniform×1.005overshoot, centred on the page (originX/originY = center), so the 0,5 % bleeds ~0,25 % each side and is clipped by the bleed/page bounds at export. Applies to all 3 recropping modes (support, page, custom) and to spread-split halves. The none mode (fit-inside) keeps a strict 100 % since the user expects the full PDF visible.
Export PDF HD CMYK — ICC profile order & default UX
- “Aucun profil ICC” is now the default in both export panels (top-nav classic export and Imposition Calculator). Profiles are listed in priority order: Aucun (DeviceCMYK brut) → Coated FOGRA39 → U.S. Web Coated SWOP → Japan Color 2001 Coated. Custom
.icc/.icmupload still available for shops that need to embed their own profile.
Details
Fabric.js 5.3.0 · jsPDF 2.5.1 · pdf.js 3.11.174 · IndexedDB · FNV-1a 32-bit · Vanilla JS

Leave a Reply