# HTML vers PNG : rendu headless Puppeteer / Chromium
**Date** : 2026-06-21, révisé 09/07/2026 (retrait de l'approche Gotenberg — container désinstallé)
**Contexte** : html2canvas échoue dans les iframes sandbox (Claude.ai, widgets). Polices Google Fonts et SVG complexes bloqués par CORS.
**Solution** : rendu serveur avec Chromium headless via Puppeteer (bash_tool Claude).
## Pièges critiques
- Entry point : lib/puppeteer/puppeteer.js (pas lib/esm/)
- page.waitForTimeout() supprimé en v25+ → setTimeout natif
- --no-sandbox obligatoire dans container Claude
- networkidle0 + attente 2 s = polices externes chargées
## Cas validé (2026-06-21)
Carte félicitations Bac 2026 — HTML/SVG 680×680 px + Google Fonts → PNG 1360×1360 px (137 Ko), upload Facebook direct.
**Règle absolue** : html2canvas = NON en iframe sandbox. Puppeteer = OUI.
**Note** : l'ancienne « Approche 2 » via Gotenberg (HTML→PDF→PNG) n'existe plus — gotenberg a été désinstallé le 21/06/2026 (cf. cleanup-stack-documentaire.md).