|
|
|
@ -28,8 +28,8 @@ factory((root.pdfjsDistBuildPdfWorker = {}));
@@ -28,8 +28,8 @@ factory((root.pdfjsDistBuildPdfWorker = {}));
|
|
|
|
|
// Use strict in our context only - users might not want it
|
|
|
|
|
'use strict'; |
|
|
|
|
|
|
|
|
|
var pdfjsVersion = '1.4.183'; |
|
|
|
|
var pdfjsBuild = 'ff3ce97'; |
|
|
|
|
var pdfjsVersion = '1.4.185'; |
|
|
|
|
var pdfjsBuild = 'a250c15'; |
|
|
|
|
|
|
|
|
|
var pdfjsFilePath = |
|
|
|
|
typeof document !== 'undefined' && document.currentScript ? |
|
|
|
@ -18076,9 +18076,6 @@ var Jbig2Image = coreJbig2.Jbig2Image;
@@ -18076,9 +18076,6 @@ var Jbig2Image = coreJbig2.Jbig2Image;
|
|
|
|
|
var JpegImage = coreJpg.JpegImage; |
|
|
|
|
var JpxImage = coreJpx.JpxImage; |
|
|
|
|
|
|
|
|
|
var coreColorSpace; // see _setCoreColorSpace below
|
|
|
|
|
var ColorSpace; // = coreColorSpace.ColorSpace;
|
|
|
|
|
|
|
|
|
|
var Stream = (function StreamClosure() { |
|
|
|
|
function Stream(arrayBuffer, start, length, dict) { |
|
|
|
|
this.bytes = (arrayBuffer instanceof Uint8Array ? |
|
|
|
@ -18995,25 +18992,6 @@ var JpegStream = (function JpegStreamClosure() {
@@ -18995,25 +18992,6 @@ var JpegStream = (function JpegStreamClosure() {
|
|
|
|
|
JpegStream.prototype.getIR = function JpegStream_getIR(forceDataSchema) { |
|
|
|
|
return createObjectURL(this.bytes, 'image/jpeg', forceDataSchema); |
|
|
|
|
}; |
|
|
|
|
/** |
|
|
|
|
* Checks if the image can be decoded and displayed by the browser without any |
|
|
|
|
* further processing such as color space conversions. |
|
|
|
|
*/ |
|
|
|
|
JpegStream.prototype.isNativelySupported = |
|
|
|
|
function JpegStream_isNativelySupported(xref, res) { |
|
|
|
|
var cs = ColorSpace.parse(this.dict.get('ColorSpace', 'CS'), xref, res); |
|
|
|
|
return (cs.name === 'DeviceGray' || cs.name === 'DeviceRGB') && |
|
|
|
|
cs.isDefaultDecode(this.dict.get('Decode', 'D')); |
|
|
|
|
}; |
|
|
|
|
/** |
|
|
|
|
* Checks if the image can be decoded by the browser. |
|
|
|
|
*/ |
|
|
|
|
JpegStream.prototype.isNativelyDecodable = |
|
|
|
|
function JpegStream_isNativelyDecodable(xref, res) { |
|
|
|
|
var cs = ColorSpace.parse(this.dict.get('ColorSpace', 'CS'), xref, res); |
|
|
|
|
return (cs.numComps === 1 || cs.numComps === 3) && |
|
|
|
|
cs.isDefaultDecode(this.dict.get('Decode', 'D')); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
return JpegStream; |
|
|
|
|
})(); |
|
|
|
@ -20533,13 +20511,6 @@ var NullStream = (function NullStreamClosure() {
@@ -20533,13 +20511,6 @@ var NullStream = (function NullStreamClosure() {
|
|
|
|
|
return NullStream; |
|
|
|
|
})(); |
|
|
|
|
|
|
|
|
|
// TODO refactor to remove dependency on colorspace.js
|
|
|
|
|
function _setCoreColorSpace(coreColorSpace_) { |
|
|
|
|
coreColorSpace = coreColorSpace_; |
|
|
|
|
ColorSpace = coreColorSpace_.ColorSpace; |
|
|
|
|
} |
|
|
|
|
exports._setCoreColorSpace = _setCoreColorSpace; |
|
|
|
|
|
|
|
|
|
exports.Ascii85Stream = Ascii85Stream; |
|
|
|
|
exports.AsciiHexStream = AsciiHexStream; |
|
|
|
|
exports.CCITTFaxStream = CCITTFaxStream; |
|
|
|
@ -32391,10 +32362,9 @@ exports.PostScriptCompiler = PostScriptCompiler;
@@ -32391,10 +32362,9 @@ exports.PostScriptCompiler = PostScriptCompiler;
|
|
|
|
|
(function (root, factory) { |
|
|
|
|
{ |
|
|
|
|
factory((root.pdfjsCoreColorSpace = {}), root.pdfjsSharedUtil, |
|
|
|
|
root.pdfjsCorePrimitives, root.pdfjsCoreFunction, root.pdfjsCoreStream); |
|
|
|
|
root.pdfjsCorePrimitives, root.pdfjsCoreFunction); |
|
|
|
|
} |
|
|
|
|
}(this, function (exports, sharedUtil, corePrimitives, coreFunction, |
|
|
|
|
coreStream) { |
|
|
|
|
}(this, function (exports, sharedUtil, corePrimitives, coreFunction) { |
|
|
|
|
|
|
|
|
|
var error = sharedUtil.error; |
|
|
|
|
var info = sharedUtil.info; |
|
|
|
@ -33665,9 +33635,6 @@ function _setCoreImage(coreImage_) {
@@ -33665,9 +33635,6 @@ function _setCoreImage(coreImage_) {
|
|
|
|
|
exports._setCoreImage = _setCoreImage; |
|
|
|
|
|
|
|
|
|
exports.ColorSpace = ColorSpace; |
|
|
|
|
|
|
|
|
|
// TODO refactor to remove dependency on colorspace.js
|
|
|
|
|
coreStream._setCoreColorSpace(exports); |
|
|
|
|
})); |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -33690,29 +33657,17 @@ var Name = corePrimitives.Name;
@@ -33690,29 +33657,17 @@ var Name = corePrimitives.Name;
|
|
|
|
|
var isStream = corePrimitives.isStream; |
|
|
|
|
var ColorSpace = coreColorSpace.ColorSpace; |
|
|
|
|
var DecodeStream = coreStream.DecodeStream; |
|
|
|
|
var Stream = coreStream.Stream; |
|
|
|
|
var JpegStream = coreStream.JpegStream; |
|
|
|
|
var JpxImage = coreJpx.JpxImage; |
|
|
|
|
|
|
|
|
|
var PDFImage = (function PDFImageClosure() { |
|
|
|
|
/** |
|
|
|
|
* Decode the image in the main thread if it supported. Resovles the promise |
|
|
|
|
* Decodes the image using native decoder if possible. Resolves the promise |
|
|
|
|
* when the image data is ready. |
|
|
|
|
*/ |
|
|
|
|
function handleImageData(handler, xref, res, image, forceDataSchema) { |
|
|
|
|
if (image instanceof JpegStream && image.isNativelyDecodable(xref, res)) { |
|
|
|
|
// For natively supported jpegs send them to the main thread for decoding.
|
|
|
|
|
var dict = image.dict; |
|
|
|
|
var colorSpace = dict.get('ColorSpace', 'CS'); |
|
|
|
|
colorSpace = ColorSpace.parse(colorSpace, xref, res); |
|
|
|
|
var numComps = colorSpace.numComps; |
|
|
|
|
var decodePromise = handler.sendWithPromise('JpegDecode', |
|
|
|
|
[image.getIR(forceDataSchema), |
|
|
|
|
numComps]); |
|
|
|
|
return decodePromise.then(function (message) { |
|
|
|
|
var data = message.data; |
|
|
|
|
return new Stream(data, 0, data.length, image.dict); |
|
|
|
|
}); |
|
|
|
|
function handleImageData(image, nativeDecoder) { |
|
|
|
|
if (nativeDecoder && nativeDecoder.canDecode(image)) { |
|
|
|
|
return nativeDecoder.decode(image); |
|
|
|
|
} else { |
|
|
|
|
return Promise.resolve(image); |
|
|
|
|
} |
|
|
|
@ -33834,9 +33789,8 @@ var PDFImage = (function PDFImageClosure() {
@@ -33834,9 +33789,8 @@ var PDFImage = (function PDFImageClosure() {
|
|
|
|
|
*/ |
|
|
|
|
PDFImage.buildImage = function PDFImage_buildImage(handler, xref, |
|
|
|
|
res, image, inline, |
|
|
|
|
forceDataSchema) { |
|
|
|
|
var imagePromise = handleImageData(handler, xref, res, image, |
|
|
|
|
forceDataSchema); |
|
|
|
|
nativeDecoder) { |
|
|
|
|
var imagePromise = handleImageData(image, nativeDecoder); |
|
|
|
|
var smaskPromise; |
|
|
|
|
var maskPromise; |
|
|
|
|
|
|
|
|
@ -33844,15 +33798,13 @@ var PDFImage = (function PDFImageClosure() {
@@ -33844,15 +33798,13 @@ var PDFImage = (function PDFImageClosure() {
|
|
|
|
|
var mask = image.dict.get('Mask'); |
|
|
|
|
|
|
|
|
|
if (smask) { |
|
|
|
|
smaskPromise = handleImageData(handler, xref, res, smask, |
|
|
|
|
forceDataSchema); |
|
|
|
|
smaskPromise = handleImageData(smask, nativeDecoder); |
|
|
|
|
maskPromise = Promise.resolve(null); |
|
|
|
|
} else { |
|
|
|
|
smaskPromise = Promise.resolve(null); |
|
|
|
|
if (mask) { |
|
|
|
|
if (isStream(mask)) { |
|
|
|
|
maskPromise = handleImageData(handler, xref, res, mask, |
|
|
|
|
forceDataSchema); |
|
|
|
|
maskPromise = handleImageData(mask, nativeDecoder); |
|
|
|
|
} else if (isArray(mask)) { |
|
|
|
|
maskPromise = Promise.resolve(mask); |
|
|
|
|
} else { |
|
|
|
@ -36797,6 +36749,7 @@ var isRef = corePrimitives.isRef;
@@ -36797,6 +36749,7 @@ var isRef = corePrimitives.isRef;
|
|
|
|
|
var isStream = corePrimitives.isStream; |
|
|
|
|
var DecodeStream = coreStream.DecodeStream; |
|
|
|
|
var JpegStream = coreStream.JpegStream; |
|
|
|
|
var Stream = coreStream.Stream; |
|
|
|
|
var Lexer = coreParser.Lexer; |
|
|
|
|
var Parser = coreParser.Parser; |
|
|
|
|
var isEOF = coreParser.isEOF; |
|
|
|
@ -36839,6 +36792,51 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
@@ -36839,6 +36792,51 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|
|
|
|
cMapOptions: { url: null, packed: false } |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
function NativeImageDecoder(xref, resources, handler, forceDataSchema) { |
|
|
|
|
this.xref = xref; |
|
|
|
|
this.resources = resources; |
|
|
|
|
this.handler = handler; |
|
|
|
|
this.forceDataSchema = forceDataSchema; |
|
|
|
|
} |
|
|
|
|
NativeImageDecoder.prototype = { |
|
|
|
|
canDecode: function (image) { |
|
|
|
|
return image instanceof JpegStream && |
|
|
|
|
NativeImageDecoder.isDecodable(image, this.xref, this.resources); |
|
|
|
|
}, |
|
|
|
|
decode: function (image) { |
|
|
|
|
// For natively supported JPEGs send them to the main thread for decoding.
|
|
|
|
|
var dict = image.dict; |
|
|
|
|
var colorSpace = dict.get('ColorSpace', 'CS'); |
|
|
|
|
colorSpace = ColorSpace.parse(colorSpace, this.xref, this.resources); |
|
|
|
|
var numComps = colorSpace.numComps; |
|
|
|
|
var decodePromise = this.handler.sendWithPromise('JpegDecode', |
|
|
|
|
[image.getIR(this.forceDataSchema), numComps]); |
|
|
|
|
return decodePromise.then(function (message) { |
|
|
|
|
var data = message.data; |
|
|
|
|
return new Stream(data, 0, data.length, image.dict); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
/** |
|
|
|
|
* Checks if the image can be decoded and displayed by the browser without any |
|
|
|
|
* further processing such as color space conversions. |
|
|
|
|
*/ |
|
|
|
|
NativeImageDecoder.isSupported = |
|
|
|
|
function NativeImageDecoder_isSupported(image, xref, res) { |
|
|
|
|
var cs = ColorSpace.parse(image.dict.get('ColorSpace', 'CS'), xref, res); |
|
|
|
|
return (cs.name === 'DeviceGray' || cs.name === 'DeviceRGB') && |
|
|
|
|
cs.isDefaultDecode(image.dict.get('Decode', 'D')); |
|
|
|
|
}; |
|
|
|
|
/** |
|
|
|
|
* Checks if the image can be decoded by the browser. |
|
|
|
|
*/ |
|
|
|
|
NativeImageDecoder.isDecodable = |
|
|
|
|
function NativeImageDecoder_isDecodable(image, xref, res) { |
|
|
|
|
var cs = ColorSpace.parse(image.dict.get('ColorSpace', 'CS'), xref, res); |
|
|
|
|
return (cs.numComps === 1 || cs.numComps === 3) && |
|
|
|
|
cs.isDefaultDecode(image.dict.get('Decode', 'D')); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
function PartialEvaluator(pdfManager, xref, handler, pageIndex, |
|
|
|
|
uniquePrefix, idCounters, fontCache, options) { |
|
|
|
|
this.pdfManager = pdfManager; |
|
|
|
@ -37068,7 +37066,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
@@ -37068,7 +37066,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|
|
|
|
args = [objId, w, h]; |
|
|
|
|
|
|
|
|
|
if (!softMask && !mask && image instanceof JpegStream && |
|
|
|
|
image.isNativelySupported(this.xref, resources)) { |
|
|
|
|
NativeImageDecoder.isSupported(image, this.xref, resources)) { |
|
|
|
|
// These JPEGs don't need any more processing so we can just send it.
|
|
|
|
|
operatorList.addOp(OPS.paintJpegXObject, args); |
|
|
|
|
this.handler.send('obj', |
|
|
|
@ -37077,8 +37075,16 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
@@ -37077,8 +37075,16 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Creates native image decoder only if a JPEG image or mask is present.
|
|
|
|
|
var nativeImageDecoder = null; |
|
|
|
|
if (image instanceof JpegStream || mask instanceof JpegStream || |
|
|
|
|
softMask instanceof JpegStream) { |
|
|
|
|
nativeImageDecoder = new NativeImageDecoder(self.xref, resources, |
|
|
|
|
self.handler, self.options.forceDataSchema); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
PDFImage.buildImage(self.handler, self.xref, resources, image, inline, |
|
|
|
|
this.options.forceDataSchema). |
|
|
|
|
nativeImageDecoder). |
|
|
|
|
then(function(imageObj) { |
|
|
|
|
var imgData = imageObj.createImageData(/* forceRGBA = */ false); |
|
|
|
|
self.handler.send('obj', [objId, self.pageIndex, 'Image', imgData], |
|
|
|
|