PDF ํ์ผ์ ์ฐ๊ฒฐ :
default.pdf
๊ตฌ์ฑ :
๋ฌธ์ ๋ฅผ ์ฌํํ๋ ๋จ๊ณ :
์์๋๋ ๋์์ ๋ฌด์์
๋๊น? (์คํฌ๋ฆฐ ์ท ์ถ๊ฐ)
๋ฌด์์ด ์๋ชป ๋์๋์? (์คํฌ๋ฆฐ ์ท ์ถ๊ฐ)
๋ชจ๋ ๋ทฐ์์ ๋ฐ์ํ๋ ๋๋ ๋ค์ด๋ก๋ ๋๋ฌธ์ ์์ ์๋ฅผ ๋นํ์ฑํ ํ ์๋ ์์ต๋๋ค.
์ด ๋ถ๋ถ์ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น?
getDocument๋ฅผ ์ฌ๋ฌ ๋ฒ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ๋จ์ผ PDFWorker ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ์ญ์์ค. ๊ธ๊ผด์ด ์์๋๋ ์์ธ์ ๋งํ๊ธฐ๋ ์ด๋ ต์ง๋ง ์์ ์์ ์ ๋ํ ๋งํฌ๊ฐ ์์ผ๋ฉด ์ฝ๊ฐ์ ๋น์ ๋ฐํ ์ ์์ต๋๋ค. ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ์์ ๋ฅผ ์์ฑ / ๊ฒ์ ํ ์ ์์ต๋๊น?
์๊ฒ ์ต๋๋ค. ๋งํฌ๋ฅผ ์ฝ๊ฒ ๊ฒ์ ํ ์ ์์ต๋๋ค. ์์ ์๊ฐ ํ์ฑํ ๋ ์ํ์์ ์คํํ๋ฉด 100 % ์๋ํฉ๋๋ค. ๋นํ์ฑํ ํ๋๊ทธ๋ฅผ ์ค์ ํ๋ฉด ์์ ํ์๋ ๋ฌธ์ ๊ฐ ๋ฌด์์๋ก ํ์๋ฉ๋๋ค.
์ ๋ "์"์์ ์๋ฅผ ๋นํ์ฑํํ๊ณ ์๋์ง ์์ธํ ์ค๋ช ํ์ฌ "์์ ์๋ฅผ ํ์ฑํ"๋ผ๋ ์๋ต์ ์์ํ์ต๋๋ค. ์ฆ, ๋ง์ ์์ PDF๋ฅผ ์๋นํ ๋น ๋ฅด๊ฒ ํ์ํ๊ณ pdf_worker.js ์ฉ 1.2Mb ๋ค์ด๋ก๋๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ๊ฐ ๋์คํ๋ ์ด๋ ์ค์ฉ์ ์ด์ง ์์ต๋๋ค. ์น ์์ ์ ์ฝ๋๋ฅผ ์ดํด๋ณด๊ณ ์์ ์๊ฐ ํธ์ถ ๋ .js ์คํฌ๋ฆฝํธ๋ฅผ ์บ์ ํ ์์๋ ์ต์ ์ด ์๋์ง ํ์ธํ์ง๋ง ์๋ฌด๊ฒ๋ ์ฐพ์ง ๋ชปํ์ต๋๋ค.
๋ด ์ด๊ธฐ ์ถ์ธก (ํจ๊ณผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก)์ ์คํฌ๋ฆฝํธ๊ฐ ๊ฐ ์ธ์คํด์ค์ ๋ํด๋ก๋๋๋ฉด ์ฌ๋ฐ๋ฅด๊ฒ ์ง์์ง๋ ์ ์ญ ๋ฒ์๊ฐ ์ด๋๊ฐ์์์ด ์คํฌ๋ฆฝํธ ๋ ์์ ์๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฌ์ฉ๋๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ (!) ๋ฌธ์ ๊ฐ FIRST pdf ๋์คํ๋ ์ด์์ ๋ฐ์ํ ์ ์๋ค๋ ์ ์ ๊ฐ์ํ ๋ ๋ฌด์์๋ณด์์ผํ ์ง ์๊ธฐ ์ํด ์ฝ๊ฐ์ ์์ค์ด ์์ต๋๋ค.
์ ๋ "์"์์ ์๋ฅผ ๋นํ์ฑํํ๊ณ ์๋์ง ์์ธํ ์ค๋ช ํ์ฌ "์์ ์๋ฅผ ํ์ฑํ"๋ผ๋ ์๋ต์ ์์ํ์ต๋๋ค. ์ฆ, ๋ง์ ์์ PDF๋ฅผ ์๋นํ ๋น ๋ฅด๊ฒ ํ์ํ๊ณ pdf_worker.js ์ฉ 1.2Mb ๋ค์ด๋ก๋๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ๊ฐ ๋์คํ๋ ์ด๋ ์ค์ฉ์ ์ด์ง ์์ต๋๋ค.
@oddjobz ๋๋ ์ฌ์ ํ ์ฐ๋ ค๋ฅผ ์ดํดํ์ง ๋ชปํฉ๋๋ค. ์ฅ์ ์ธ ์์ ์๋ฅผ ์ฌ์ฉํ๋ฉด _still_ pdf.worker.js๋ฅผ ๋ค์ด๋ก๋ํ์ง๋ง ์ฃผ ์ค๋ ๋์์ ๋ฐ์ํฉ๋๋ค. ์น ์๋ฒ์์ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ํ๋ฉด ์ ์ ์๋ฐ ์คํฌ๋ฆฝํธ ํ์ผ์ ์บ์ฑํ๊ณ ์ถ๊ฐ ๋ ธ๋ ฅ์์ด ๊ฐ ์์ฒญ์ ๋ํด 1.2Mb ๋ค์ด๋ก๋๋ฅผ ํผํ ์ ์์ต๋๋ค. PDFWorker๋ ๋จ์ผ ํ์ด์ง์์ ์น ์์ ์์ ์ธ์คํด์ค๋ฅผ ์บ์ฑํ๋ ๋ฐ ๋์์ด๋ฉ๋๋ค (์ : ์ฌ๋ฌ getDocuments ์ํ์).
์ด ๋ฌธ์ ๊ฐ ์๋ฃจ์ ์ ๋ํ ์ฝ๋์์ด ์๋ฃ๋์๋์ง ํ์คํ์ง ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก PDF.js๋ ํ์ค ๋ธ๋ผ์ฐ์ (๊ธฐ๋ณธ ๊ตฌ์ฑ)๊ฐ์๋ ํ์ค ์น ์๋ฒ์์ ์ฌ์ฉํ ๋ ์น ์์ ์ ์ฝ๋๋ฅผ ์บ์ํฉ๋๋ค.
๊ธ์์, ์ ๊ฐ ์ฌ์ฉํ๊ณ ์๋ ์ฝ๋์ ๋น์ ์ด ๊ฐ์ง๊ณ ์๋ ์ฝ๋์ ์ฐจ์ด์ ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ด๋๊ฐ์ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ์ฒซ์งธ, ์์ ์๊ฐ ๋นํ์ฑํ ๋ ์ํ์์ pdf_worker.js๋ ์ฒซ ๋ฒ์งธ ํํธ "only"์์ ํ ๋ฒ๋ก๋๋ฉ๋๋ค. ์์ ์๋ฅผ ํ์ฑํํ๋ฉด ๋ชจ๋ ์ ๋ฌธ์์ ์ฝ๋๋ฅผ๋ก๋ํ๊ณ ๋ด๊ฐํ๋ ์ผ์ ์บ์ฑ์ ์ํฅ์์ฃผ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. (์ฆ, ์บ์๋์ง ์์) Chrome ๊ฐ๋ฐ์๊ฐ ์น ์์ ์ ๋ฐ ์บ์ ๋ ์ฝ๋์ ๋ฌธ์ ๊ฐ ์์๊ธฐ ๋๋ฌธ์ ์บ์๋ฅผ ํด์ ํ๋ค๊ณ ์์ฌํฉ๋๋ค. ๋ด๊ฐ ๋ณผ ์์๋ ํ ๋ชจ๋ ํค๋๋ ์บ์ฑ์ ์ํด ์์ด์ผํ์ง๋ง ์บ์ฑ์ด ๋ฐ์ํ์ง ์์ต๋๋ค. (๋ค๋ฅธ ๊ฒ๋ค์ _is_ ์บ์ ๋จ)
์ธ ๊ฐ์ง ๊ด๋ จ ๋นํธ๊ฐ ์์ต๋๋ค.
ใ
. ์คํฌ๋ฆฝํธ ํ๊ทธ๊ฐ์๋ ๊ธฐ๋ณธ ์ฝ๋ ๋ธ๋ก
๋น. ์ ์ญ ๋ณ์๋ฅผ ์ค์ ํ๋ Onload
์จ. DIV์์ PDF๋ฅผ ํ์ํ๋ ๋
๋ฆฝํ ํด๋์ค
๋ฉ์ธ ์ฝ๋ ๋ธ๋ก;
<script type="text/javascript" src="js/compatibility.js"></script>
<script type="text/javascript" src="js/pdf.js"></script>
์จ๋ก๋ ์ฝ๋;
PDFJS.disableWorker = true;
PDFJS.verbosity = PDFJS.VERBOSITY_LEVELS.debug;
PDFJS.workerSrc = "/js/pdf.worker.js";
ํด๋์ค ์ ์;
JS.require('JS.Class',function(Class) {
CLASS.PDFViewer = new Class({
locked : false,
page : 0,
pages : 0,
pdf : null,
doc_id : null,
initialize: function(prefix) {
this.canvas = prefix+'-canvas'; // Canvas element ID we'll be rendering to
this.prefix = prefix;
this.id_page = '#'+this.canvas+'-page'; // Ident of page number
this.id_pages = '#'+this.canvas+'-pages'; // Ident of page count
this.setfocus(null); // Element to focus after render
},
reset: function() { this.now_showing = null; console.log("PDF Reset")},
set: function(doc_id) { this.doc_id = doc_id; console.log("Docid:",doc_id) },
load: function() { this.fetch(this.doc_id); },
set_doc: function() {},
setfocus: function(field_id) { this.focuson = field_id; },
decode: function(base64) {
var raw = atob(base64);
var uint8Array = new Uint8Array(raw.length);
for (var i = 0; i < raw.length; i++) {
uint8Array[i] = raw.charCodeAt(i);
}
return uint8Array;
},
full_screen: function() {
if( $('#'+this.prefix+'-hide-me').is(':visible') ) {
$('#'+this.prefix+'-hide-me').hide();
$('#'+this.prefix+'-full-screen').removeClass("col-sm-7");
$('#'+this.prefix+'-full-screen').addClass("col-sm-12");
} else {
$('#'+this.prefix+'-hide-me').show();
$('#'+this.prefix+'-full-screen').removeClass("col-sm-12");
$('#'+this.prefix+'-full-screen').addClass("col-sm-7");
}
this.turn_page();
},
focus: function() {
if(this.focuson) {
console.log("SetFocus>>",this.focuson);
setTimeout("$('"+this.focuson+"').focus()",100);
this.focuson = null;
}
},
display: function(pdf) {
this.pdf = pdf;
$(this.id_pages).text(this.pdf.numPages);
this.pages = this.pdf.numPages;
this.page = 1;
this.turn_page();
},
fetch: function(rid) {
if(this.locked) return false;
var self = this;
var src = '/images/default.pdf';
function success(data) {
if(!LIB.check_error(data)) return false;
if(data.pdf) src = self.decode(data.pdf);
self.locked = true;
PDFJS.getDocument(src).then(function(pdf){ self.display(pdf); });
return true;
}
ionman.call('nac.rpc.pdf_spec',{'rid': rid},success)
return true;
},
turn_page: function() {
var self = this;
self.pdf.getPage(self.page).then(function(page) {
var canvas = document.getElementById(self.canvas);
var ctx = canvas.getContext('2d');
var unscaledViewport = page.getViewport(1.0);
canvas.width = $('#'+self.canvas).width();
var scale = canvas.width / unscaledViewport.width;
var viewport = page.getViewport(scale);
canvas.height = viewport.height;
var renderContext = { canvasContext: ctx, viewport: viewport };
page.render(renderContext).promise.then(function(){
setTimeout(function(){
self.locked = false;
self.focus();
},250);
});
$(self.id_page).text(self.page);
});
},
next: function() {
if( this.page == this.pages) return;
this.page += 1;
this.turn_page();
},
prev: function() {
if( this.page == 1) return;
this.page -= 1;
this.turn_page();
}
});
๊ทธ๋์ ๋๋ํฉ๋๋ค.
var viewer = CLASS.PDFViewer('pdf');
viewer.fetch();
๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ณธ ๋ฌธ์๋ ID๊ฐ "pdf-canvas"์ธ DIV์ ๋๋ค.
์ด๊ฒ์ ์๋ํด ๋ด ์๋ค :
PDFJS.getDocument('http://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf')
์ฝ๋ ์กฐ๊ฐ์ ๋์์ด๋์ง ์์ต๋๋ค. ์ด๋๊ฐ์ ์์ ์์ ๋ฅผ ๋ฐฐํฌํ์ญ์์ค (์ : github ํ์ด์ง).
๊ทธ๋, ๋๋ ๊ทธ๊ฒ์ ๋ณธ๋ค .. ์ด๊ฒ์ ๋ด๊ฐ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค PDF.js์ ์ต์ ๋ฒ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค .. ์ฐจ์ด๊ฐ ๋ฌธ์ ๊ฐ ์๋๋ผ๊ณ ๊ฐ์ ํ๋ฉด Varnish๊ฐ ๋ด ์น ์๋ฒ์ ๋ํด ๋ด๋์ ํค๋๋ฅผ ๋น๊ตํ์ฌ ์บ์ฑ์ด ์๋ ์ด์ ๋ฅผ ์ ์ ์์ต๋๋ค.
์ ๋ Chrome ๊ฐ๋ฐ์๊ฐ ์น ์์ ์ ๋ฐ ์บ์ ๋ ์ฝ๋์ ๋ฌธ์ ๊ฐ ์์๊ธฐ ๋๋ฌธ์ ์บ์ฑ์ ํด์ ํ๋ค๊ณ ์์ฌํฉ๋๋ค.
์ด ์ต์ ๊ณผ disableWorker ์ต์ ์ฌ์ด์ ์ฐ๊ฒฐ์ด ํ์๋์ง ์์ต๋๋ค. pdf.worker.js๋ ์ฐธ ๋๋ ๊ฑฐ์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ์์ฒญ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋ฌธ์ ๋ ์บ์ฑ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
๊ฐ๋จํ๊ฒ ์ค๋ช ํ๊ธฐ ์ํด ๋ฉ์์ง๊ฐ disableWorker ๋ชจ๋์์ ์๋ํ๋ ๋ฐฉ์๊ณผ ์ฐ๊ฒฐ๋์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค (์ค์ ๋ก ํ ์คํธ๋์ง ์์์ผ๋ฉฐ ๋ ๊ฑฐ์ ๋ธ๋ผ์ฐ์ ๋ฐ ๋๋ฒ๊น ์ฉ์ด์ฑ์ ์ง์ํ๊ธฐ ์ํด์๋ง ์์ฑ๋จ). ๋ฌธ์ ๊ฐ ๋์ ๋ณด์ด๋ ์ต์ํ์ ํ ์คํธ ์ผ์ด์ค๋ฅผ ๊ฐ๋๋ก ๋ฌธ์ ๋ฒ์๋ฅผ ์ขํ๋ ๋ฐ ๋์์ด๋ฉ๋๋ค (์จ๋ผ์ธ ์ก์ธ์ค ๊ฐ๋ฅ).
์ข์, ์ด๊ฒ์ ํฅ๋ฏธ๋ก์ด .. ๋๋ฏธ ์ธ์ฆ์ (์ฌ๊ธฐ์ ํธ์คํธ ์ด๋ฆ! = localhost)์์ localhost : 8443 ์ ๋ํด ํ ์คํธํ๋ ๊ฒ์ ๋๋ค. ์บ์ํ์ง ์์ต๋๋ค. ์ ํจํ ์์ฉ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ผ์ด๋ธ ์๋ฒ ํฌํธ 443์ ๋ํด ํ ์คํธ ํ ๋ ์บ์ (!)๋ฅผ ์ํํฉ๋๋ค. ์ด์ ์น ์์ปค๋ฅผ ํ์ฑํํ๊ณ ์ด๋ค ์ผ์ด ๋ฐ์ํ๋์ง ์ดํด ๋ณด๊ฒ ์ต๋๋ค. (ํ์ง๋ง ์ด๋๊ฐ์ ์ฌ์ ํ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค ...)
์ ๊ฐ ๋ฏฟ์ ์ ์์์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค .. ๊ทธ๋์ ์คํฌ๋ฆฐ ์ท์ ์ถ๊ฐํ์ต๋๋ค ...
์บ์ ๋นํ์ฑํ๋ ํ์คํ _not_ ์ ํ๋์์ต๋๋ค ...
(์น ์๋ฒ ๊ตฌ์ฑ์ ๋์ผ ํจ)
์ฌ๊ธฐ์ ํ ์ผ์ด ๋ ์์ต๋๊น? ๋ด๊ฐ ์ดํดํ๋ ๋ฐ์ ๋ฐ๋ฅด๋ฉด ์ด๊ฒ์ PDF.js์ ๋ฒ๊ทธ์ฒ๋ผ ๋ค๋ฆฌ์ง ์๊ณ ์ฌ์ฉ์ ์ ์ ๊ตฌํ์์ ๋ฐ์ํฉ๋๋ค.
์ด (๊ฐํ์ ์ธ?) ์คํจ๋ฅผ ์ฌํ ํ ์์๋ ํ ์คํธ ์ผ์ด์ค๊ฐ ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
๋ฒ๊ทธ์ ๋๋ค. ์จ๋ผ์ธ ๋ฐ๋ชจ๋ฅผ ๋ง๋ค ๊ฒ ์ง๋ง ์ฝ๋ฉ๊ณผ ์๊ฐ์ด ์กฐ๊ธ ๊ฑธ๋ฆฝ๋๋ค.
์๋ ํ์ธ์, ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์ฌ๊ธฐ์ ์ฌ์ฉ์ ์ง์ ๋ด์ฉ์ด ์์ต๋๋ค. ๋ฐฉ๊ธ Github์์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ค์ด๋ก๋ํ์ต๋๋ค.
@ subhadip-codeclouds ๊ฐ์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋ณ๋์ ๋ฌธ์ ๋ฅผ ์ด๊ณ ์์ฒญ ๋ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ญ์์ค.
@ subhadip-codeclouds์ด PDF๋ ์ด๋์์ ์ฐพ์ ์ ์์ต๋๊น? ๋น์ทํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ํ ์คํธ ์ผ์ด์ค๋ก ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค.
Chrome๊ณผ Ubuntu์์ ๋์ผํ ๊ธ๊ผด ๋ ๋๋ง ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค (๋ค๋ฅธ ํ๋ซํผ์ ํ ์คํธํ์ง ์์์ต๋๋ค). ๋ง์คํฐ์ ์ต์ pdf.js๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ๋๋ก๋ PDF๊ฐ @oddjobz ์ PDF์ฒ๋ผ
๋๋ ๋ฌด์์ด ์๋ชป๋์๋์ง ๋๋ ๊ทธ๊ฒ์ ์์ ์ ์ผ๋ก ์ฌํํ๋ ๋ฐฉ๋ฒ์ ์ ๋ง๋ก ๋ชจ๋ฅธ๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ์๋๋ฆฌ์ค์ ๋๋ค. React๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ๋จ์ผ ํ์ด์ง ์น ์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ๊ณ ์์ต๋๋ค. ์ฌ์ฉ์๋ ์ข ์ข ํญ์ ํด๋ฆญํ๋ฉด iframe์ด ์์ฑ๋๊ณ iframe ๋ด์ pdf.js๊ฐ ํ์๋ฉ๋๋ค. React์ ๋ด ์น ์ฌ์ดํธ๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๊ฐ์ํ ๋ iframe์ด ์์ฑ๋๊ณ ํ๊ดด๋ฉ๋๋ค. ์๊ฐ์ด ์ข ๊ฑธ๋ฆด ์ ์์ง๋ง ๊ฒฐ๊ตญ์๋ ํญ์ ๊ธ๊ผด ๋ ๋๋ง ์์์ด ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ PDF์์ ๋ฐ์ํ๋ฉด ๋ค๋ฅธ PDF์์๋ ๋ฌด์์๋ก ๋ฐ์ํ๊ธฐ ์์ํฉ๋๋ค. ์ผ๋ถ๋ ํญ์ ๊ด์ฐฎ๊ณ ์ผ๋ถ๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์์ ๋ด๊ธฐ ์ํด ์ผ๊ฑฐ๋ ํ ์์๋ ๊ฒ์ด ์์ต๋๊น (์ : ๋๋ฒ๊ทธ ํ๋๊ทธ)? ์ฝ์์ ์ค๋ฅ๋ ๊ฒฝ๊ณ ๊ฐ ํ์๋์ง ์์ต๋๋ค.
๋ค์์ ์์์ ๊ฑฐ์ ํญ์ ๊ธ๊ผด ๋ ๋๋ง ์์์ผ๋ก ๋๋๋ PDF์
๋๋ค.
https://datalanche-sec-public.s3.amazonaws.com/filings/0001047469-15-008315/a2226328zex-31_2.htm.pdf
ํ๋ ๋. ๋์ผํ URL๋ก Chrome์์ ์ ํญ์ ์ด๋ฉด PDF๊ฐ ์์ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋์ผํ ํญ์ ๋จธ๋ฌด๋ฅด๊ณ ์์ ํ ๋ค๋ฅธ ์น ์ฌ์ดํธ๋ก ์ด๋ ํ ๋ค์ ๋ค๋ก ๋จ์ถ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ด ์น ์ฌ์ดํธ๋ก ์ด๋ํ๋ฉด ๊ธ๊ผด์ด ์์๋ PDF๊ฐ ์ฌ์ ํ ์์๋ฉ๋๋ค. ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ๋ ํญ์ ๋ฉ๋ชจ๋ฆฌ ๋ฐ / ๋๋ ์บ์๊ฐ ์์๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
Chrome์ ์บ์ฑ ๋ฌธ์ ์ผ ์ ์์ต๋๋ค (์์ธํ ๋ด์ฉ์ https://github.com/mozilla/pdf.js/issues/7751#issuecomment-256683285 ์ฐธ์กฐ).
์ด๊ฒ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ๊ฐ์ ๋ฌธ์ ๊ฐ
๋๋๋ก (์ค๋ช ํ ์์๋) ์ด๊ฑธ ๋ณผ ์ ์์ง๋ง, ๋งค์ฐ ๋๋ฌผ๊ณ ์ค์ ๋ก ์ถฉ๋ถํ ๋๋ฌผ์ง๋ง ๊ฑฑ์ ์ ๋ฉ์ท์ต๋๋ค. ๋ด๊ฐ ๊ฐ์ง ๋ฌธ์ ๋ ์ค๋ณต ์์ ์ด์์ต๋๋ค. ๋ค๋ฅธ ์์ ์ด ์์ง ์งํ์ค์ธ ๋์ pdf ๋ฌธ์ (์ : ๋ค์ ํ์ด์ง)์์ ์์ ํ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ด ์๋ฃจ์ ์ ํด๋์ค์ ๋ชจ๋ ์์ ์ ๋ํ ํ ๋ค์ ์์ ๋ฐ ์ข ๋ฃ ์ง์ ์ ๋ง์คํฐ ์ ๊ธ์ ์ฝ์ ํ์ฌ pdf ๊ด๋ จ ์์ ์ด ์ถฉ๋ํ์ง ์๋๋กํ๋ ๊ฒ์ด ์์ต๋๋ค. ์ด๊ฒ์ "๋๋ฅผ ์ํด ์์ ๋ ๊ฒ ๊ฐ์ต๋๋ค". ๋๋ pdf ํญ๋ชฉ์ด ๋ณ๋์ ์ค๋ ๋ ๋๋ ์์ ์ ํ๋ก์ธ์ค์์ ์คํ๋๋ฏ๋ก ์ถฉ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ค๊ณ ๋ชจํธํ๊ฒ ๊ฐ์ ํ๊ณ ์์ต๋๋ค. ์กฐ๊ธ ์ ์ด์์ง๋ง ๋ฉ๋ชจ๋ฆฌ์์ ์ค๋ ๋ฉ์ด ์ต์ ์ด๋ผ๊ณ ์๊ฐํ๊ณ ๋นํ์ฑํํ์ฌ ์๋ฃจ์ ์ ๋ฐ๊ฒฌํ๋๋ฐ ์ฑ๋ฅ์ ๋ถ์ ์ ์ธ ์ํฅ์ ์ฃผ์์ง๋ง ๋ฌธ์ ๋ ํด๊ฒฐ๋์์ต๋๋ค.
ํญ์ ๋์๊ฒ ๋ฐ์ํ์ง๋ง ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋ง๋ค ์ ์์ ์ ๋๋ก ๋ฌด์์์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ด ๊ฒฝ์ฐ์๋ ์ค๋ ๋ฉ์ผ๋ก ์ธํ ๋ฉ๋ชจ๋ฆฌ ์์ ๊ฐ๋ฅ์ฑ์ด ์์ง๋ง Javascript๊ฐ ๋จ์ผ ์ค๋ ๋๋ผ๊ณ ์๊ฐํฉ๋๊น?
Javascript๊ฐ ๋จ์ผ ์ค๋ ๋๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
๊ทธ๊ฒ์. @oddjobz๊ฐ ์๋ฏธํ๋ ๋ฐ (?)๋ ํ ๋ฒ์ ๋ ์ด์์ HTML5 ์บ๋ฒ์ค์ ์น ํ ๋ Chrome์ ๋ฒ๊ทธ๊ฐ์์ ์ ์๋ค๋ ์๋ฏธ์ด๋ฉฐ ๊ฒฐํจ์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌํ ๊ฐ๋ฅํ ํ ์คํธ ์ผ์ด์ค๊ฐ ์์ผ๋ฉด ์ถ์ธกํ๊ธฐ ์ด๋ ต๊ณ Chromium ๋ฒ๊ทธ์ ๋ํ ์๋ฏธ์๋ ๋ณด๊ณ ์๋ฅผ ์์ฑํฉ๋๋ค.
์ ์๊ฐ์ (๋ฉ๋ชจ๋ฆฌ์์) "์น ์์ ์"๋ผ๋ ์๋ก์ด ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ์ต์ ์ ์ฌ์ฉํ๋ค๊ณ ์๊ฐํฉ๋๋ค.์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ํจ๊ณผ์ ์ผ๋ก ์๋ฐ ์คํฌ๋ฆฝํธ ์ค๋ ๋๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.์ด ๊ธฐ๋ฅ์ ๋๊ณ "ํฐ"PDF๋ฅผ ๋ณด๋ ค๊ณ ํ๋ฉด ์ด ๊ธฐ๋ฅ์ด ์ฌ์ฉ๋๋ "์ด์ "๋ฅผ ์ฐธ์กฐํ์ญ์์ค ... :)
"์น ์์ ์"๋ผ๋ ์๋ก์ด ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ์ต์ ์ ์ฌ์ฉํฉ๋๋ค.
์ด ๊ธฐ๋ฅ์ ๋๊ณ "ํฐ"PDF๋ฅผ ๋ณด๋ ค๊ณ ํ๋ฉด์ด ๊ธฐ๋ฅ์ด ์ฌ์ฉ๋๋ "์ด์ "๊ฐ ํ์๋ฉ๋๋ค.
OP๋์ด ๊ธฐ๋ฅ์ ๋๋๋ก ์ง์ํฉ๋๋ค. ์ด๋ Web Workers๊ฐ ์ฌ์ฉ๋์ง ์์์ ์๋ฏธํ๋ฉฐ, ์ด๋ ๋ธ๋ผ์ฐ์ ๋ก ๋น๋์ ์ด๋์ํค๊ณ JavaScript "์ค๋ ๋ฉ"๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
์ฝ๊ฐ ๋ฏธ๋ฌํ๊ณ Javascript๋ ๋จ์ผ ์ค๋ ๋์ด์ง๋ง Chrome์ ๋ค์ค ์ค๋ ๋์ด๋ฉฐ ์น ์์ ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๊ฐ์ Chrome ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ณ ๋ ์ฌ์ด์ ํต์ ์ ์ฉ์ดํ๊ฒ ํ ์ ์์ต๋๋ค. ๋ง์คํฐ ๋ง DOM ์ก์ธ์ค ๊ถํ์ ์ป๋๋ค๊ณ ์๊ฐํ์ง๋ง UI ์ค๋ ๋๋ฅผ ์ฐจ๋จํ์ง ์๊ณ ํ๋ก์ธ์ ์ง์ฝ์ ์ธ ์์ ์ ์ํด ํ์ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํน์ ์ค๋ ๋ ๋ ํญ์ ์ฐ๊ฒฐ๋์ง ์์ ์น ์์ปค๋ฅผ ๋ง๋ค ์ ์๋ค๋ ๊ฒ์ ์๊ฒ๋๋ฉด ๋ ์ฌ๋ฏธ์์ด ์ง๋ฏ๋ก ํ์ด์ง ์๋ก ๊ณ ์นจ ํ์๋ ํจ๊ณผ์ ์ผ๋ก ์ด์๋จ์ต๋๋ค (์ฆ, ์ง์์ ์ ๋๋ค). ๋๋ ์ด๊ฒ์ผ๋ก ์ธํด ๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ๋ด ๋๋ค ...
๋ฌผ๋ก ์ ๋๋ค.ํ์ง๋ง ๋ด ์๊ฒฌ์ ์ค๋ ๋ฉ์์ด (์ฆ, ๋ด ์ค๋ ๋ ์์ค ์ ๊ธ์ ๊ตฌํํ์ฌ)์ด ๋ฌธ์ ์ 99 %๊ฐ ์ฌ๋ผ์ง๋ค๋ ๊ฒ์ ๋๋ค. (๋๋ฅผ ์ํด).
@oddjobz , @rpedela ํ๋์จ์ด / gpu ๊ฐ์์ ๋นํ์ฑํํ๊ณ ๋ฌธ์ ๊ฐ ๊ณ์ ๋ฐ์ํ๋์ง ํ์ธํ์ญ์์ค.
@yurydelendik , yup, ๊ทธ๊ฒ์ ๋ด๊ฐ ์๋ํ ์ฒซ ๋ฒ์งธ ์ผ ์ค ํ๋์์ต๋๋ค. (์ฐจ์ด ์์)
@yurydelendik , ๋ด ์์ฉ ํ๋ก๊ทธ๋จ์ด 6 ๊ฐ์ ์ด์ ๊ฒ์๋์์ต๋๋ค. ๋จ์์๋ ๋ฌธ์ ๊ฐ "๋ค๋ฅด๊ณ "๊ฐ์ฅ ๊ฐ๋ฅ์ฑ์ด ๋์ ์ฌ์ฉ์ ์ค๋ฅ ๋๋ ๊ฐ๋ ์ด์ํ ๋ฌธ์๊ฐ๋์ด ๊ธฐ์ฉ๋๋ค. ๋ด๊ฐ ๊ฐ์ง ๋ฌธ์ ๋ ์ผ๊ด ์ ์ด์ง๋ ์์ง๋ง 100 % ์ฌํ ๊ฐ๋ฅํ์ง๋ง ์ฌ๋ผ์ก์ต๋๋ค. ๋ฌธ์ ์์ ๊ฐ์ ์ค๋ณต์ผ๋ก ์ธํด (IMHO) ๋ฐ์ํ์ต๋๋ค. ์ฆ, ์ด์ ์์ ์ด ์๋ฃ๋๊ธฐ ์ ์ ์์๋ ํ๋ก์ธ์ค-์ค๋ ๋ฉ ์ฌ๋ถ, ์ด์ ์์ ์ด ์๋ฃ๋๊ธฐ ์ ์ ์์๋๋ ์์ ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์๋ ์ ๊ธ์ ์ค์ ํฉ๋๋ค. ์ฝ๊ฒ ์ฌํ ๋ ์๋ ๋ฌธ์๋ฅผ ๋น ๋ฅด๊ฒ ์์ผ๋ก ์ค์บํ๊ณ ์ด์ ํ์ด์ง๊ฐ ๋ ๋๋ง์ ์์ ํ ์๋ฃํ๊ธฐ ์ ์ "๋ค์"์ฒ๋ฆฌ๋ฅผ ์์ํ๋ ๊ฒ์ ๋๋ค.
์๋ฐ ์คํฌ๋ฆฝํธ๋ ๋จ์ผ ์ค๋ ๋์ด์ง๋ง Chrome์ ๋ค์ค ์ค๋ ๋์ด๋ฉฐ ์น ์์ ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๊ฐ์ Chrome ํ๋ก์ธ์ค๋ฅผ ์คํํ ์ ์๊ณ ๋ ์ฌ์ด์ ํต์ ์ ์ฉ์ดํ๊ฒ ํ ์ ์์ต๋๋ค. ๋ง์คํฐ ๋ง DOM ์ก์ธ์ค ๊ถํ์ ์ป๋๋ค๊ณ ์๊ฐํ์ง๋ง UI ์ค๋ ๋๋ฅผ ์ฐจ๋จํ์ง ์๊ณ ํ๋ก์ธ์ ์ง์ฝ์ ์ธ ์์ ์ ์ํด ํ์ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
"์น ์์ ์"๋ผ๋ ์ฉ์ด๊ฐ ํฌํจ ๋์ด ๋ฌธ์ฅ์ ํผ๋ ์ค๋ฝ์ต๋๋ค. ์์ ์ง์ ์ ํ์ธํ๊ธฐ ์ํด ์ฐธ์กฐ๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๊น? ์น ์์ปค๋ ์ค๊ณ ์ DOM์ ์ก์ธ์ค ํ ์ ์์ผ๋ฉฐ PDF.js๋ ๋ฉ์ธ ์ค๋ ๋์์ ํ์ธํ ์ ์ํํฉ๋๋ค. Chrome์ ๋ ๋๋ง ํ๋ก์ธ์ค๋ฅผ ์๋ฏธํฉ๋๊น? DOM์ ์ ๋ฐ์ดํธํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์น ์์ปค๊ฐ ์๋ ๋ฉ์ธ ์ค๋ ๋์์ ์ค๋ ๊ฒ์ ๋๋ค.
์ด์ ์์ ์ด ์๋ฃ๋๊ธฐ ์ ์ ์์๋ ์์ -์ค๋ ๋ฉ ์ฌ๋ถ, ์ด์ ์์ ์ด ์๋ฃ๋๊ธฐ ์ ์ ์์๋๋ ์์ ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์๋ ์ ๊ธ์ ์ค์ ํฉ๋๋ค.
์ด ์ปจํ
์คํธ์์ "์์
"์ด๋ ์ ํํ ๋ฌด์์ ์๋ฏธํฉ๋๊น? API์ render()
ํธ์ถ์ ์๋ช
์
๋๊น?
@oddjobz ๋ฐฉ๊ธ ์ค๋ ๋๋ฅผ ๋ค์ ์ฝ์์ผ๋ฉฐ ์๋ก ๋ค๋ฅธ ๊ธฐ๊ฐ์ ์ถฉ๋ํ๋ ์ง์ ์ด ๋ง์ด ์์ต๋๋ค. ๋ํ ๊ตฌ์ฑ ์น์ ๋ ์ถฉ๋ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Mac OSX์ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ๋ก์ปฌ๋ก ๋ณต์ ํ ์ ์์ต๋๋ค. ํ์ค ๋ทฐ์ด (์ฌ์ฉ์ ์ง์ ๋ทฐ์ด๊ฐ ์๋)๋ก ์ฌํ ํ ์ ์๋์ง ์ฌ์ ํ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ค๋ฅธ ์ค๋ ๋ ์ฐธ๊ฐ์๋ฅผ ํผ๋ํ์ง ์๋๋ก์ด ๋ฒ๊ทธ๋ฅผ ์ ํจํ์ง ์๊ฑฐ๋ ๋ถ์์ ํ ๊ฒ์ผ๋ก ์ข ๋ฃํ๊ฒ ์ต๋๋ค.
@oddjobz , @rpedela , @badams , @pholisma , @ subhadip-codeclouds ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ํํ ๊ตฌ์ฑ๊ณผ ๋ฌธ์ ๋ฅผ ์ฌํ ํ ์์๋ ์ ํํ ๋จ๊ณ (PDF ํฌํจ)๊ฐ ํฌํจ ๋ ๋ณ๋์ ๋ฒ๊ทธ ๋ณด๊ณ ์๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๊น? ๋ง์ถค ์๋ฃจ์ ์ธ ๊ฒฝ์ฐ ๊ณต๊ฐ ๋งํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ข์ต๋๋ค. ์ด๊ฒ์ ๋ฌธ์ ์ ์ฝ๋์ ๋๋ค. ์์ ๋ ๋ถ๋ถ์ ๋ณผ ์ ์์ต๋๋ค.
ํนํ ์ ๊ธ์์ํ ๋ฃจํด์ด ์์ต๋๋ค.
this.locked = true;
PDFJS.getDocument(path+doc_id).then(function(pdf) {
$('#pdf-canvas-pages').text(pdf.numPages);
self.pages = pdf.numPages;
self.page = 1;
self.pdf = pdf;
pdf.getPage(1).then(function(page) { self.turnpage(); });
})
turnpage: function() {
var self = this;
self.pdf.getPage(self.page).then(function(page) {
var canvas = document.getElementById('pdf-canvas');
var ctx = canvas.getContext('2d');
var unscaledViewport = page.getViewport(1);
canvas.width = $('#pdf-canvas').width();
var scale = canvas.width / unscaledViewport.width;
var viewport = page.getViewport(scale);
canvas.height = viewport.height;
var renderContext = { canvasContext: ctx, viewport: viewport };
page.render(renderContext);
$('#pdf-canvas-page').text(self.page);
self.locked = false;
});
},
์, ์ด๊ฒ์ด ์ ๊ฐ ๊ทธ ์์ ์ ์์ ์ ๋ฐ์ง ์์ ์ด์ ์ ๋๋ค. ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ด์ผํ๋ค๋ ๊ฒ์ ๋งํ ๊ฒ๋์๊ณ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ ๋ฐ์๋ค์ด๋ ๊ฒ์กฐ์ฐจ ์ฃผ์ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์์ ์ค ๋ํซ ๋ฌธ์ ๋ https://github.com/mozilla/pdf.js/pull/6571 ์์ ํด๊ฒฐ๋์์ต๋๋ค.
์, ์ ๊ฐ ๋งํ ์์๋ ๊ฒ์ 2016 ๋ ์ค๋ฐ ์ต์ ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์์ง๋ง ์ฌ์ ํ ๋ฌธ์ ๊ฐ์์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๊ณ ์ณ ์ก๋ค๊ณ (๋ฐ๋ณต์ ์ผ๋ก) ๋งํ๋ ๊ฒ์ ๊ธฐ์ตํ๋ ๊ฒ ๊ฐ์ต๋๋ค. (๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ๋ง์ ์ฌ๋๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ถ๋ช ํ ๊ทธ๋ ์ง ์๋ค๋ ๊ฒ์ ์ ์์์์ต๋๋ค)
์ด์จ๋ , ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ณด๋ ์ฌ๋์ด๋ผ๋ฉด ์์ ๊ฐ์ด ์๋ฌผ์ ๋ฅผ ๊ฝ์์ ์ฐจ์ด๊ฐ ๋๋์ง ํ์ธํ์ญ์์ค. .. ๋ ์ค๋ฟ์ ๋๋ค ...
@yurydelendik ์ด๊ฒ์ ์ฌ์ฉ์ (์ฃผ๋ก Windows 7์ ์ฌ์ฉ)์๊ฒ ๊ฝค ์ผ๊ด๋๊ฒ ๋ฐ์ํ๊ณ ์์ง๋ง OSX์์ ์ต์ ๋ฒ์ ์ผ๋ก ์ฌํ ํ ์ ์์์ง๋ง 100 % ์ผ๊ด๋๊ฒ ์ฌํ ํ ์๋ ์์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ฌ์ฉ์ ์ ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋จ์ํ ๋ค์์ ์ํํฉ๋๋ค.
<iframe
style="height: 650px; width: 600px"
src="/path/to/pdfjs/web/viewer.html?file=/path/to/file.pdf"
/>
๋ฌธ์์ ๋ค๋ฅธ ๊ตต์ ํ ์คํธ๊ฐ ์๋์ง ์ฌ๋ถ, ์ด๊ธฐ ํ๋ / ์ถ์ ์์ค (ํ๋ ๋ฐ ์ถ์ํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ ๊ฒฝ์ฐ๊ฐ ์์)๊ณผ ๊ฐ์ ์ฌ๋ฌ ์์ธ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ํ ์ด๊ฒ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ์๋ง ์ํฅ์ ๋ฏธ์น๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ธ์ํ๋ฉด pdf๋ฅผ ๋ค์ด๋ก๋ํ๋ฉด ์๋ฒฝํ๊ฒ ๋ ๋๋ง๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค (pdf.js๊ฐ ์ ๊ณต๋ ํ์ผ์ ์ฌ์ฉ์์๊ฒ ์ ๋ฌํ๊ธฐ ๋๋ฌธ์ ๋๋ค).
์ฐ๋ฆฌ๋์ด ์๋ฃจ์ ์ ์ฌ์ฉํ์ง ์๊ณ ํ์ผ์ ์ฌ์ฉ์ ์ปดํจํฐ์ ์ง์ ๋ค์ด๋ก๋ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ง๋ง ์ด์ ํ๋ฃจ ์ข ์ผ์ด ๋ฒ๊ทธ๋ฅผ ์ซ๋ ๋ฐ ์ด๋ฏธ ์๊ฐ์ ๋ณด๋์ง ๋ง ์ฌํ ๊ฐ๋ฅํ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์๊ฐํด ๋ด๊ธฐ ์ํด ์๊ฐ์ ํ ์ ํ ๊ฒ์ ๋๋ค.
@badams , ๋ค์ / ์ด์ ํ์ด์ง์ ๋ง์ฐฌ๊ฐ์ง๋ก ํ๋ / ์ถ์๋ ๋์๊ฒ ์์ ์ฌํญ์์ ํ์ธํ ์ ์์ต๋๋ค. ๋๋ ๋ํ ๋๋ดํจ์ด ๋ฌธ์ ์ ๊ฐ๋ฅ์ฑ์ ๋์ด๋ ์ธ์์ ๋ฐ์๋ค.
๋๋ ์ฌํ ๊ฐ๋ฅํ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์๊ฐํด ๋ด๊ธฐ ์ํด ์๊ฐ์ ํ ์ ํ ๊ฒ์ด๋ค.
@badams ๊ฐ์ฌํฉ๋๋ค. ๊ธฐ๊ณ ์๊ฐ ์ปดํจํฐ์์ ๋ฌธ์ ๋ฅผ ์ฌํํ๋ ค๊ณ ํ ๋ ๋ชจ๋ ๋ณํ์ ์ทจํ๋ ๋ชจ๋ ๊ฒ์ด ์๋ํ๊ณ ์จ๋ผ์ธ์ผ๋ก ๊ฒ์ ๋ ์ ์ฒด ์์ ๊ฐ ๊ฐ์ฅ ์ข์ต๋๋ค (github repo์ gh-pages ๋ธ๋์น์์ ์ ์ฒด ์์ ๋ฅผ ๊ฒ์ ํ ์ ์์).
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ,
์ด ๋ชจ๋ ์ด์ผ๊ธฐ๋ฅผ ์ ๋๋ก ์ดํดํ์ง ๋ชปํ์ต๋๋ค.
์ด๋ฏธ ์์ ์ด ์์ต๋๊น? ์๋๋ฉด ์ด๋ค ์ข
๋ฅ์ ๊ตฌํ์ํด์ผํฉ๋๊น?
๋ฌธ์ ์ธ์ฌ,
ํ๋ฅด ์์์ค ํ๋ ์ด๋ผ
์ด ๋ชจ๋ ์ด์ผ๊ธฐ๋ฅผ ์ ๋๋ก ์ดํดํ์ง ๋ชปํ์ต๋๋ค.
์๋ฌด๋ ๊ทธ๋ ๊ฒ ์๊ฐํ์ง ์์ต๋๋ค.
์ด ์ค๋ ๋๋ ๋ฌธ์ ๋ฅผ ์ฌํํ๊ธฐ์ํ ์ ํํ ๋จ๊ณ๋ฅผ ์ ๊ณตํ์ง ์๊ธฐ ๋๋ฌธ์ (๋ฐ ์๊ฒฌ์ ์๋ชป๋ ๊ถ์ฅ ์ฌํญ์ด ์๊ธฐ ๋๋ฌธ์) ๋ซํ์ต๋๋ค. ๋ฌธ์ ๊ฐ 100 % ์ฌํ ๋ ๊ฒ์ผ๋ก ๊ธฐ๋ํ์ง๋ ์์ง๋ง, 10 ๋ฒ์ ํ ๋ฒ ์ด์ ๋ํ๋๊ฒํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
PDF.js๊ฐ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์ํ๋๊ฑฐ๋ ์ฝ๋์ ๋ฒ๊ทธ๊ฐ์์ ์์๋ ๊ฐ๋ฅํ ํญ๋ชฉ :
FWIW pdf.js (v1.7.376) ๋ฐฐํฌ์ ํจ๊ป ๋๋ฌผ๊ฒ ์ด๋ฌํ ์์์ด ๋ฐ์ํ์ต๋๋ค. ๋ฒ์ ์์ฒญ ์ฒ๋ฆฌ๊ฐ ์ฌ๋ฐ๋ฅธ ๊ฒ ๊ฐ์ต๋๋ค. ์ ๋ขฐํ ์์๋ ์ฌํ ๋จ๊ณ๋ฅผ ์ฐพ์ ์ ์์ผ๋ฉด๋ณด๊ณ ํ๊ฒ ์ต๋๋ค ...
์ด ๋ฌธ์ ๋ Chrome์์๋ง ๋ฐ์ํ์ผ๋ฉฐ ํ๋ / ์ถ์๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์ฌ๋ผ์ง๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ showPreviousViewOnLoad
๋ฅผ false
ํ๊ณ ๋ค์๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์์ต๋๋ค.
@TZanke showPreviousViewOnLoad
์ ๊ฑฐํ๋ฉด ํ๋ / ์ถ์๊ฐ ๋ณ๊ฒฝ๋๋ ์ด์ ๋ฅผ ๋ช
ํํ ํ ์ ์์ต๋๊น? ๊ฐ์ฌ!
@tonyjin pdf.js autozoom์ ํ๋ / ์ถ์ ๊ฐ์ ๊ณ์ฐํ์ฌ ๋ก์ปฌ ์ ์ฅ์์ ์ ์ฅํฉ๋๋ค. ํ์ด์ง๋ฅผ ๋ค์๋ก๋ ํ ํ์๋ ์๋ ํ๋ / ์ถ์๊ฐ ์ฌ์ฉ๋์ง ์๊ณ ๋์ ์ด์ ์ ๊ณ์ฐ ๋ ํ๋ / ์ถ์ ๊ฐ์ด ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๊ฐ์ ๋ค์๋ก๋ํ๋ ๋ฐ ๋ฌธ์ ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฐ๋ผ์ showPreviousViewOnLoad
๋นํ์ฑํํ๋ฉด ์๋ ํ๋ ๊ธฐ๋ฅ์ด ๋งค๋ฒ ์์๋๊ณ ํ์ด์ง๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ํ๋๋๋ฉฐ ๋ ๋๋ง ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
@TZanke- ๊ทํ์ ์ ๊ทผ ๋ฐฉ์์ ์๋ํ์ง๋ง ์ํ๊น๊ฒ๋ ๋ฌธ์ ๊ฐ ๊ฐ๋ ๋ฐ์ํฉ๋๋ค .. :(