Browse Source

PDF.js version 1.8.292 - See mozilla/pdf.js@e18a08ffeb3ef18aea9e888529f49a7c179ea108

master v1.8.292
pdfjsbot 8 years ago
parent
commit
789282b588
  1. 2
      bower.json
  2. 121
      build/pdf.combined.js
  3. 14
      build/pdf.js
  4. 4
      build/pdf.min.js
  5. 111
      build/pdf.worker.js
  6. 4
      build/pdf.worker.min.js
  7. 107
      lib/core/evaluator.js
  8. 4
      lib/display/api.js
  9. 2
      lib/display/canvas.js
  10. 4
      lib/display/global.js
  11. 4
      lib/pdf.js
  12. 4
      lib/pdf.worker.js
  13. 2
      package.json

2
bower.json

@ -1,6 +1,6 @@
{ {
"name": "pdfjs-dist", "name": "pdfjs-dist",
"version": "1.8.290", "version": "1.8.292",
"main": [ "main": [
"build/pdf.js", "build/pdf.js",
"build/pdf.worker.js" "build/pdf.worker.js"

121
build/pdf.combined.js

@ -12726,8 +12726,8 @@ var _UnsupportedManager = function UnsupportedManagerClosure() {
}(); }();
var version, build; var version, build;
{ {
exports.version = version = '1.8.290'; exports.version = version = '1.8.292';
exports.build = build = '60c232bc'; exports.build = build = 'e18a08ff';
} }
exports.getDocument = getDocument; exports.getDocument = getDocument;
exports.PDFDataRangeTransport = PDFDataRangeTransport; exports.PDFDataRangeTransport = PDFDataRangeTransport;
@ -18338,7 +18338,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}); });
}, },
buildPaintImageXObject: function PartialEvaluator_buildPaintImageXObject(resources, image, inline, operatorList, cacheKey, imageCache) { buildPaintImageXObject: function PartialEvaluator_buildPaintImageXObject(resources, image, inline, operatorList, cacheKey, imageCache) {
var self = this; var _this2 = this;
var dict = image.dict; var dict = image.dict;
var w = dict.get('Width', 'W'); var w = dict.get('Width', 'W');
var h = dict.get('Height', 'H'); var h = dict.get('Height', 'H');
@ -18392,14 +18393,14 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
} }
var nativeImageDecoder = null; var nativeImageDecoder = null;
if (useNativeImageDecoder && (image instanceof JpegStream || mask instanceof JpegStream || softMask instanceof JpegStream)) { if (useNativeImageDecoder && (image instanceof JpegStream || mask instanceof JpegStream || softMask instanceof JpegStream)) {
nativeImageDecoder = new NativeImageDecoder(self.xref, resources, self.handler, self.options.forceDataSchema); nativeImageDecoder = new NativeImageDecoder(this.xref, resources, this.handler, this.options.forceDataSchema);
} }
PDFImage.buildImage(self.handler, self.xref, resources, image, inline, nativeImageDecoder).then(function (imageObj) { PDFImage.buildImage(this.handler, this.xref, resources, image, inline, nativeImageDecoder).then(function (imageObj) {
var imgData = imageObj.createImageData(false); var imgData = imageObj.createImageData(false);
self.handler.send('obj', [objId, self.pageIndex, 'Image', imgData], [imgData.data.buffer]); _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', imgData], [imgData.data.buffer]);
}).then(undefined, function (reason) { }).catch(function (reason) {
warn('Unable to decode image: ' + reason); warn('Unable to decode image: ' + reason);
self.handler.send('obj', [objId, self.pageIndex, 'Image', null]); _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', null]);
}); });
operatorList.addOp(OPS.paintImageXObject, args); operatorList.addOp(OPS.paintImageXObject, args);
if (cacheKey) { if (cacheKey) {
@ -18442,39 +18443,42 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}); });
}, },
handleSetFont: function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) { handleSetFont: function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) {
var _this3 = this;
var fontName; var fontName;
if (fontArgs) { if (fontArgs) {
fontArgs = fontArgs.slice(); fontArgs = fontArgs.slice();
fontName = fontArgs[0].name; fontName = fontArgs[0].name;
} }
var self = this;
return this.loadFont(fontName, fontRef, resources).then(function (translated) { return this.loadFont(fontName, fontRef, resources).then(function (translated) {
if (!translated.font.isType3Font) { if (!translated.font.isType3Font) {
return translated; return translated;
} }
return translated.loadType3Data(self, resources, operatorList, task).then(function () { return translated.loadType3Data(_this3, resources, operatorList, task).then(function () {
return translated; return translated;
}, function (reason) { }).catch(function (reason) {
self.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.font }); _this3.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.font });
return new TranslatedFont('g_font_error', new ErrorFont('Type3 font load error: ' + reason), translated.font); return new TranslatedFont('g_font_error', new ErrorFont('Type3 font load error: ' + reason), translated.font);
}); });
}).then(function (translated) { }).then(function (translated) {
state.font = translated.font; state.font = translated.font;
translated.send(self.handler); translated.send(_this3.handler);
return translated.loadedName; return translated.loadedName;
}); });
}, },
handleText: function PartialEvaluator_handleText(chars, state) { handleText: function PartialEvaluator_handleText(chars, state) {
var _this4 = this;
var font = state.font; var font = state.font;
var glyphs = font.charsToGlyphs(chars); var glyphs = font.charsToGlyphs(chars);
var isAddToPathSet = !!(state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG); var isAddToPathSet = !!(state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG);
if (font.data && (isAddToPathSet || this.options.disableFontFace)) { if (font.data && (isAddToPathSet || this.options.disableFontFace)) {
var buildPath = function (fontChar) { var buildPath = function buildPath(fontChar) {
if (!font.renderer.hasBuiltPath(fontChar)) { if (!font.renderer.hasBuiltPath(fontChar)) {
var path = font.renderer.getPathJs(fontChar); var path = font.renderer.getPathJs(fontChar);
this.handler.send('commonobj', [font.loadedName + '_path_' + fontChar, 'FontPath', path]); _this4.handler.send('commonobj', [font.loadedName + '_path_' + fontChar, 'FontPath', path]);
} }
}.bind(this); };
for (var i = 0, ii = glyphs.length; i < ii; i++) { for (var i = 0, ii = glyphs.length; i < ii; i++) {
var glyph = glyphs[i]; var glyph = glyphs[i];
buildPath(glyph.fontChar); buildPath(glyph.fontChar);
@ -18487,11 +18491,13 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
return glyphs; return glyphs;
}, },
setGState: function PartialEvaluator_setGState(resources, gState, operatorList, task, stateManager) { setGState: function PartialEvaluator_setGState(resources, gState, operatorList, task, stateManager) {
var _this5 = this;
var gStateObj = []; var gStateObj = [];
var gStateKeys = gState.getKeys(); var gStateKeys = gState.getKeys();
var self = this;
var promise = Promise.resolve(); var promise = Promise.resolve();
for (var i = 0, ii = gStateKeys.length; i < ii; i++) {
var _loop = function _loop() {
var key = gStateKeys[i]; var key = gStateKeys[i];
var value = gState.get(key); var value = gState.get(key);
switch (key) { switch (key) {
@ -18510,7 +18516,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
break; break;
case 'Font': case 'Font':
promise = promise.then(function () { promise = promise.then(function () {
return self.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) { return _this5.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) {
operatorList.addDependency(loadedName); operatorList.addDependency(loadedName);
gStateObj.push([key, [loadedName, value[1]]]); gStateObj.push([key, [loadedName, value[1]]]);
}); });
@ -18525,9 +18531,9 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
break; break;
} }
if (isDict(value)) { if (isDict(value)) {
promise = promise.then(function (dict) { promise = promise.then(function () {
return self.handleSMask(dict, resources, operatorList, task, stateManager); return _this5.handleSMask(value, resources, operatorList, task, stateManager);
}.bind(this, value)); });
gStateObj.push([key, true]); gStateObj.push([key, true]);
} else { } else {
warn('Unsupported SMask type'); warn('Unsupported SMask type');
@ -18553,6 +18559,10 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
info('Unknown graphic state operator ' + key); info('Unknown graphic state operator ' + key);
break; break;
} }
};
for (var i = 0, ii = gStateKeys.length; i < ii; i++) {
_loop();
} }
return promise.then(function () { return promise.then(function () {
if (gStateObj.length > 0) { if (gStateObj.length > 0) {
@ -18561,6 +18571,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}); });
}, },
loadFont: function PartialEvaluator_loadFont(fontName, font, resources) { loadFont: function PartialEvaluator_loadFont(fontName, font, resources) {
var _this6 = this;
function errorFont() { function errorFont() {
return Promise.resolve(new TranslatedFont('g_font_error', new ErrorFont('Font ' + fontName + ' is not available'), font)); return Promise.resolve(new TranslatedFont('g_font_error', new ErrorFont('Font ' + fontName + ' is not available'), font));
} }
@ -18637,15 +18649,14 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
} catch (e) { } catch (e) {
translatedPromise = Promise.reject(e); translatedPromise = Promise.reject(e);
} }
var self = this;
translatedPromise.then(function (translatedFont) { translatedPromise.then(function (translatedFont) {
if (translatedFont.fontType !== undefined) { if (translatedFont.fontType !== undefined) {
var xrefFontStats = xref.stats.fontTypes; var xrefFontStats = xref.stats.fontTypes;
xrefFontStats[translatedFont.fontType] = true; xrefFontStats[translatedFont.fontType] = true;
} }
fontCapability.resolve(new TranslatedFont(font.loadedName, translatedFont, font)); fontCapability.resolve(new TranslatedFont(font.loadedName, translatedFont, font));
}, function (reason) { }).catch(function (reason) {
self.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.font }); _this6.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.font });
try { try {
var descriptor = preEvaluatedFont.descriptor; var descriptor = preEvaluatedFont.descriptor;
var fontFile3 = descriptor && descriptor.get('FontFile3'); var fontFile3 = descriptor && descriptor.get('FontFile3');
@ -18693,6 +18704,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
return Promise.resolve(); return Promise.resolve();
}, },
getOperatorList: function PartialEvaluator_getOperatorList(stream, task, resources, operatorList, initialState) { getOperatorList: function PartialEvaluator_getOperatorList(stream, task, resources, operatorList, initialState) {
var _this7 = this;
var self = this; var self = this;
var xref = this.xref; var xref = this.xref;
var imageCache = Object.create(null); var imageCache = Object.create(null);
@ -18946,16 +18959,18 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
closePendingRestoreOPS(); closePendingRestoreOPS();
resolve(); resolve();
}).catch(function (reason) { }).catch(function (reason) {
if (this.options.ignoreErrors) { if (_this7.options.ignoreErrors) {
this.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.unknown }); _this7.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.unknown });
warn('getOperatorList - ignoring errors during task: ' + task.name); warn('getOperatorList - ignoring errors during task: ' + task.name);
closePendingRestoreOPS(); closePendingRestoreOPS();
return; return;
} }
throw reason; throw reason;
}.bind(this)); });
}, },
getTextContent: function PartialEvaluator_getTextContent(stream, task, resources, stateManager, normalizeWhitespace, combineTextItems) { getTextContent: function PartialEvaluator_getTextContent(stream, task, resources, stateManager, normalizeWhitespace, combineTextItems) {
var _this8 = this;
stateManager = stateManager || new StateManager(new TextState()); stateManager = stateManager || new StateManager(new TextState());
var WhitespaceRegexp = /\s/g; var WhitespaceRegexp = /\s/g;
var textContent = { var textContent = {
@ -19367,15 +19382,17 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
flushTextContentItem(); flushTextContentItem();
resolve(textContent); resolve(textContent);
}).catch(function (reason) { }).catch(function (reason) {
if (this.options.ignoreErrors) { if (_this8.options.ignoreErrors) {
warn('getTextContent - ignoring errors during task: ' + task.name); warn('getTextContent - ignoring errors during task: ' + task.name);
flushTextContentItem(); flushTextContentItem();
return textContent; return textContent;
} }
throw reason; throw reason;
}.bind(this)); });
}, },
extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, properties) { extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, properties) {
var _this9 = this;
var xref = this.xref; var xref = this.xref;
var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode'); var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode');
var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined); var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined);
@ -19451,8 +19468,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
properties.dict = dict; properties.dict = dict;
return toUnicodePromise.then(function (toUnicode) { return toUnicodePromise.then(function (toUnicode) {
properties.toUnicode = toUnicode; properties.toUnicode = toUnicode;
return this.buildToUnicode(properties); return _this9.buildToUnicode(properties);
}.bind(this)).then(function (toUnicode) { }).then(function (toUnicode) {
properties.toUnicode = toUnicode; properties.toUnicode = toUnicode;
return properties; return properties;
}); });
@ -19804,6 +19821,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}; };
}, },
translateFont: function PartialEvaluator_translateFont(preEvaluatedFont) { translateFont: function PartialEvaluator_translateFont(preEvaluatedFont) {
var _this10 = this;
var baseDict = preEvaluatedFont.baseDict; var baseDict = preEvaluatedFont.baseDict;
var dict = preEvaluatedFont.dict; var dict = preEvaluatedFont.dict;
var composite = preEvaluatedFont.composite; var composite = preEvaluatedFont.composite;
@ -19833,9 +19852,9 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
lastChar: maxCharIndex lastChar: maxCharIndex
}; };
return this.extractDataStructures(dict, dict, properties).then(function (properties) { return this.extractDataStructures(dict, dict, properties).then(function (properties) {
properties.widths = this.buildCharCodeToWidth(metrics.widths, properties); properties.widths = _this10.buildCharCodeToWidth(metrics.widths, properties);
return new Font(baseFontName, null, properties); return new Font(baseFontName, null, properties);
}.bind(this)); });
} }
} }
var firstChar = dict.get('FirstChar') || 0; var firstChar = dict.get('FirstChar') || 0;
@ -19914,14 +19933,14 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
cMapPromise = Promise.resolve(undefined); cMapPromise = Promise.resolve(undefined);
} }
return cMapPromise.then(function () { return cMapPromise.then(function () {
return this.extractDataStructures(dict, baseDict, properties); return _this10.extractDataStructures(dict, baseDict, properties);
}.bind(this)).then(function (properties) { }).then(function (properties) {
this.extractWidths(dict, descriptor, properties); _this10.extractWidths(dict, descriptor, properties);
if (type === 'Type3') { if (type === 'Type3') {
properties.isType3Font = true; properties.isType3Font = true;
} }
return new Font(fontName.name, fontFile, properties); return new Font(fontName.name, fontFile, properties);
}.bind(this)); });
} }
}; };
return PartialEvaluator; return PartialEvaluator;
@ -19957,19 +19976,25 @@ var TranslatedFont = function TranslatedFontClosure() {
var fontResources = this.dict.get('Resources') || resources; var fontResources = this.dict.get('Resources') || resources;
var charProcKeys = charProcs.getKeys(); var charProcKeys = charProcs.getKeys();
var charProcOperatorList = Object.create(null); var charProcOperatorList = Object.create(null);
for (var i = 0, n = charProcKeys.length; i < n; ++i) {
loadCharProcsPromise = loadCharProcsPromise.then(function (key) { var _loop2 = function _loop2() {
var key = charProcKeys[i];
loadCharProcsPromise = loadCharProcsPromise.then(function () {
var glyphStream = charProcs.get(key); var glyphStream = charProcs.get(key);
var operatorList = new OperatorList(); var operatorList = new OperatorList();
return type3Evaluator.getOperatorList(glyphStream, task, fontResources, operatorList).then(function () { return type3Evaluator.getOperatorList(glyphStream, task, fontResources, operatorList).then(function () {
charProcOperatorList[key] = operatorList.getIR(); charProcOperatorList[key] = operatorList.getIR();
parentOperatorList.addDependencies(operatorList.dependencies); parentOperatorList.addDependencies(operatorList.dependencies);
}, function (reason) { }).catch(function (reason) {
warn('Type3 font resource \"' + key + '\" is not available'); warn('Type3 font resource "' + key + '" is not available.');
var operatorList = new OperatorList(); var operatorList = new OperatorList();
charProcOperatorList[key] = operatorList.getIR(); charProcOperatorList[key] = operatorList.getIR();
}); });
}.bind(this, charProcKeys[i])); });
};
for (var i = 0, n = charProcKeys.length; i < n; ++i) {
_loop2();
} }
this.type3Loaded = loadCharProcsPromise.then(function () { this.type3Loaded = loadCharProcsPromise.then(function () {
translatedFont.charProcOperatorList = charProcOperatorList; translatedFont.charProcOperatorList = charProcOperatorList;
@ -28024,8 +28049,8 @@ if (!_util.globalScope.PDFJS) {
} }
var PDFJS = _util.globalScope.PDFJS; var PDFJS = _util.globalScope.PDFJS;
{ {
PDFJS.version = '1.8.290'; PDFJS.version = '1.8.292';
PDFJS.build = '60c232bc'; PDFJS.build = 'e18a08ff';
} }
PDFJS.pdfBug = false; PDFJS.pdfBug = false;
if (PDFJS.verbosity !== undefined) { if (PDFJS.verbosity !== undefined) {
@ -42401,7 +42426,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() {
var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
var operatorList = font.charProcOperatorList[glyph.operatorListId]; var operatorList = font.charProcOperatorList[glyph.operatorListId];
if (!operatorList) { if (!operatorList) {
(0, _util.warn)('Type3 character \"' + glyph.operatorListId + '\" is not available'); (0, _util.warn)('Type3 character "' + glyph.operatorListId + '" is not available.');
continue; continue;
} }
this.processingType3 = glyph; this.processingType3 = glyph;
@ -43550,8 +43575,8 @@ exports.TilingPattern = TilingPattern;
"use strict"; "use strict";
var pdfjsVersion = '1.8.290'; var pdfjsVersion = '1.8.292';
var pdfjsBuild = '60c232bc'; var pdfjsBuild = 'e18a08ff';
var pdfjsSharedUtil = __w_pdfjs_require__(0); var pdfjsSharedUtil = __w_pdfjs_require__(0);
var pdfjsDisplayGlobal = __w_pdfjs_require__(26); var pdfjsDisplayGlobal = __w_pdfjs_require__(26);
var pdfjsDisplayAPI = __w_pdfjs_require__(10); var pdfjsDisplayAPI = __w_pdfjs_require__(10);

14
build/pdf.js

@ -3435,8 +3435,8 @@ var _UnsupportedManager = function UnsupportedManagerClosure() {
}(); }();
var version, build; var version, build;
{ {
exports.version = version = '1.8.290'; exports.version = version = '1.8.292';
exports.build = build = '60c232bc'; exports.build = build = 'e18a08ff';
} }
exports.getDocument = getDocument; exports.getDocument = getDocument;
exports.PDFDataRangeTransport = PDFDataRangeTransport; exports.PDFDataRangeTransport = PDFDataRangeTransport;
@ -5403,8 +5403,8 @@ if (!_util.globalScope.PDFJS) {
} }
var PDFJS = _util.globalScope.PDFJS; var PDFJS = _util.globalScope.PDFJS;
{ {
PDFJS.version = '1.8.290'; PDFJS.version = '1.8.292';
PDFJS.build = '60c232bc'; PDFJS.build = 'e18a08ff';
} }
PDFJS.pdfBug = false; PDFJS.pdfBug = false;
if (PDFJS.verbosity !== undefined) { if (PDFJS.verbosity !== undefined) {
@ -6749,7 +6749,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() {
var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
var operatorList = font.charProcOperatorList[glyph.operatorListId]; var operatorList = font.charProcOperatorList[glyph.operatorListId];
if (!operatorList) { if (!operatorList) {
(0, _util.warn)('Type3 character \"' + glyph.operatorListId + '\" is not available'); (0, _util.warn)('Type3 character "' + glyph.operatorListId + '" is not available.');
continue; continue;
} }
this.processingType3 = glyph; this.processingType3 = glyph;
@ -7898,8 +7898,8 @@ exports.TilingPattern = TilingPattern;
"use strict"; "use strict";
var pdfjsVersion = '1.8.290'; var pdfjsVersion = '1.8.292';
var pdfjsBuild = '60c232bc'; var pdfjsBuild = 'e18a08ff';
var pdfjsSharedUtil = __w_pdfjs_require__(0); var pdfjsSharedUtil = __w_pdfjs_require__(0);
var pdfjsDisplayGlobal = __w_pdfjs_require__(9); var pdfjsDisplayGlobal = __w_pdfjs_require__(9);
var pdfjsDisplayAPI = __w_pdfjs_require__(3); var pdfjsDisplayAPI = __w_pdfjs_require__(3);

4
build/pdf.min.js vendored

File diff suppressed because one or more lines are too long

111
build/pdf.worker.js vendored

@ -15401,7 +15401,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}); });
}, },
buildPaintImageXObject: function PartialEvaluator_buildPaintImageXObject(resources, image, inline, operatorList, cacheKey, imageCache) { buildPaintImageXObject: function PartialEvaluator_buildPaintImageXObject(resources, image, inline, operatorList, cacheKey, imageCache) {
var self = this; var _this2 = this;
var dict = image.dict; var dict = image.dict;
var w = dict.get('Width', 'W'); var w = dict.get('Width', 'W');
var h = dict.get('Height', 'H'); var h = dict.get('Height', 'H');
@ -15455,14 +15456,14 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
} }
var nativeImageDecoder = null; var nativeImageDecoder = null;
if (useNativeImageDecoder && (image instanceof JpegStream || mask instanceof JpegStream || softMask instanceof JpegStream)) { if (useNativeImageDecoder && (image instanceof JpegStream || mask instanceof JpegStream || softMask instanceof JpegStream)) {
nativeImageDecoder = new NativeImageDecoder(self.xref, resources, self.handler, self.options.forceDataSchema); nativeImageDecoder = new NativeImageDecoder(this.xref, resources, this.handler, this.options.forceDataSchema);
} }
PDFImage.buildImage(self.handler, self.xref, resources, image, inline, nativeImageDecoder).then(function (imageObj) { PDFImage.buildImage(this.handler, this.xref, resources, image, inline, nativeImageDecoder).then(function (imageObj) {
var imgData = imageObj.createImageData(false); var imgData = imageObj.createImageData(false);
self.handler.send('obj', [objId, self.pageIndex, 'Image', imgData], [imgData.data.buffer]); _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', imgData], [imgData.data.buffer]);
}).then(undefined, function (reason) { }).catch(function (reason) {
warn('Unable to decode image: ' + reason); warn('Unable to decode image: ' + reason);
self.handler.send('obj', [objId, self.pageIndex, 'Image', null]); _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', null]);
}); });
operatorList.addOp(OPS.paintImageXObject, args); operatorList.addOp(OPS.paintImageXObject, args);
if (cacheKey) { if (cacheKey) {
@ -15505,39 +15506,42 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}); });
}, },
handleSetFont: function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) { handleSetFont: function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) {
var _this3 = this;
var fontName; var fontName;
if (fontArgs) { if (fontArgs) {
fontArgs = fontArgs.slice(); fontArgs = fontArgs.slice();
fontName = fontArgs[0].name; fontName = fontArgs[0].name;
} }
var self = this;
return this.loadFont(fontName, fontRef, resources).then(function (translated) { return this.loadFont(fontName, fontRef, resources).then(function (translated) {
if (!translated.font.isType3Font) { if (!translated.font.isType3Font) {
return translated; return translated;
} }
return translated.loadType3Data(self, resources, operatorList, task).then(function () { return translated.loadType3Data(_this3, resources, operatorList, task).then(function () {
return translated; return translated;
}, function (reason) { }).catch(function (reason) {
self.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.font }); _this3.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.font });
return new TranslatedFont('g_font_error', new ErrorFont('Type3 font load error: ' + reason), translated.font); return new TranslatedFont('g_font_error', new ErrorFont('Type3 font load error: ' + reason), translated.font);
}); });
}).then(function (translated) { }).then(function (translated) {
state.font = translated.font; state.font = translated.font;
translated.send(self.handler); translated.send(_this3.handler);
return translated.loadedName; return translated.loadedName;
}); });
}, },
handleText: function PartialEvaluator_handleText(chars, state) { handleText: function PartialEvaluator_handleText(chars, state) {
var _this4 = this;
var font = state.font; var font = state.font;
var glyphs = font.charsToGlyphs(chars); var glyphs = font.charsToGlyphs(chars);
var isAddToPathSet = !!(state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG); var isAddToPathSet = !!(state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG);
if (font.data && (isAddToPathSet || this.options.disableFontFace)) { if (font.data && (isAddToPathSet || this.options.disableFontFace)) {
var buildPath = function (fontChar) { var buildPath = function buildPath(fontChar) {
if (!font.renderer.hasBuiltPath(fontChar)) { if (!font.renderer.hasBuiltPath(fontChar)) {
var path = font.renderer.getPathJs(fontChar); var path = font.renderer.getPathJs(fontChar);
this.handler.send('commonobj', [font.loadedName + '_path_' + fontChar, 'FontPath', path]); _this4.handler.send('commonobj', [font.loadedName + '_path_' + fontChar, 'FontPath', path]);
} }
}.bind(this); };
for (var i = 0, ii = glyphs.length; i < ii; i++) { for (var i = 0, ii = glyphs.length; i < ii; i++) {
var glyph = glyphs[i]; var glyph = glyphs[i];
buildPath(glyph.fontChar); buildPath(glyph.fontChar);
@ -15550,11 +15554,13 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
return glyphs; return glyphs;
}, },
setGState: function PartialEvaluator_setGState(resources, gState, operatorList, task, stateManager) { setGState: function PartialEvaluator_setGState(resources, gState, operatorList, task, stateManager) {
var _this5 = this;
var gStateObj = []; var gStateObj = [];
var gStateKeys = gState.getKeys(); var gStateKeys = gState.getKeys();
var self = this;
var promise = Promise.resolve(); var promise = Promise.resolve();
for (var i = 0, ii = gStateKeys.length; i < ii; i++) {
var _loop = function _loop() {
var key = gStateKeys[i]; var key = gStateKeys[i];
var value = gState.get(key); var value = gState.get(key);
switch (key) { switch (key) {
@ -15573,7 +15579,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
break; break;
case 'Font': case 'Font':
promise = promise.then(function () { promise = promise.then(function () {
return self.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) { return _this5.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) {
operatorList.addDependency(loadedName); operatorList.addDependency(loadedName);
gStateObj.push([key, [loadedName, value[1]]]); gStateObj.push([key, [loadedName, value[1]]]);
}); });
@ -15588,9 +15594,9 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
break; break;
} }
if (isDict(value)) { if (isDict(value)) {
promise = promise.then(function (dict) { promise = promise.then(function () {
return self.handleSMask(dict, resources, operatorList, task, stateManager); return _this5.handleSMask(value, resources, operatorList, task, stateManager);
}.bind(this, value)); });
gStateObj.push([key, true]); gStateObj.push([key, true]);
} else { } else {
warn('Unsupported SMask type'); warn('Unsupported SMask type');
@ -15616,6 +15622,10 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
info('Unknown graphic state operator ' + key); info('Unknown graphic state operator ' + key);
break; break;
} }
};
for (var i = 0, ii = gStateKeys.length; i < ii; i++) {
_loop();
} }
return promise.then(function () { return promise.then(function () {
if (gStateObj.length > 0) { if (gStateObj.length > 0) {
@ -15624,6 +15634,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}); });
}, },
loadFont: function PartialEvaluator_loadFont(fontName, font, resources) { loadFont: function PartialEvaluator_loadFont(fontName, font, resources) {
var _this6 = this;
function errorFont() { function errorFont() {
return Promise.resolve(new TranslatedFont('g_font_error', new ErrorFont('Font ' + fontName + ' is not available'), font)); return Promise.resolve(new TranslatedFont('g_font_error', new ErrorFont('Font ' + fontName + ' is not available'), font));
} }
@ -15700,15 +15712,14 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
} catch (e) { } catch (e) {
translatedPromise = Promise.reject(e); translatedPromise = Promise.reject(e);
} }
var self = this;
translatedPromise.then(function (translatedFont) { translatedPromise.then(function (translatedFont) {
if (translatedFont.fontType !== undefined) { if (translatedFont.fontType !== undefined) {
var xrefFontStats = xref.stats.fontTypes; var xrefFontStats = xref.stats.fontTypes;
xrefFontStats[translatedFont.fontType] = true; xrefFontStats[translatedFont.fontType] = true;
} }
fontCapability.resolve(new TranslatedFont(font.loadedName, translatedFont, font)); fontCapability.resolve(new TranslatedFont(font.loadedName, translatedFont, font));
}, function (reason) { }).catch(function (reason) {
self.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.font }); _this6.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.font });
try { try {
var descriptor = preEvaluatedFont.descriptor; var descriptor = preEvaluatedFont.descriptor;
var fontFile3 = descriptor && descriptor.get('FontFile3'); var fontFile3 = descriptor && descriptor.get('FontFile3');
@ -15756,6 +15767,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
return Promise.resolve(); return Promise.resolve();
}, },
getOperatorList: function PartialEvaluator_getOperatorList(stream, task, resources, operatorList, initialState) { getOperatorList: function PartialEvaluator_getOperatorList(stream, task, resources, operatorList, initialState) {
var _this7 = this;
var self = this; var self = this;
var xref = this.xref; var xref = this.xref;
var imageCache = Object.create(null); var imageCache = Object.create(null);
@ -16009,16 +16022,18 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
closePendingRestoreOPS(); closePendingRestoreOPS();
resolve(); resolve();
}).catch(function (reason) { }).catch(function (reason) {
if (this.options.ignoreErrors) { if (_this7.options.ignoreErrors) {
this.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.unknown }); _this7.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.unknown });
warn('getOperatorList - ignoring errors during task: ' + task.name); warn('getOperatorList - ignoring errors during task: ' + task.name);
closePendingRestoreOPS(); closePendingRestoreOPS();
return; return;
} }
throw reason; throw reason;
}.bind(this)); });
}, },
getTextContent: function PartialEvaluator_getTextContent(stream, task, resources, stateManager, normalizeWhitespace, combineTextItems) { getTextContent: function PartialEvaluator_getTextContent(stream, task, resources, stateManager, normalizeWhitespace, combineTextItems) {
var _this8 = this;
stateManager = stateManager || new StateManager(new TextState()); stateManager = stateManager || new StateManager(new TextState());
var WhitespaceRegexp = /\s/g; var WhitespaceRegexp = /\s/g;
var textContent = { var textContent = {
@ -16430,15 +16445,17 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
flushTextContentItem(); flushTextContentItem();
resolve(textContent); resolve(textContent);
}).catch(function (reason) { }).catch(function (reason) {
if (this.options.ignoreErrors) { if (_this8.options.ignoreErrors) {
warn('getTextContent - ignoring errors during task: ' + task.name); warn('getTextContent - ignoring errors during task: ' + task.name);
flushTextContentItem(); flushTextContentItem();
return textContent; return textContent;
} }
throw reason; throw reason;
}.bind(this)); });
}, },
extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, properties) { extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, properties) {
var _this9 = this;
var xref = this.xref; var xref = this.xref;
var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode'); var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode');
var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined); var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined);
@ -16514,8 +16531,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
properties.dict = dict; properties.dict = dict;
return toUnicodePromise.then(function (toUnicode) { return toUnicodePromise.then(function (toUnicode) {
properties.toUnicode = toUnicode; properties.toUnicode = toUnicode;
return this.buildToUnicode(properties); return _this9.buildToUnicode(properties);
}.bind(this)).then(function (toUnicode) { }).then(function (toUnicode) {
properties.toUnicode = toUnicode; properties.toUnicode = toUnicode;
return properties; return properties;
}); });
@ -16867,6 +16884,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}; };
}, },
translateFont: function PartialEvaluator_translateFont(preEvaluatedFont) { translateFont: function PartialEvaluator_translateFont(preEvaluatedFont) {
var _this10 = this;
var baseDict = preEvaluatedFont.baseDict; var baseDict = preEvaluatedFont.baseDict;
var dict = preEvaluatedFont.dict; var dict = preEvaluatedFont.dict;
var composite = preEvaluatedFont.composite; var composite = preEvaluatedFont.composite;
@ -16896,9 +16915,9 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
lastChar: maxCharIndex lastChar: maxCharIndex
}; };
return this.extractDataStructures(dict, dict, properties).then(function (properties) { return this.extractDataStructures(dict, dict, properties).then(function (properties) {
properties.widths = this.buildCharCodeToWidth(metrics.widths, properties); properties.widths = _this10.buildCharCodeToWidth(metrics.widths, properties);
return new Font(baseFontName, null, properties); return new Font(baseFontName, null, properties);
}.bind(this)); });
} }
} }
var firstChar = dict.get('FirstChar') || 0; var firstChar = dict.get('FirstChar') || 0;
@ -16977,14 +16996,14 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
cMapPromise = Promise.resolve(undefined); cMapPromise = Promise.resolve(undefined);
} }
return cMapPromise.then(function () { return cMapPromise.then(function () {
return this.extractDataStructures(dict, baseDict, properties); return _this10.extractDataStructures(dict, baseDict, properties);
}.bind(this)).then(function (properties) { }).then(function (properties) {
this.extractWidths(dict, descriptor, properties); _this10.extractWidths(dict, descriptor, properties);
if (type === 'Type3') { if (type === 'Type3') {
properties.isType3Font = true; properties.isType3Font = true;
} }
return new Font(fontName.name, fontFile, properties); return new Font(fontName.name, fontFile, properties);
}.bind(this)); });
} }
}; };
return PartialEvaluator; return PartialEvaluator;
@ -17020,19 +17039,25 @@ var TranslatedFont = function TranslatedFontClosure() {
var fontResources = this.dict.get('Resources') || resources; var fontResources = this.dict.get('Resources') || resources;
var charProcKeys = charProcs.getKeys(); var charProcKeys = charProcs.getKeys();
var charProcOperatorList = Object.create(null); var charProcOperatorList = Object.create(null);
for (var i = 0, n = charProcKeys.length; i < n; ++i) {
loadCharProcsPromise = loadCharProcsPromise.then(function (key) { var _loop2 = function _loop2() {
var key = charProcKeys[i];
loadCharProcsPromise = loadCharProcsPromise.then(function () {
var glyphStream = charProcs.get(key); var glyphStream = charProcs.get(key);
var operatorList = new OperatorList(); var operatorList = new OperatorList();
return type3Evaluator.getOperatorList(glyphStream, task, fontResources, operatorList).then(function () { return type3Evaluator.getOperatorList(glyphStream, task, fontResources, operatorList).then(function () {
charProcOperatorList[key] = operatorList.getIR(); charProcOperatorList[key] = operatorList.getIR();
parentOperatorList.addDependencies(operatorList.dependencies); parentOperatorList.addDependencies(operatorList.dependencies);
}, function (reason) { }).catch(function (reason) {
warn('Type3 font resource \"' + key + '\" is not available'); warn('Type3 font resource "' + key + '" is not available.');
var operatorList = new OperatorList(); var operatorList = new OperatorList();
charProcOperatorList[key] = operatorList.getIR(); charProcOperatorList[key] = operatorList.getIR();
}); });
}.bind(this, charProcKeys[i])); });
};
for (var i = 0, n = charProcKeys.length; i < n; ++i) {
_loop2();
} }
this.type3Loaded = loadCharProcsPromise.then(function () { this.type3Loaded = loadCharProcsPromise.then(function () {
translatedFont.charProcOperatorList = charProcOperatorList; translatedFont.charProcOperatorList = charProcOperatorList;
@ -36963,8 +36988,8 @@ exports.Type1Parser = Type1Parser;
"use strict"; "use strict";
var pdfjsVersion = '1.8.290'; var pdfjsVersion = '1.8.292';
var pdfjsBuild = '60c232bc'; var pdfjsBuild = 'e18a08ff';
var pdfjsCoreWorker = __w_pdfjs_require__(8); var pdfjsCoreWorker = __w_pdfjs_require__(8);
{ {
__w_pdfjs_require__(19); __w_pdfjs_require__(19);

4
build/pdf.worker.min.js vendored

File diff suppressed because one or more lines are too long

107
lib/core/evaluator.js

@ -327,7 +327,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}); });
}, },
buildPaintImageXObject: function PartialEvaluator_buildPaintImageXObject(resources, image, inline, operatorList, cacheKey, imageCache) { buildPaintImageXObject: function PartialEvaluator_buildPaintImageXObject(resources, image, inline, operatorList, cacheKey, imageCache) {
var self = this; var _this2 = this;
var dict = image.dict; var dict = image.dict;
var w = dict.get('Width', 'W'); var w = dict.get('Width', 'W');
var h = dict.get('Height', 'H'); var h = dict.get('Height', 'H');
@ -381,14 +382,14 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
} }
var nativeImageDecoder = null; var nativeImageDecoder = null;
if (useNativeImageDecoder && (image instanceof JpegStream || mask instanceof JpegStream || softMask instanceof JpegStream)) { if (useNativeImageDecoder && (image instanceof JpegStream || mask instanceof JpegStream || softMask instanceof JpegStream)) {
nativeImageDecoder = new NativeImageDecoder(self.xref, resources, self.handler, self.options.forceDataSchema); nativeImageDecoder = new NativeImageDecoder(this.xref, resources, this.handler, this.options.forceDataSchema);
} }
PDFImage.buildImage(self.handler, self.xref, resources, image, inline, nativeImageDecoder).then(function (imageObj) { PDFImage.buildImage(this.handler, this.xref, resources, image, inline, nativeImageDecoder).then(function (imageObj) {
var imgData = imageObj.createImageData(false); var imgData = imageObj.createImageData(false);
self.handler.send('obj', [objId, self.pageIndex, 'Image', imgData], [imgData.data.buffer]); _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', imgData], [imgData.data.buffer]);
}).then(undefined, function (reason) { }).catch(function (reason) {
warn('Unable to decode image: ' + reason); warn('Unable to decode image: ' + reason);
self.handler.send('obj', [objId, self.pageIndex, 'Image', null]); _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', null]);
}); });
operatorList.addOp(OPS.paintImageXObject, args); operatorList.addOp(OPS.paintImageXObject, args);
if (cacheKey) { if (cacheKey) {
@ -431,39 +432,42 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}); });
}, },
handleSetFont: function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) { handleSetFont: function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) {
var _this3 = this;
var fontName; var fontName;
if (fontArgs) { if (fontArgs) {
fontArgs = fontArgs.slice(); fontArgs = fontArgs.slice();
fontName = fontArgs[0].name; fontName = fontArgs[0].name;
} }
var self = this;
return this.loadFont(fontName, fontRef, resources).then(function (translated) { return this.loadFont(fontName, fontRef, resources).then(function (translated) {
if (!translated.font.isType3Font) { if (!translated.font.isType3Font) {
return translated; return translated;
} }
return translated.loadType3Data(self, resources, operatorList, task).then(function () { return translated.loadType3Data(_this3, resources, operatorList, task).then(function () {
return translated; return translated;
}, function (reason) { }).catch(function (reason) {
self.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.font }); _this3.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.font });
return new TranslatedFont('g_font_error', new ErrorFont('Type3 font load error: ' + reason), translated.font); return new TranslatedFont('g_font_error', new ErrorFont('Type3 font load error: ' + reason), translated.font);
}); });
}).then(function (translated) { }).then(function (translated) {
state.font = translated.font; state.font = translated.font;
translated.send(self.handler); translated.send(_this3.handler);
return translated.loadedName; return translated.loadedName;
}); });
}, },
handleText: function PartialEvaluator_handleText(chars, state) { handleText: function PartialEvaluator_handleText(chars, state) {
var _this4 = this;
var font = state.font; var font = state.font;
var glyphs = font.charsToGlyphs(chars); var glyphs = font.charsToGlyphs(chars);
var isAddToPathSet = !!(state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG); var isAddToPathSet = !!(state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG);
if (font.data && (isAddToPathSet || this.options.disableFontFace)) { if (font.data && (isAddToPathSet || this.options.disableFontFace)) {
var buildPath = function (fontChar) { var buildPath = function buildPath(fontChar) {
if (!font.renderer.hasBuiltPath(fontChar)) { if (!font.renderer.hasBuiltPath(fontChar)) {
var path = font.renderer.getPathJs(fontChar); var path = font.renderer.getPathJs(fontChar);
this.handler.send('commonobj', [font.loadedName + '_path_' + fontChar, 'FontPath', path]); _this4.handler.send('commonobj', [font.loadedName + '_path_' + fontChar, 'FontPath', path]);
} }
}.bind(this); };
for (var i = 0, ii = glyphs.length; i < ii; i++) { for (var i = 0, ii = glyphs.length; i < ii; i++) {
var glyph = glyphs[i]; var glyph = glyphs[i];
buildPath(glyph.fontChar); buildPath(glyph.fontChar);
@ -476,11 +480,13 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
return glyphs; return glyphs;
}, },
setGState: function PartialEvaluator_setGState(resources, gState, operatorList, task, stateManager) { setGState: function PartialEvaluator_setGState(resources, gState, operatorList, task, stateManager) {
var _this5 = this;
var gStateObj = []; var gStateObj = [];
var gStateKeys = gState.getKeys(); var gStateKeys = gState.getKeys();
var self = this;
var promise = Promise.resolve(); var promise = Promise.resolve();
for (var i = 0, ii = gStateKeys.length; i < ii; i++) {
var _loop = function _loop() {
var key = gStateKeys[i]; var key = gStateKeys[i];
var value = gState.get(key); var value = gState.get(key);
switch (key) { switch (key) {
@ -499,7 +505,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
break; break;
case 'Font': case 'Font':
promise = promise.then(function () { promise = promise.then(function () {
return self.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) { return _this5.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) {
operatorList.addDependency(loadedName); operatorList.addDependency(loadedName);
gStateObj.push([key, [loadedName, value[1]]]); gStateObj.push([key, [loadedName, value[1]]]);
}); });
@ -514,9 +520,9 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
break; break;
} }
if (isDict(value)) { if (isDict(value)) {
promise = promise.then(function (dict) { promise = promise.then(function () {
return self.handleSMask(dict, resources, operatorList, task, stateManager); return _this5.handleSMask(value, resources, operatorList, task, stateManager);
}.bind(this, value)); });
gStateObj.push([key, true]); gStateObj.push([key, true]);
} else { } else {
warn('Unsupported SMask type'); warn('Unsupported SMask type');
@ -542,6 +548,10 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
info('Unknown graphic state operator ' + key); info('Unknown graphic state operator ' + key);
break; break;
} }
};
for (var i = 0, ii = gStateKeys.length; i < ii; i++) {
_loop();
} }
return promise.then(function () { return promise.then(function () {
if (gStateObj.length > 0) { if (gStateObj.length > 0) {
@ -550,6 +560,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}); });
}, },
loadFont: function PartialEvaluator_loadFont(fontName, font, resources) { loadFont: function PartialEvaluator_loadFont(fontName, font, resources) {
var _this6 = this;
function errorFont() { function errorFont() {
return Promise.resolve(new TranslatedFont('g_font_error', new ErrorFont('Font ' + fontName + ' is not available'), font)); return Promise.resolve(new TranslatedFont('g_font_error', new ErrorFont('Font ' + fontName + ' is not available'), font));
} }
@ -626,15 +638,14 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
} catch (e) { } catch (e) {
translatedPromise = Promise.reject(e); translatedPromise = Promise.reject(e);
} }
var self = this;
translatedPromise.then(function (translatedFont) { translatedPromise.then(function (translatedFont) {
if (translatedFont.fontType !== undefined) { if (translatedFont.fontType !== undefined) {
var xrefFontStats = xref.stats.fontTypes; var xrefFontStats = xref.stats.fontTypes;
xrefFontStats[translatedFont.fontType] = true; xrefFontStats[translatedFont.fontType] = true;
} }
fontCapability.resolve(new TranslatedFont(font.loadedName, translatedFont, font)); fontCapability.resolve(new TranslatedFont(font.loadedName, translatedFont, font));
}, function (reason) { }).catch(function (reason) {
self.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.font }); _this6.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.font });
try { try {
var descriptor = preEvaluatedFont.descriptor; var descriptor = preEvaluatedFont.descriptor;
var fontFile3 = descriptor && descriptor.get('FontFile3'); var fontFile3 = descriptor && descriptor.get('FontFile3');
@ -682,6 +693,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
return Promise.resolve(); return Promise.resolve();
}, },
getOperatorList: function PartialEvaluator_getOperatorList(stream, task, resources, operatorList, initialState) { getOperatorList: function PartialEvaluator_getOperatorList(stream, task, resources, operatorList, initialState) {
var _this7 = this;
var self = this; var self = this;
var xref = this.xref; var xref = this.xref;
var imageCache = Object.create(null); var imageCache = Object.create(null);
@ -935,16 +948,18 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
closePendingRestoreOPS(); closePendingRestoreOPS();
resolve(); resolve();
}).catch(function (reason) { }).catch(function (reason) {
if (this.options.ignoreErrors) { if (_this7.options.ignoreErrors) {
this.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.unknown }); _this7.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.unknown });
warn('getOperatorList - ignoring errors during task: ' + task.name); warn('getOperatorList - ignoring errors during task: ' + task.name);
closePendingRestoreOPS(); closePendingRestoreOPS();
return; return;
} }
throw reason; throw reason;
}.bind(this)); });
}, },
getTextContent: function PartialEvaluator_getTextContent(stream, task, resources, stateManager, normalizeWhitespace, combineTextItems) { getTextContent: function PartialEvaluator_getTextContent(stream, task, resources, stateManager, normalizeWhitespace, combineTextItems) {
var _this8 = this;
stateManager = stateManager || new StateManager(new TextState()); stateManager = stateManager || new StateManager(new TextState());
var WhitespaceRegexp = /\s/g; var WhitespaceRegexp = /\s/g;
var textContent = { var textContent = {
@ -1356,15 +1371,17 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
flushTextContentItem(); flushTextContentItem();
resolve(textContent); resolve(textContent);
}).catch(function (reason) { }).catch(function (reason) {
if (this.options.ignoreErrors) { if (_this8.options.ignoreErrors) {
warn('getTextContent - ignoring errors during task: ' + task.name); warn('getTextContent - ignoring errors during task: ' + task.name);
flushTextContentItem(); flushTextContentItem();
return textContent; return textContent;
} }
throw reason; throw reason;
}.bind(this)); });
}, },
extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, properties) { extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, properties) {
var _this9 = this;
var xref = this.xref; var xref = this.xref;
var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode'); var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode');
var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined); var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined);
@ -1440,8 +1457,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
properties.dict = dict; properties.dict = dict;
return toUnicodePromise.then(function (toUnicode) { return toUnicodePromise.then(function (toUnicode) {
properties.toUnicode = toUnicode; properties.toUnicode = toUnicode;
return this.buildToUnicode(properties); return _this9.buildToUnicode(properties);
}.bind(this)).then(function (toUnicode) { }).then(function (toUnicode) {
properties.toUnicode = toUnicode; properties.toUnicode = toUnicode;
return properties; return properties;
}); });
@ -1793,6 +1810,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}; };
}, },
translateFont: function PartialEvaluator_translateFont(preEvaluatedFont) { translateFont: function PartialEvaluator_translateFont(preEvaluatedFont) {
var _this10 = this;
var baseDict = preEvaluatedFont.baseDict; var baseDict = preEvaluatedFont.baseDict;
var dict = preEvaluatedFont.dict; var dict = preEvaluatedFont.dict;
var composite = preEvaluatedFont.composite; var composite = preEvaluatedFont.composite;
@ -1822,9 +1841,9 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
lastChar: maxCharIndex lastChar: maxCharIndex
}; };
return this.extractDataStructures(dict, dict, properties).then(function (properties) { return this.extractDataStructures(dict, dict, properties).then(function (properties) {
properties.widths = this.buildCharCodeToWidth(metrics.widths, properties); properties.widths = _this10.buildCharCodeToWidth(metrics.widths, properties);
return new Font(baseFontName, null, properties); return new Font(baseFontName, null, properties);
}.bind(this)); });
} }
} }
var firstChar = dict.get('FirstChar') || 0; var firstChar = dict.get('FirstChar') || 0;
@ -1903,14 +1922,14 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
cMapPromise = Promise.resolve(undefined); cMapPromise = Promise.resolve(undefined);
} }
return cMapPromise.then(function () { return cMapPromise.then(function () {
return this.extractDataStructures(dict, baseDict, properties); return _this10.extractDataStructures(dict, baseDict, properties);
}.bind(this)).then(function (properties) { }).then(function (properties) {
this.extractWidths(dict, descriptor, properties); _this10.extractWidths(dict, descriptor, properties);
if (type === 'Type3') { if (type === 'Type3') {
properties.isType3Font = true; properties.isType3Font = true;
} }
return new Font(fontName.name, fontFile, properties); return new Font(fontName.name, fontFile, properties);
}.bind(this)); });
} }
}; };
return PartialEvaluator; return PartialEvaluator;
@ -1946,19 +1965,25 @@ var TranslatedFont = function TranslatedFontClosure() {
var fontResources = this.dict.get('Resources') || resources; var fontResources = this.dict.get('Resources') || resources;
var charProcKeys = charProcs.getKeys(); var charProcKeys = charProcs.getKeys();
var charProcOperatorList = Object.create(null); var charProcOperatorList = Object.create(null);
for (var i = 0, n = charProcKeys.length; i < n; ++i) {
loadCharProcsPromise = loadCharProcsPromise.then(function (key) { var _loop2 = function _loop2() {
var key = charProcKeys[i];
loadCharProcsPromise = loadCharProcsPromise.then(function () {
var glyphStream = charProcs.get(key); var glyphStream = charProcs.get(key);
var operatorList = new OperatorList(); var operatorList = new OperatorList();
return type3Evaluator.getOperatorList(glyphStream, task, fontResources, operatorList).then(function () { return type3Evaluator.getOperatorList(glyphStream, task, fontResources, operatorList).then(function () {
charProcOperatorList[key] = operatorList.getIR(); charProcOperatorList[key] = operatorList.getIR();
parentOperatorList.addDependencies(operatorList.dependencies); parentOperatorList.addDependencies(operatorList.dependencies);
}, function (reason) { }).catch(function (reason) {
warn('Type3 font resource \"' + key + '\" is not available'); warn('Type3 font resource "' + key + '" is not available.');
var operatorList = new OperatorList(); var operatorList = new OperatorList();
charProcOperatorList[key] = operatorList.getIR(); charProcOperatorList[key] = operatorList.getIR();
}); });
}.bind(this, charProcKeys[i])); });
};
for (var i = 0, n = charProcKeys.length; i < n; ++i) {
_loop2();
} }
this.type3Loaded = loadCharProcsPromise.then(function () { this.type3Loaded = loadCharProcsPromise.then(function () {
translatedFont.charProcOperatorList = charProcOperatorList; translatedFont.charProcOperatorList = charProcOperatorList;

4
lib/display/api.js

@ -1366,8 +1366,8 @@ var _UnsupportedManager = function UnsupportedManagerClosure() {
}(); }();
var version, build; var version, build;
{ {
exports.version = version = '1.8.290'; exports.version = version = '1.8.292';
exports.build = build = '60c232bc'; exports.build = build = 'e18a08ff';
} }
exports.getDocument = getDocument; exports.getDocument = getDocument;
exports.PDFDataRangeTransport = PDFDataRangeTransport; exports.PDFDataRangeTransport = PDFDataRangeTransport;

2
lib/display/canvas.js

@ -1247,7 +1247,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() {
var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
var operatorList = font.charProcOperatorList[glyph.operatorListId]; var operatorList = font.charProcOperatorList[glyph.operatorListId];
if (!operatorList) { if (!operatorList) {
(0, _util.warn)('Type3 character \"' + glyph.operatorListId + '\" is not available'); (0, _util.warn)('Type3 character "' + glyph.operatorListId + '" is not available.');
continue; continue;
} }
this.processingType3 = glyph; this.processingType3 = glyph;

4
lib/display/global.js

@ -39,8 +39,8 @@ if (!_util.globalScope.PDFJS) {
} }
var PDFJS = _util.globalScope.PDFJS; var PDFJS = _util.globalScope.PDFJS;
{ {
PDFJS.version = '1.8.290'; PDFJS.version = '1.8.292';
PDFJS.build = '60c232bc'; PDFJS.build = 'e18a08ff';
} }
PDFJS.pdfBug = false; PDFJS.pdfBug = false;
if (PDFJS.verbosity !== undefined) { if (PDFJS.verbosity !== undefined) {

4
lib/pdf.js

@ -14,8 +14,8 @@
*/ */
'use strict'; 'use strict';
var pdfjsVersion = '1.8.290'; var pdfjsVersion = '1.8.292';
var pdfjsBuild = '60c232bc'; var pdfjsBuild = 'e18a08ff';
var pdfjsSharedUtil = require('./shared/util.js'); var pdfjsSharedUtil = require('./shared/util.js');
var pdfjsDisplayGlobal = require('./display/global.js'); var pdfjsDisplayGlobal = require('./display/global.js');
var pdfjsDisplayAPI = require('./display/api.js'); var pdfjsDisplayAPI = require('./display/api.js');

4
lib/pdf.worker.js vendored

@ -14,8 +14,8 @@
*/ */
'use strict'; 'use strict';
var pdfjsVersion = '1.8.290'; var pdfjsVersion = '1.8.292';
var pdfjsBuild = '60c232bc'; var pdfjsBuild = 'e18a08ff';
var pdfjsCoreWorker = require('./core/worker.js'); var pdfjsCoreWorker = require('./core/worker.js');
{ {
require('./core/network.js'); require('./core/network.js');

2
package.json

@ -1,6 +1,6 @@
{ {
"name": "pdfjs-dist", "name": "pdfjs-dist",
"version": "1.8.290", "version": "1.8.292",
"main": "build/pdf.js", "main": "build/pdf.js",
"description": "Generic build of Mozilla's PDF.js library.", "description": "Generic build of Mozilla's PDF.js library.",
"keywords": [ "keywords": [

Loading…
Cancel
Save