通常、すべての問題を解決する答えを見つけることができるので、これは私がここで尋ねた最初の質問です。しかし、今週はかなりの壁にぶつかりました。
ページでキャンバスを使用していますが、これはうまく機能しており、画像ファイルとして保存できます。toDataURL を使用した後、印刷用に新しいウィンドウでキャンバスを開くボタンも作成しました。以下のコードを使用しています。
function printable() {
var dataUrl = document.getElementById("mainCanvas").toDataURL("image/png");
var windowContent = '<!DOCTYPE html>';
windowContent += '<head><title>Print Map</title></head>';
windowContent += '<body>';
windowContent += '<img src = "' + dataUrl + '">';
windowContent += '</body>';
windowContent += '</html>';
var printWin = window.open('', '', width = 340, height = 260);
printWin.document.open();
printWin.document.write(windowContent);
printWin.document.close();
printWin.focus();
printWin.print();
}
これはうまく機能し、印刷ダイアログを開いてキャンバス画像を印刷します。問題は、画像が 1 ページよりも大きく、画像の最初のページしか印刷されないことです。キャンバスを複数のページにまたがって印刷する方法はありますか、またはこれをブラウザーからプリンターへの機能の悪さのせいにして、キャンバスをローカルに保存した後、印刷する必要があるユーザーに別のプログラムを使用させる必要がありますか?
ありがとう