일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- auth0
- PDO
- CI/CD
- EM6
- web
- package-lock.json
- vue
- PHP
- VR
- vuex
- aframe
- Three.js
- A-Frame
- npx
- Node
- JS
- promise
- JavaScript
- WebXR
- vue-template-compiler
- 상태관리
- version mismatch
- 3d
- AR
- javscript
- vuetify
- WebVR
- bootstrap
- Component
- array
Archives
- Today
- Total
대가는 결과를 만든다
웹 페이지 특정 element 인쇄 하기 예시 본문
반응형
QR코드 이미지를 전체화면으로 출력하는 예시
const html = document.querySelector('html');
//qr code가 담겨 있는 img dom element 객체로 resource 가져오기
const printContents = document.querySelector(`.qr-code-container`).childNodes[0];
const imgResource = printContents.toDataURL();
//출력할 img dom을 담을 container div 생성
const printDivContainer = document.createElement('div');
printDivContainer.style = `
width:100%; height: 100%;
display:flex; justify-content:center; align-items:center;
`;
//qr code를 담을 img element를 생성하여 container에 담기
const imgEl = document.createElement('img');
imgEl.style = `width:${QR_WIDTH}px; height:${QR_HEIGHT}px;`;
printDivContainer.appendChild(imgEl);
//img load가 비동기이므로 load된 후 print를 실행해야 한다.
imgEl.onload = () => {
//body 전체를 안보이도록 처리
document.body.style.display = 'none';
//html dom에 출력할 dom append
html.appendChild(printDivContainer);
//출력 함수 호출
window.print();
//출력 창 띄운 후 원래 페이지 상태로 복귀
document.body.style.display = 'block';
html.removeChild(printDivContainer);
};
//img element에 리소스 대입
imgEl.src = imgResource;
'개발 > Web관련' 카테고리의 다른 글
PWA(Progressive Web App) (0) | 2020.04.12 |
---|---|
웹페이지 Viewport와 Element의 절대/상대위치 구하기 (0) | 2020.04.04 |
HTTPS & HTTP의 패킷 평문 노출 여부 Wireshark로 확인 (2) | 2020.03.30 |
SSO를 위한 대표적인 두가지 방법 - SAML과 OAuth 간단 정리 (0) | 2020.02.14 |
ACM 인증서 발급 및 ELB 기본인증서 설정 삽질 로그 + 메신저 웹뷰 이슈 (0) | 2019.12.21 |
Comments