En utilisant 0.5.0-beta4, merci beaucoup pour ce super module!
Le problème que j'ai, c'est que j'ai un cours
.class {
font-family: "somefont", "Arial"
}
là où "somefont" ne s'applique pas, le résultat final est des éléments qui sont .class seraient rendus en utilisant Arial dans la page, mais dans le canevas, la police par défaut est appliquée à la place.
Une idée?
J'ai le même problème.
Ceci est la police Roboto, dans Google Chrome Canary
Ceci est une image rendue
J'ai trouvé la raison: le parent de canvas doit avoir une déclaration de police explicite comme ceci:
.container {
font-family: Roboto, "Helvetica Neue", sans-serif;
}
La jointure / division dans CanvasRenderer.prototype.font supprimait les polices supplémentaires. J'ai soumis un correctif pour cela
Je ne sais pas si cela est lié, mais ici, je pense que je vois la police correctement rendue, mais ensuite superposée avec une police erronée?
@ eZ0 vous avez raison! Je vous remercie!
Comme vous l'avez dit, j'ai mis font-family: arial
à l'élément parent du canevas et fonctionne !.
Je vous remercie! Je vous remercie!
Doit être corrigé dans https://github.com/niklasvh/html2canvas/commit/77d258f1d8eeccf7e38235463a293b512c1ca3d0
ne fonctionne pas, j'ai la même erreur
rendu par
html2canvas(this.$refs.iFr, { useCORS: true }).then(canvas => {
console.log(canvas)
document.body.appendChild(canvas)
canvas.toBlob(function(blob) {
saveAs(blob, 'Dashboard.png')
})
})
Les polices personnalisées chargées depuis le serveur (et non CORS) ne sont pas rendues. Fichier css basé sur la police utilisée comme police de caractère pour Liberation Serif
Commentaire le plus utile
J'ai trouvé la raison: le parent de canvas doit avoir une déclaration de police explicite comme ceci:
.container { font-family: Roboto, "Helvetica Neue", sans-serif; }