페이지 접속시 파라미터 this->reqData 필드를 읽어서
print시 인쇄
pdf 시 pdf 다운로드
if($this->reqData['type']=='print'){
$this->addScript('
window.onload= function(){
setTimeout(function() {
window.print();
}, 100);
}
');
}else if($this->reqData['type']=='pdf'){
$this->addScriptFile("https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.2.61/jspdf.min.js");
$this->addScriptFile("https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js");
$this->addScript('
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 = 10;
doc.addImage(imgData, "JPEG", 10, position, imgWidth, imgHeight);
heightLeft -= pageHeight;
// 한 페이지 이상일 경우 루프 돌면서 출력
while (heightLeft >= 10) {
position = heightLeft - imgHeight;
doc.addPage();
doc.addImage(imgData, "JPEG", 10, position, imgWidth, imgHeight);
heightLeft -= pageHeight;
}
doc.save("화면.pdf");
}
});
}, 100);
}
');
}
'개발 > javascript' 카테고리의 다른 글
script radio checked value 가져오기 (0) | 2021.08.10 |
---|---|
script file upload 비동기 파일 업로드 (0) | 2021.08.10 |
javascript input text value 클립보드 복사 (0) | 2021.08.02 |
javascript checkbox class 선택자 전체 체크 해제 (0) | 2021.07.30 |
javascript radio 버튼 체크 데이터 get (0) | 2021.07.29 |
댓글