- pdf 파일의 변경 빈도가 꽤 잦았기 때문에 효율성이 매우 떨어졌다.
- 스크롤, 페이지별로 이동, 줌 제어 등등
- 줌, 페이지 이동, 인쇄 등 다양한 기능이 제공된다.
위 블로그를 통해 브라우저마다 다양한 viewer의 동작을 알 수 있었다.
- 감사합니다.
- 또한 실제 html나 jsp 파일에는 iframe 한 줄만 넣으면 되기 때문에 간단하게 pdf viewer를 사용할 수 있었다.
<iframe id="myPDF" scr="/pdfjs/web/viewer.html?file=files/myPDF.pdf"></iframe>
pdf viewer를 넣고 싶은 곳에 위에 태그를 넣어준다.
[zoom]
, [left offset]
, [top offset]
, page-width
, page-height
, page-fit
, auto
<iframe id="myPDF" scr="/pdfjs/web/viewer.html?file=files/myPDF.pdf#zoom=50&page=3"></iframe>
또한 iframe의 태그 옵션을 이용해서 변환할 수 있다.
<iframe id="myPDF" scr="/pdfjs/web/viewer.html?file=files/myPDF.pdf#zoom=50&page=3" width="500px" height="1000px"></iframe>
- 참고로 class 에 hidden 을 추가해주면 숨길 수 있다.
var pdfView = document.getElementById("myPDF").contentWindow.document;
console.log(pdfView.getElementById("viewerContainer"));
var pdfView = document.getElementById("myPDF").contentWindow.document;
var maxValue = pdfView.getElementById("pageNumber").getAttribute("max");
console.log(maxValue);
var maxValue;
const pdfView = document.getElementById("myPDF").contentWindow.document;
setTimeout(() => {
maxValue = pdfView.getElementById("pageNumber").getAttribute("max");
}, 3000);
console.log(maxValue);
- 최대 로드 시간을 추측해야하는 큰 단점이 있다. 비추이긴 하다^^
- loading : 로딩 중
- interactive : 로딩은 끝이지만 images, stylesheets, frames과 같은 하위 자원들은 로딩되고 있는 상태
- complete : 하위 자원까지 로딩 완료, 이 상태는 load 이벤트가 발생되기 직전 상태
var maxValue;
const pdfView = document.getElementById("myPDF").contentWindow.document;
if(pdfView.readyState == "complete") {
maxValue = pdfView.getElementById("pageNumber").getAttribute("max");
}
function checkLoadDocument(pdfView) {
if(pdfView.readyState == "complete") {
maxValue = pdfView.getElementById("pageNumber").getAttribute("max");
} else {
setTimeout(checkLoadDocument(pdfView), 1000);
}
}
Reference: