본문 바로가기
웹 개발 이야기/php

[PHP] 현재 보고있는 화면 캡쳐 후, 다운로드 / 인쇄

by Gommin 2023. 3. 16.

// 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>


출처 : https://sub0709.tistory.com/48

'웹 개발 이야기 > 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

댓글