Html2canvas: ne prend pas en charge la propriété font-family avec plusieurs valeurs

Créé le 13 févr. 2016  ·  7Commentaires  ·  Source: niklasvh/html2canvas

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?

Bug

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; }

Tous les 7 commentaires

J'ai le même problème.

Ceci est la police Roboto, dans Google Chrome Canary
screen shot 2016-02-18 at 15 18 27

Ceci est une image rendue
img055

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!

ne fonctionne pas, j'ai la même erreur
image

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

Cette page vous a été utile?
0 / 5 - 0 notes