mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-26 01:58:06 +02:00
Separate page objects/images from the fonts; does not store large images
This commit is contained in:
parent
d2c1868497
commit
69b72078c0
7 changed files with 97 additions and 73 deletions
60
src/core.js
60
src/core.js
|
@ -97,8 +97,8 @@ globalScope.PDFJS.getPdf = getPdf;
|
|||
globalScope.PDFJS.pdfBug = false;
|
||||
|
||||
var Page = (function PageClosure() {
|
||||
function Page(xref, pageNumber, pageDict, ref) {
|
||||
this.pageNumber = pageNumber;
|
||||
function Page(xref, pageIndex, pageDict, ref) {
|
||||
this.pageIndex = pageIndex;
|
||||
this.pageDict = pageDict;
|
||||
this.xref = xref;
|
||||
this.ref = ref;
|
||||
|
@ -167,14 +167,11 @@ var Page = (function PageClosure() {
|
|||
}
|
||||
return shadow(this, 'rotate', rotate);
|
||||
},
|
||||
|
||||
getOperatorList: function Page_getOperatorList(handler, dependency) {
|
||||
var xref = this.xref;
|
||||
getContentStream: function Page_getContentStream() {
|
||||
var content = this.content;
|
||||
var resources = this.resources;
|
||||
if (isArray(content)) {
|
||||
// fetching items
|
||||
var streams = [];
|
||||
var xref = this.xref;
|
||||
var i, n = content.length;
|
||||
var streams = [];
|
||||
for (i = 0; i < n; ++i)
|
||||
|
@ -184,13 +181,19 @@ var Page = (function PageClosure() {
|
|||
content.reset();
|
||||
} else if (!content) {
|
||||
// replacing non-existent page content with empty one
|
||||
content = new Stream(new Uint8Array(0));
|
||||
content = new NullStream();
|
||||
}
|
||||
|
||||
return content;
|
||||
},
|
||||
getOperatorList: function Page_getOperatorList(handler, dependency) {
|
||||
var xref = this.xref;
|
||||
var contentStream = this.getContentStream();
|
||||
var resources = this.resources;
|
||||
var pe = this.pe = new PartialEvaluator(
|
||||
xref, handler, 'p' + this.pageNumber + '_');
|
||||
xref, handler, this.pageIndex,
|
||||
'p' + this.pageIndex + '_');
|
||||
|
||||
return pe.getOperatorList(content, resources, dependency);
|
||||
return pe.getOperatorList(contentStream, resources, dependency);
|
||||
},
|
||||
extractTextContent: function Page_extractTextContent() {
|
||||
var handler = {
|
||||
|
@ -199,40 +202,13 @@ var Page = (function PageClosure() {
|
|||
};
|
||||
|
||||
var xref = this.xref;
|
||||
var content = xref.fetchIfRef(this.content);
|
||||
var contentStream = this.getContentStream();
|
||||
var resources = xref.fetchIfRef(this.resources);
|
||||
if (isArray(content)) {
|
||||
// fetching items
|
||||
var i, n = content.length;
|
||||
var streams = [];
|
||||
for (i = 0; i < n; ++i)
|
||||
streams.push(xref.fetchIfRef(content[i]));
|
||||
content = new StreamsSequenceStream(streams);
|
||||
} else if (isStream(content)) {
|
||||
content.reset();
|
||||
}
|
||||
|
||||
var pe = new PartialEvaluator(
|
||||
xref, handler, 'p' + this.pageNumber + '_');
|
||||
return pe.getTextContent(content, resources);
|
||||
},
|
||||
|
||||
ensureFonts: function Page_ensureFonts(fonts, callback) {
|
||||
this.stats.time('Font Loading');
|
||||
// Convert the font names to the corresponding font obj.
|
||||
for (var i = 0, ii = fonts.length; i < ii; i++) {
|
||||
fonts[i] = this.objs.objs[fonts[i]].data;
|
||||
}
|
||||
|
||||
// Load all the fonts
|
||||
FontLoader.bind(
|
||||
fonts,
|
||||
function pageEnsureFontsFontObjs(fontObjs) {
|
||||
this.stats.timeEnd('Font Loading');
|
||||
|
||||
callback.call(this);
|
||||
}.bind(this)
|
||||
);
|
||||
xref, handler, this.pageIndex,
|
||||
'p' + this.pageIndex + '_');
|
||||
return pe.getTextContent(contentStream, resources);
|
||||
},
|
||||
getLinks: function Page_getLinks() {
|
||||
var links = [];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue