this.mainXRefEntriesOffset);
this.xref = xref;
this.catalog = new Catalog(xref);
- if (xref.trailer && xref.trailer.has('ID')) {
- var fileID = '';
- var id = xref.fetchIfRef(xref.trailer.get('ID'))[0];
- id.split('').forEach(function(el) {
- fileID += Number(el.charCodeAt(0)).toString(16);
- });
- this.fileID = fileID;
+ if (xref.trailer) {
+ if (xref.trailer.has('ID')) {
+ var fileID = '';
+ var id = xref.fetchIfRef(xref.trailer.get('ID'))[0];
+ id.split('').forEach(function(el) {
+ fileID += Number(el.charCodeAt(0)).toString(16);
+ });
+ this.fileID = fileID;
+ }
}
},
get numPages() {
// shadow the prototype getter
return shadow(this, 'numPages', num);
},
+ getDocumentInfo: function pdfDocGetDocumentInfo() {
+ if (this.xref.trailer.has('Info')) {
+ return this.xref.fetch(this.xref.trailer.get('Info'));
+ }
+ },
getFingerprint: function pdfDocGetFingerprint() {
if (this.fileID) {
return this.fileID;
this.stream = stream;
this.pdfModel = new PDFDocModel(stream);
this.fingerprint = this.pdfModel.getFingerprint();
+ this.info = this.pdfModel.getDocumentInfo();
this.catalog = this.pdfModel.catalog;
this.objs = new PDFObjects();
for (ii = 0, iLength = entries.length; ii < iLength; ii++) {
var entry = entries[ii];
var name = entry.nodeName.toLowerCase();
- var entryName = name.split(':');
- entryName = (entryName.length > 1) ? entryName[1] : entryName[0];
- switch (name) {
- case 'pdf:moddate':
- case 'xap:createdate':
- case 'xap:metadatadate':
- case 'xap:modifydate':
- this.metadata[entryName] = new Date(entry.textContent.trim());
- break;
-
- default:
- // For almost all entries we just add them to the metadata object
- if (this.metadata[entryName]) {
- this.metadata[name] = entry.textContent.trim();
- } else {
- this.metadata[entryName] = entry.textContent.trim();
- }
- break;
- }
+ this.metadata[name] = entry.textContent.trim();
}
}
},
}
var metadata = pdf.catalog.metadata;
+ var info = pdf.info;
+ var pdfTitle;
+
if (metadata) {
this.metadata = metadata = new Metadata(metadata);
- if (metadata.has('title')) {
- document.title = metadata.get('title');
+ if (metadata.has('dc:title')) {
+ pdfTitle = metadata.get('dc:title');
}
}
+
+ if (info && info.has('Title') && !pdfTitle) {
+ pdfTitle = info.get('Title');
+ }
+
+ if (pdfTitle) {
+ document.title = pdfTitle;
+ }
},
setHash: function pdfViewSetHash(hash) {