Veuillez vous assurer que vous testez avec la dernière version de html2canvas .
Les anciennes versions ne sont pas prises en charge et les problèmes signalés pour celles-ci seront résolus.
J'ai une page avec plusieurs divs. Chacun de ces div a plusieurs éléments de table de réaction . Je veux faire une capture d'écran de chaque div, puis créer un fichier zip et les télécharger tous en même temps (comme une sorte de pseudo diaporama powerpoint). Cela fonctionne parfaitement sur Mac, cependant lorsque j'utilise Google Chrome sur Windows, les divs avec plusieurs tables de réaction semblent ne pas terminer le rendu lorsque la capture d'écran est prise. J'ai confirmé en activant la journalisation que le rendu se termine en ~1000ms, mais le canvas
que html2canvas renvoie apparaît comme s'il n'avait pas terminé le rendu. Les tables de réaction sont rendues, mais le reste du texte sur la page est quelque peu transparent, comme si le chargement était à mi-chemin.
Je n'ai pas encore de repro jsfiddle, mais je vais travailler dessus pour en ajouter un ici.
J'ai réussi à le faire fonctionner, même si ce n'est pas optimal.
html2canvas(div, {
letterRendering: true,
onclone: (doc) => {
// onclone logic to resize div
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve()
}, 400)
})
}
}).then((obj) => {
let img = obj.toDataURL()
// save image to zip file
})
Je suis arrivé au délai d'attente de 400 ms par essais et erreurs. Rien de moins, et j'ai observé le problème avec le div n'étant pas complètement rendu lorsque html2canvas prend la capture d'écran.
Je suis d'accord, j'ai eu un problème très similaire, où les images générées par Html2Canvas étaient coupées. Cela ne s'est produit que dans les versions de production. Dans les environnements de développement, cela a bien fonctionné. La solution de contournement ci-dessus résout mon problème. Je suis d'accord pour dire que ce n'est pas idéal et qu'une solution appropriée est nécessaire pour cela, mais pour l'instant, cela résout mon problème. Merci @ tjchambers32 pour cette
J'ai également rencontré ce problème et cela a causé un assez mauvais bug de notre côté. Aimeriez-vous fixé!
Commentaire le plus utile
J'ai également rencontré ce problème et cela a causé un assez mauvais bug de notre côté. Aimeriez-vous fixé!