Vielen Dank für dieses großartige Modul, das 0.5.0-beta4 verwendet!
Das Problem, das ich habe, ist, sagen wir, ich habe eine Klasse
.class {
font-family: "somefont", "Arial"
}
Wenn "somefont" nicht angewendet wird, sind das Endergebnis Elemente, die .class sind, werden mit Arial auf der Seite gerendert, aber im Canvas wird stattdessen die Standardschriftart angewendet.
Irgendeine Idee?
Ich habe das gleiche Problem.
Dies ist die Roboto-Schriftart in Google Chrome Canary
Dies ist gerendertes Bild
Ich habe den Grund gefunden: Eltern von Canvas müssen eine explizite Schriftdeklaration haben, wie folgt:
.container {
font-family: Roboto, "Helvetica Neue", sans-serif;
}
Beim Join / Split in CanvasRenderer.prototype.font wurden zusätzliche Schriftarten entfernt. Ich habe einen Fix dafür eingereicht
Ich bin nicht sicher, ob dies zusammenhängt, aber hier denke ich, dass ich die Schrift richtig gerendert sehe, aber dann mit einer fehlerhaften Schrift überlagert?
@ eZ0 du bist richtig! Vielen Dank!
Wie Sie sagten, habe ich font-family: arial
in das übergeordnete Canvas-Element eingefügt und funktioniert!.
Vielen Dank! Vielen Dank!
Sollte in https://github.com/niklasvh/html2canvas/commit/77d258f1d8eeccf7e38235463a293b512c1ca3d0 behoben werden
funktioniert nicht, ich habe den gleichen Fehler bekommen
gerendert von
html2canvas(this.$refs.iFr, { useCORS: true }).then(canvas => {
console.log(canvas)
document.body.appendChild(canvas)
canvas.toBlob(function(blob) {
saveAs(blob, 'Dashboard.png')
})
})
Benutzerdefinierte geladene Schriftarten vom Server (nicht CORS) werden nicht gerendert. Verwendete font-based64 CSS-Datei als Schriftart für Liberation Serif
Hilfreichster Kommentar
Ich habe den Grund gefunden: Eltern von Canvas müssen eine explizite Schriftdeklaration haben, wie folgt:
.container { font-family: Roboto, "Helvetica Neue", sans-serif; }