Added #getFingerprint method to PDFDocModel
This commit is contained in:
parent
d44f9f2074
commit
0de0e92bc4
17
src/core.js
17
src/core.js
@ -542,6 +542,21 @@ var PDFDocModel = (function PDFDocModelClosure() {
|
|||||||
// shadow the prototype getter
|
// shadow the prototype getter
|
||||||
return shadow(this, 'numPages', num);
|
return shadow(this, 'numPages', num);
|
||||||
},
|
},
|
||||||
|
getFingerprint: function pdfDocGetFingerprint() {
|
||||||
|
if(this.fileID) {
|
||||||
|
return this.fileID;
|
||||||
|
} else {
|
||||||
|
// If we got no fileID, then we generate one, from the first 100 bytes of PDF
|
||||||
|
var data = this.stream.bytes.subarray(0, 100);
|
||||||
|
var hash = calculateMD5(data, 0, data.length);
|
||||||
|
var strHash = '';
|
||||||
|
for(var i = 0, length = hash.length; i < length; i++) {
|
||||||
|
strHash += Number(hash[i]).toString(16);
|
||||||
|
}
|
||||||
|
|
||||||
|
return strHash;
|
||||||
|
}
|
||||||
|
},
|
||||||
getPage: function pdfDocGetPage(n) {
|
getPage: function pdfDocGetPage(n) {
|
||||||
return this.catalog.getPage(n);
|
return this.catalog.getPage(n);
|
||||||
}
|
}
|
||||||
@ -568,7 +583,7 @@ var PDFDoc = (function PDFDocClosure() {
|
|||||||
this.data = data;
|
this.data = data;
|
||||||
this.stream = stream;
|
this.stream = stream;
|
||||||
this.pdf = new PDFDocModel(stream);
|
this.pdf = new PDFDocModel(stream);
|
||||||
this.fileID = this.pdf.fileID;
|
this.fingerprint = this.pdf.getFingerprint();
|
||||||
this.catalog = this.pdf.catalog;
|
this.catalog = this.pdf.catalog;
|
||||||
this.objs = new PDFObjects();
|
this.objs = new PDFObjects();
|
||||||
|
|
||||||
|
@ -347,7 +347,7 @@ var PDFView = {
|
|||||||
pagesRefMap[pageRef.num + ' ' + pageRef.gen + ' R'] = i;
|
pagesRefMap[pageRef.num + ' ' + pageRef.gen + ' R'] = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
var id = pdf.fileID;
|
var id = pdf.fingerprint;
|
||||||
if (id) {
|
if (id) {
|
||||||
var scroll = Settings.get(id + '.scroll', -1);
|
var scroll = Settings.get(id + '.scroll', -1);
|
||||||
if (scroll != -1) {
|
if (scroll != -1) {
|
||||||
@ -895,9 +895,9 @@ function updateViewarea() {
|
|||||||
|
|
||||||
window.addEventListener('scroll', function webViewerScroll(evt) {
|
window.addEventListener('scroll', function webViewerScroll(evt) {
|
||||||
updateViewarea();
|
updateViewarea();
|
||||||
var fileID;
|
var id;
|
||||||
if((fileID = PDFView.pages[0].content.pdf.fileID)) {
|
if((id = PDFView.pages[0].content.pdf.fingerprint)) {
|
||||||
Settings.set(fileID+'.scroll', window.pageYOffset);
|
Settings.set(id+'.scroll', window.pageYOffset);
|
||||||
}
|
}
|
||||||
}, true);
|
}, true);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user