ブラウザに読み込まれていないテンプレートpdf
からファイルを生成したい。html
基本的な考え方は、変数をロードhtml
して、ブラウザに表示せずjavascript
に変換することです。canvas/pdf
現在、現在開いているページにフレームを追加し、pdf を正常に生成した後にフレームを削除することでこれを行っています。しかし、これは画面とスクロールバーに多少の変動を示しています。
現在のコード:
$http.get("static/templates/pdf-template.html")
.then(function (response) {
var html_string = response.data;
var iframe = document.createElement('iframe');
iframe.style.width = '100%';
document.body.appendChild(iframe);
setTimeout(function () {
var iframedoc = iframe.contentDocument || iframe.contentWindow.document;
iframedoc.body.innerHTML = html_string;
var divHeight = iframedoc.body.scrollHeight;
var divWidth = iframedoc.body.scrollWidth;
var ratio = divHeight / divWidth;
html2canvas(iframedoc.body, {
onrendered: function (canvas) {
var pdf = new jsPDF();
var width = pdf.internal.pageSize.width;
var height = pdf.internal.pageSize.height;
height = ratio * width;
var imgData = canvas.toDataURL('image/jpeg', 1.0);
pdf.addImage(imgData, 'JPEG', 0, 0, width, height);
pdf.save('pdf');
document.body.removeChild(iframe);
}
});
}, 10);
});
を使用せずに解決策を提案してくださいiframe
。