|
|
@ -22,8 +22,8 @@ if (typeof PDFJS === 'undefined') { |
|
|
|
(typeof window !== 'undefined' ? window : this).PDFJS = {}; |
|
|
|
(typeof window !== 'undefined' ? window : this).PDFJS = {}; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
PDFJS.version = '1.0.1069'; |
|
|
|
PDFJS.version = '1.0.1072'; |
|
|
|
PDFJS.build = '35e6680'; |
|
|
|
PDFJS.build = '36dd6c1'; |
|
|
|
|
|
|
|
|
|
|
|
(function pdfjsWrapper() { |
|
|
|
(function pdfjsWrapper() { |
|
|
|
// Use strict in our context only - users might not want it
|
|
|
|
// Use strict in our context only - users might not want it
|
|
|
@ -8310,6 +8310,9 @@ var ChunkedStream = (function ChunkedStreamClosure() { |
|
|
|
getUint16: function ChunkedStream_getUint16() { |
|
|
|
getUint16: function ChunkedStream_getUint16() { |
|
|
|
var b0 = this.getByte(); |
|
|
|
var b0 = this.getByte(); |
|
|
|
var b1 = this.getByte(); |
|
|
|
var b1 = this.getByte(); |
|
|
|
|
|
|
|
if (b0 === -1 || b1 === -1) { |
|
|
|
|
|
|
|
return -1; |
|
|
|
|
|
|
|
} |
|
|
|
return (b0 << 8) + b1; |
|
|
|
return (b0 << 8) + b1; |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
@ -36456,6 +36459,102 @@ var Parser = (function ParserClosure() { |
|
|
|
} |
|
|
|
} |
|
|
|
return ((stream.pos - 4) - startPos); |
|
|
|
return ((stream.pos - 4) - startPos); |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Find the EOI (end-of-image) marker 0xFFD9 of the stream. |
|
|
|
|
|
|
|
* @returns {number} The inline stream length. |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
findDCTDecodeInlineStreamEnd: |
|
|
|
|
|
|
|
function Parser_findDCTDecodeInlineStreamEnd(stream) { |
|
|
|
|
|
|
|
var startPos = stream.pos, foundEOI = false, b, markerLength, length; |
|
|
|
|
|
|
|
while ((b = stream.getByte()) !== -1) { |
|
|
|
|
|
|
|
if (b !== 0xFF) { // Not a valid marker.
|
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
switch (stream.getByte()) { |
|
|
|
|
|
|
|
case 0x00: // Byte stuffing.
|
|
|
|
|
|
|
|
// 0xFF00 appears to be a very common byte sequence in JPEG images.
|
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case 0xFF: // Fill byte.
|
|
|
|
|
|
|
|
// Avoid skipping a valid marker, resetting the stream position.
|
|
|
|
|
|
|
|
stream.skip(-1); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case 0xD9: // EOI
|
|
|
|
|
|
|
|
foundEOI = true; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case 0xC0: // SOF0
|
|
|
|
|
|
|
|
case 0xC1: // SOF1
|
|
|
|
|
|
|
|
case 0xC2: // SOF2
|
|
|
|
|
|
|
|
case 0xC3: // SOF3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case 0xC5: // SOF5
|
|
|
|
|
|
|
|
case 0xC6: // SOF6
|
|
|
|
|
|
|
|
case 0xC7: // SOF7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case 0xC9: // SOF9
|
|
|
|
|
|
|
|
case 0xCA: // SOF10
|
|
|
|
|
|
|
|
case 0xCB: // SOF11
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case 0xCD: // SOF13
|
|
|
|
|
|
|
|
case 0xCE: // SOF14
|
|
|
|
|
|
|
|
case 0xCF: // SOF15
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case 0xC4: // DHT
|
|
|
|
|
|
|
|
case 0xCC: // DAC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case 0xDA: // SOS
|
|
|
|
|
|
|
|
case 0xDB: // DQT
|
|
|
|
|
|
|
|
case 0xDC: // DNL
|
|
|
|
|
|
|
|
case 0xDD: // DRI
|
|
|
|
|
|
|
|
case 0xDE: // DHP
|
|
|
|
|
|
|
|
case 0xDF: // EXP
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case 0xE0: // APP0
|
|
|
|
|
|
|
|
case 0xE1: // APP1
|
|
|
|
|
|
|
|
case 0xE2: // APP2
|
|
|
|
|
|
|
|
case 0xE3: // APP3
|
|
|
|
|
|
|
|
case 0xE4: // APP4
|
|
|
|
|
|
|
|
case 0xE5: // APP5
|
|
|
|
|
|
|
|
case 0xE6: // APP6
|
|
|
|
|
|
|
|
case 0xE7: // APP7
|
|
|
|
|
|
|
|
case 0xE8: // APP8
|
|
|
|
|
|
|
|
case 0xE9: // APP9
|
|
|
|
|
|
|
|
case 0xEA: // APP10
|
|
|
|
|
|
|
|
case 0xEB: // APP11
|
|
|
|
|
|
|
|
case 0xEC: // APP12
|
|
|
|
|
|
|
|
case 0xED: // APP13
|
|
|
|
|
|
|
|
case 0xEE: // APP14
|
|
|
|
|
|
|
|
case 0xEF: // APP15
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case 0xFE: // COM
|
|
|
|
|
|
|
|
// The marker should be followed by the length of the segment.
|
|
|
|
|
|
|
|
markerLength = stream.getUint16(); |
|
|
|
|
|
|
|
if (markerLength > 2) { |
|
|
|
|
|
|
|
// |markerLength| contains the byte length of the marker segment,
|
|
|
|
|
|
|
|
// including its own length (2 bytes) and excluding the marker.
|
|
|
|
|
|
|
|
stream.skip(markerLength - 2); // Jump to the next marker.
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
// The marker length is invalid, resetting the stream position.
|
|
|
|
|
|
|
|
stream.skip(-2); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (foundEOI) { |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
length = stream.pos - startPos; |
|
|
|
|
|
|
|
if (b === -1) { |
|
|
|
|
|
|
|
warn('Inline DCTDecode image stream: ' + |
|
|
|
|
|
|
|
'EOI marker not found, searching for /EI/ instead.'); |
|
|
|
|
|
|
|
stream.skip(-length); // Reset the stream position.
|
|
|
|
|
|
|
|
return this.findDefaultInlineStreamEnd(stream); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
this.inlineStreamSkipEI(stream); |
|
|
|
|
|
|
|
return length; |
|
|
|
|
|
|
|
}, |
|
|
|
/** |
|
|
|
/** |
|
|
|
* Find the EOD (end-of-data) marker '~>' (i.e. TILDE + GT) of the stream. |
|
|
|
* Find the EOD (end-of-data) marker '~>' (i.e. TILDE + GT) of the stream. |
|
|
|
* @returns {number} The inline stream length. |
|
|
|
* @returns {number} The inline stream length. |
|
|
@ -36547,7 +36646,9 @@ var Parser = (function ParserClosure() { |
|
|
|
|
|
|
|
|
|
|
|
// Parse image stream.
|
|
|
|
// Parse image stream.
|
|
|
|
var startPos = stream.pos, length, i, ii; |
|
|
|
var startPos = stream.pos, length, i, ii; |
|
|
|
if (filterName === 'ASCII85Decide' || filterName === 'A85') { |
|
|
|
if (filterName === 'DCTDecode' || filterName === 'DCT') { |
|
|
|
|
|
|
|
length = this.findDCTDecodeInlineStreamEnd(stream); |
|
|
|
|
|
|
|
} else if (filterName === 'ASCII85Decide' || filterName === 'A85') { |
|
|
|
length = this.findASCII85DecodeInlineStreamEnd(stream); |
|
|
|
length = this.findASCII85DecodeInlineStreamEnd(stream); |
|
|
|
} else if (filterName === 'ASCIIHexDecode' || filterName === 'AHx') { |
|
|
|
} else if (filterName === 'ASCIIHexDecode' || filterName === 'AHx') { |
|
|
|
length = this.findASCIIHexDecodeInlineStreamEnd(stream); |
|
|
|
length = this.findASCIIHexDecodeInlineStreamEnd(stream); |
|
|
@ -37474,6 +37575,9 @@ var Stream = (function StreamClosure() { |
|
|
|
getUint16: function Stream_getUint16() { |
|
|
|
getUint16: function Stream_getUint16() { |
|
|
|
var b0 = this.getByte(); |
|
|
|
var b0 = this.getByte(); |
|
|
|
var b1 = this.getByte(); |
|
|
|
var b1 = this.getByte(); |
|
|
|
|
|
|
|
if (b0 === -1 || b1 === -1) { |
|
|
|
|
|
|
|
return -1; |
|
|
|
|
|
|
|
} |
|
|
|
return (b0 << 8) + b1; |
|
|
|
return (b0 << 8) + b1; |
|
|
|
}, |
|
|
|
}, |
|
|
|
getInt32: function Stream_getInt32() { |
|
|
|
getInt32: function Stream_getInt32() { |
|
|
@ -37601,6 +37705,9 @@ var DecodeStream = (function DecodeStreamClosure() { |
|
|
|
getUint16: function DecodeStream_getUint16() { |
|
|
|
getUint16: function DecodeStream_getUint16() { |
|
|
|
var b0 = this.getByte(); |
|
|
|
var b0 = this.getByte(); |
|
|
|
var b1 = this.getByte(); |
|
|
|
var b1 = this.getByte(); |
|
|
|
|
|
|
|
if (b0 === -1 || b1 === -1) { |
|
|
|
|
|
|
|
return -1; |
|
|
|
|
|
|
|
} |
|
|
|
return (b0 << 8) + b1; |
|
|
|
return (b0 << 8) + b1; |
|
|
|
}, |
|
|
|
}, |
|
|
|
getInt32: function DecodeStream_getInt32() { |
|
|
|
getInt32: function DecodeStream_getInt32() { |
|
|
|