0
ハイチャートチャートを書き出してjsでメールとして送信しようとしています。これを行うには、html2canvasライブラリを使用してjspdfオブジェクトに追加しました。クロムとFirefoxですべてうまくいったが、IEでこれを行うと空のpdfが現れた。 擬似コード:ハイチャートチャートのhtml2canvasがIE上でうまく機能しない
var
form = $('#main-content'),
cache_width = form.width(),
a4 = [100, 100];
var canvas1 = html2canvas(form, {
imageTimeout: 6000,
removeContainer: true
});
canvas1.then(function (canvas) {
var
img1 = canvas.toDataURL("image/JPEG", 1.0);
doc.addImage(img1, 'PNG', 0, 50, 440, 300);
});
Promise.all([canvas1]).then(function() {
var pdfString = window.btoa(doc.output());
var ob = {};
ob.mail = mailsList;
ob.title = title;
ob.pdf = pdfString;
$.ajax({
type: 'POST',
url: "/Charts/SendChart_ByEmail",
data: JSON.stringify(ob)
});
IE iが外部ライブラリ(bluebird.js)を使用するが、チャートを含むDIVをレンダリングするとき、結果のPDFファイルが空である、しかし、私は、別のレンダリングしようとした約束をサポートしていないためそれが働いたチャートを含んでいないdiv。
ハイチャートのバグですか?ブルーバードの問題?任意の回避策?
は
は、この問題が発生する完全に動作する例を私たちに提供します。ありがとう。 –
問題はajaxリクエストに送られるpdf文字列です.IE上で作業する場合、pdf文字列の長さは20KBですが、クロム文字列の長さは約300kbです。私はこれが空のpdfにつながったと考えています。チャートがキャンバスに完全にエクスポートされていないからです。 @d_paul –
問題はcanvas.todatauriからのもので、生成される画像は空のdivで、チャートは含まれていません –