1.0 KiB
1.0 KiB
HTML vers PNG : Rendu headless Puppeteer / Chromium
Contexte : html2canvas echoue dans les iframes sandbox (Claude.ai, widgets).
Polices Google Fonts et SVG complexes bloques par CORS.
Solution : rendu serveur avec Chromium headless.
Approche 1 - Claude bash_tool
Installation (une seule fois par session)
Script render.mjs
Pieges critiques :
- Entry point : lib/puppeteer/puppeteer.js (pas lib/esm/)
- page.waitForTimeout() supprime en v25+ => setTimeout natif
- --no-sandbox obligatoire dans container Claude
- networkidle0 + 2s = polices externes chargees
Approche 2 - NAS via Gotenberg (port 3001, deja deploye)
Gotenberg embarque Chromium. HTML -> PDF puis PDF -> PNG Pillow.
Ou via noeud HTTP Request n8n (multipart/form-data vers Gotenberg).
Cas valide (2026-06-21)
Carte felicitations Bac 2026 - HTML/SVG 680x680px + Google Fonts.
Resultat : PNG 1360x1360px (137 Ko), upload Facebook direct.
Regle absolue : html2canvas = NON iframe sandbox.
Puppeteer (Claude) ou Gotenberg (NAS) = OUI.