// html2canvas 라이브러리를 이용한다.
// 여기서는 라이브러리 파일을 다운로드 하지 않고 CDN을 이용했다.
<script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
// GET 방식으로 act 파라미터 값에 print 또는 download 둘 중 하나의 값을 넣는다.
<?
// 다운로드와 인쇄 중 어느 것을 이용할 것인지 구분
$act = $_GET['act'];
?>
// 소스코드 가장 아래 부분에 넣어주면 된다.
// 단순 이벤트 발생을 위한 a 태그이다.
// 소스코드 아래에 추가
// 이벤트 발생에 이용
<a id="target" style="display: none"></a>
<a id="a_download" style="display: none"></a>
// 화면이 노출되고 act 값을 이용하여 인쇄를 할 것인지, 아니면 이미지 다운로드를 할 것인지 구분 후, 해당하는 기능 실행
<script>
$("#a_download").on('click', function(e) {
// 이미지 캡쳐 후 다운로드
html2canvas(e.target.parentElement).then(function(canvas) {
if (navigator.msSaveBlob) {
var blob = canvas.msToBlob();
return navigator.msSaveBlob(blob, '수료증_<?= date("YmdHis") ?>.jpg');
} else {
var el = document.getElementById("target");
el.href = canvas.toDataURL("image/jpeg");
el.download = '수료증_<?= date("YmdHis") ?>.jpg';
el.click();
}
});
})
$(document).ready(function() {
<?
if($_GET['act']=='print'){
?>
window.print();
<?
}else{
?>
$("#a_download").click();
<?
}
?>
})
</script>
'웹 개발 이야기 > php' 카테고리의 다른 글
[PHP] pagination (0) | 2023.03.16 |
---|---|
[PHP] Excel data upload (0) | 2023.03.16 |
[PHP] AWS S3 Bucket에 파일 업로드 (0) | 2023.03.16 |
[PHP] 스팸글 등록 방지를 위한 아주 간단한 방법 (0) | 2023.03.13 |
[PHP] calendar_basic (0) | 2023.03.09 |
댓글