javascript,HTML,CSS
[javascript] HTMS2Canvas를 이용하여 multiple-page PDF 만드는 방법
코린이예요
2020. 2. 20. 17:30
반응형
html로 만든 table을 HTMS2Canvas를 이용하여 pdf파일로 만드는 과정에서, 화면이 길어져 pdf가 잘리는 문제가 발생하였다.
Before
html2canvas($('#dialog-view-report #monthly_report')[0]).then(function (canvas) {
var filename = 'OTA-REPORT_' + Date.now() + '.pdf';
var doc = new jsPDF('p', 'mm', 'a4');
var imgData = canvas.toDataURL('image/png');
doc.addImage(imgData, 'PNG', 0, 0);
doc.save(filename);
});
After
html2canvas($('#dialog-view-report #monthly_report')[0]).then(function (canvas) {
var filename = 'OTA-REPORT_' + Date.now() + '.pdf';
var doc = new jsPDF('p', 'mm', 'a4');
var imgData = canvas.toDataURL('image/png');
var imgWidth = 210;
var pageHeight = 295;
var imgHeight = canvas.height * imgWidth / canvas.width;
var heightLeft = imgHeight;
var position = 0;
doc.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight);
heightLeft -= pageHeight;
while (heightLeft >= 0) {
position = heightLeft - imgHeight;
doc.addPage();
doc.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight);
heightLeft -= pageHeight;
}
doc.save(filename);
});
Reference :
[자바스크립트] html 화면을 pdf로 내보내기 (jspdf, html2canvas 사용)
반응형