본문 바로가기
개발/javascript

html 영역 pdf 다운 여러 페이지 처리 한글처리 jspdf.min.js html2canvas.js

by 향유 2021. 4. 12.

 

        window.onload= function(){
            setTimeout(function() {
                html2canvas($("#printarea"), {
                background :"#FFFFFF",
                    onrendered : function(canvas) {
                        // 한글깨짐현상때문에 jpeg->jspdf 전환
                        var imgData = canvas.toDataURL("image/jpeg");

                        var pageWidth = 210; //가로 길이 a4 기준
                        var pageHeight = pageWidth * 1.414; //출력 페이지 세로길이

                        var imgWidth = pageWidth - 20;

                        var imgHeight = canvas.height * imgWidth / canvas.width;
                        var heightLeft = imgHeight;

                        var doc = new jsPDF("p","mm",[pageHeight, pageWidth]);
                        var position = 0;

                        doc.addImage(imgData, "JPEG", 0, position, imgWidth, imgHeight);
                        heightLeft -= pageHeight;

                        // 한 페이지 이상일 경우 루프 돌면서 출력
                        while (heightLeft >= 20) {
                          position = heightLeft - imgHeight;
                          doc.addPage();
                          doc.addImage(imgData, "JPEG", 0, position, imgWidth, imgHeight);
                          heightLeft -= pageHeight;
                        }

                        doc.save("화면.pdf");
                    }
                });
            }, 100);
        }

window.onload=

댓글