html2canvas+jsPDF 페이지를 PDF로 내보내기

1565 단어
html2canvas(document.getElementById('content'), {
            onrendered:function(canvas) {
                var contentWidth = canvas.width;
                var contentHeight = canvas.height;

                // pdf html canvas ;
                var pageHeight = contentWidth / 592.28 * 841.89;
                // pdf html 
                var leftHeight = contentHeight;
                // 
                var position = 0;
                //a4 [595.28,841.89],html canvas pdf 
                var imgWidth = 595.28;
                var imgHeight = 592.28/contentWidth * contentHeight;

                var pageData = canvas.toDataURL('image/jpeg', 1.0);

                var pdf = new jsPDF('', 'pt', 'a4');

                // , html , pdf (841.89)
                // pdf , 
                if (leftHeight < pageHeight) {
                    pdf.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight );
                } else {
                    while(leftHeight > 0) {
                        pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
                        leftHeight -= pageHeight;
                        position -= 841.89;
                        // 
                        if(leftHeight > 0) {
                            pdf.addPage();
                        }
                    }
                }

                pdf.save(str+".pdf");
            }
        });

내보내기 전에 내보낼 부분의 배경색을 채워야 합니다. 그렇지 않으면 검은 블록을 내보낼 수 있습니다.

좋은 웹페이지 즐겨찾기