html2canvasの最新
古いバージョンはサポートされておらず、それらについて報告された問題はクローズされます。
いくつかのdivがあるページがあります。 これらの各divには、いくつかのreact-table要素があります。 各divのスクリーンショットを撮り、zipファイルを作成して、それらすべてを一度にダウンロードしたいと思います(一種の疑似パワーポイントスライドデッキとして)。 これはMacで完全に機能しますが、WindowsでGoogle Chromeを使用している場合、スクリーンショットを撮ったときに、いくつかの反応テーブルを持つdivがレンダリングを完了していないようです。 ロギングをオンにして、レンダリングが約1000ミリ秒で完了することを確認しましたが、html2canvasが返すcanvas
は、レンダリングが完了していないように見えます。 反応テーブルはレンダリングされますが、ページ上の残りのテキストは、読み込みが途中で終了したかのように、いくらか透明になります。
jsfiddleの再現はまだありませんが、ここで追加するために取り組んでいきます。
最適ではありませんが、これを機能させることができました。
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
})
試行錯誤の末、400msのタイムアウトになりました。 それ以下で、html2canvasがスクリーンショットを撮ったときにdivが完全にレンダリングされないという問題を観察しました。
同意します。Html2Canvasによって生成された画像が途切れるという非常によく似た問題がありました。 これは、本番ビルドでのみ発生しました。 開発環境では、正常に機能しました。 上記の回避策は私の問題を解決します。 私はそれが理想的ではなく、これには適切な修正が必要であることに同意しますが、今のところそれは私の問題を解決します。 この回避策を@ tjchambers32に感謝します。
私もこの問題に遭遇しました、そしてそれは私たちの側でかなり悪いバグを引き起こしました。 修正したい!
最も参考になるコメント
私もこの問題に遭遇しました、そしてそれは私たちの側でかなり悪いバグを引き起こしました。 修正したい!