canvas 를 pdf로 변환할때 페이지 밀림현상
본문
$('#savePdf').click(function() { // pdf저장 button id
html2canvas($('#pdfDiv')[0]).then(function(canvas) { //저장 영역 div id
var imgData = cnvs.toDataURL('image/jpeg');
var imgWidth = 190; // 이미지 가로 길이(mm) A4 기준
var pageHeight = imgWidth * 1; // 출력 페이지 세로 길이 계산 A4 기준
var imgHeight = cnvs.height * imgWidth / cnvs.width + 50;
var heightLeft = imgHeight;
var margin = 10;
var doc = new jsPDF('p', 'mm', 'a4');
var position = 0;
// 첫 페이지 출력
doc.addImage(imgData, 'jpeg', margin, position, imgWidth, imgHeight);
heightLeft = heightLeft - pageHeight - 100;
// 한 페이지 이상일 경우 루프 돌면서 출력
while (heightLeft >= 50) {
position = heightLeft - imgHeight;
doc.addPage();
doc.addImage(imgData, 'jpeg', margin, position, imgWidth, imgHeight);
heightLeft = heightLeft - pageHeight - 100;
}
// 파일 저장
doc.save('sample.pdf');
});
이렇게 해서 여러페이지가 생성이 되는데요.
페이지가 넘어갈수록 윗 여백이 밀립니다.
해결방법이 있을까요?
답변 2
어떤 라이브러리를 사용했는지는 모르겠지만,
미국식 기준은 레터지입니다.
A4용지가 더 길죠. A4를 레터로 하면 조금씩 넘어갈 수도 있는데..
혹시 모르니 이 부분도 체크해 보세요.
그리고
https://stackoverflow.com/questions/36472094/how-to-set-image-to-fit-width-of-the-page-using-jspdf
여기도 참조해 보세요
네~ 감사합니다.