목차

로컬 PDF 파일 직접 보기 가이드

이 화면은 전용브라우저 환경에서 로컬 PC에 있는 PDF 파일을 보기위한 샘플 화면이다.

예시

템플릿 위치: /HTML5/UTIL/XPLUS/xplus_localpdfviewer

템플릿 파일

화면 스크립트

function screen_on_load()
{
}

// "PDF 로드" 버튼 이벤트
function btn_loadlocalpdf_on_mouseup(objInst)
{
	var file_object;

	// PDF 파일에 대한 파일 오브젝트 생성
	file_object = factory.xpluscreatefileobject("C:\\xFrame5\\doc\\92_xFrame5_Browser_Guide.pdf");
	if (file_object) {
		// 파일 오브젝트를 내용에 대한 데이터 URL 생성
		factory.createdataurlbyobject(file_object, screen, "on_dataurl_complete", "92_xFrame5_Browser_Guide.pdf");
	}
}

// 파일 오브젝트에서 Data URL 생성 완료 콜백
function on_dataurl_complete(data_url, data_url_name)
{
	var data_start_pos, html_arr;

	// 데이터 URL에서 데이터만 추출
    data_start_pos = data_url.indexOf(',');
    if (data_start_pos > -1) {
        data_url = data_url.substr(data_start_pos + 1);
    }

	LoadPdfInDiv(data_url);

	LoadPdfInWebBrowser(data_url);
}

// DIV 컴포넌트 내부에 PDF 표시, PDF 툴바 표시 불가
function LoadPdfInDiv(pdf_data)
{
	var html_arr;

	html_arr = [];

	html_arr.push('<object');
	html_arr.push(' type="application/pdf"');
	html_arr.push(' style="position:absolute;display:block;padding:0px;margin:0px;width:100%;height:100%;"');
	html_arr.push(' data="data:application/pdf;base64,');
	html_arr.push(pdf_data);
	html_arr.push('">"');

	// html_arr.push('<embed'
	// html_arr.push(' type="application/pdf"');
	// html_arr.push(' style="position:absolute;display:block;padding:0px;margin:0px;width:100%;height:100%;"');
	// html_arr.push(' src="data:application/pdf;base64,');
	// html_arr.push(pdf_data);
	// html_arr.push('"/>"');

	html_arr.push('</object>');

	div.setinnerhtml(html_arr.join(""));
}

// 웹브라우저 컴포넌트 내부에 PDF 표시, PDF 툴바 자동 표시되며, 툴바 표시/숨김 제어 불가
function LoadPdfInWebBrowser(pdf_data)
{
	var html_tbody, html_arr;

	html_arr = [];

	html_arr.push('<!doctype html>');
	html_arr.push('<html lang="ko">');
	html_arr.push('<head>');
	html_arr.push('<meta charset="utf-8">');
	html_arr.push('<meta name="viewport" content="width=device-width, initial-scale=1">');
	html_arr.push('<meta http-equiv="cache-control" content="no-cache">');
	html_arr.push('<meta http-equiv="pragma" content="no-cache">');
	html_arr.push('</head>');

	html_arr.push('<body style="margin:0px;padding:0px;">');

	html_arr.push('<object');
	html_arr.push(' type="application/pdf"');
	html_arr.push(' style="position:absolute;display:block;padding:0px;margin:0px;width:100%;height:100%;"');
	html_arr.push(' data="data:application/pdf;base64,');
	html_arr.push(pdf_data);
	html_arr.push('">"');

	// html_arr.push('<embed'
	// html_arr.push(' type="application/pdf"');
	// html_arr.push(' style="position:absolute;display:block;padding:0px;margin:0px;width:100%;height:100%;"');
	// html_arr.push(' src="data:application/pdf;base64,');
	// html_arr.push(pdf_data);
	// html_arr.push('"/>"');

	html_arr.push('</object>');

	html_arr.push('</body>');
	html_arr.push('</html>');

	// 웹브라우저 컴포넌트 내부 HTML 내용 설정, 페이지 로드 완료시, on_pageload 이벤트 발생함
	this.web.sethtml(html_arr.join(''));
}