|
@@ -21,8 +21,8 @@ if (typeof PDFJS === 'undefined') {
|
|
|
(typeof window !== 'undefined' ? window : this).PDFJS = {};
|
|
|
}
|
|
|
|
|
|
-PDFJS.version = '1.0.402';
|
|
|
-PDFJS.build = 'b557b87';
|
|
|
+PDFJS.version = '1.0.406';
|
|
|
+PDFJS.build = 'c0a6b0f';
|
|
|
|
|
|
(function pdfjsWrapper() {
|
|
|
// Use strict in our context only - users might not want it
|
|
@@ -9051,15 +9051,7 @@ var XRef = (function XRefClosure() {
|
|
|
error('bad XRef entry');
|
|
|
}
|
|
|
if (this.encrypt && !suppressEncryption) {
|
|
|
- try {
|
|
|
- xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num,
|
|
|
- gen));
|
|
|
- } catch (ex) {
|
|
|
- // Almost all streams must be encrypted, but sometimes
|
|
|
- // they are not, probably due to some broken generators.
|
|
|
- // Retrying without encryption...
|
|
|
- return this.fetch(ref, true);
|
|
|
- }
|
|
|
+ xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));
|
|
|
} else {
|
|
|
xrefEntry = parser.getObj();
|
|
|
}
|
|
@@ -40556,58 +40548,66 @@ var Parser = (function ParserClosure() {
|
|
|
if (stream.dict.get('Length') === 0) {
|
|
|
return new NullStream(stream);
|
|
|
}
|
|
|
- var xrefStreamStats = this.xref.stats.streamTypes;
|
|
|
- if (name == 'FlateDecode' || name == 'Fl') {
|
|
|
- xrefStreamStats[StreamType.FLATE] = true;
|
|
|
- if (params) {
|
|
|
- return new PredictorStream(new FlateStream(stream, maybeLength),
|
|
|
- maybeLength, params);
|
|
|
- }
|
|
|
- return new FlateStream(stream, maybeLength);
|
|
|
- }
|
|
|
- if (name == 'LZWDecode' || name == 'LZW') {
|
|
|
- xrefStreamStats[StreamType.LZW] = true;
|
|
|
- var earlyChange = 1;
|
|
|
- if (params) {
|
|
|
- if (params.has('EarlyChange')) {
|
|
|
- earlyChange = params.get('EarlyChange');
|
|
|
+ try {
|
|
|
+ var xrefStreamStats = this.xref.stats.streamTypes;
|
|
|
+ if (name == 'FlateDecode' || name == 'Fl') {
|
|
|
+ xrefStreamStats[StreamType.FLATE] = true;
|
|
|
+ if (params) {
|
|
|
+ return new PredictorStream(new FlateStream(stream, maybeLength),
|
|
|
+ maybeLength, params);
|
|
|
+ }
|
|
|
+ return new FlateStream(stream, maybeLength);
|
|
|
+ }
|
|
|
+ if (name == 'LZWDecode' || name == 'LZW') {
|
|
|
+ xrefStreamStats[StreamType.LZW] = true;
|
|
|
+ var earlyChange = 1;
|
|
|
+ if (params) {
|
|
|
+ if (params.has('EarlyChange')) {
|
|
|
+ earlyChange = params.get('EarlyChange');
|
|
|
+ }
|
|
|
+ return new PredictorStream(
|
|
|
+ new LZWStream(stream, maybeLength, earlyChange),
|
|
|
+ maybeLength, params);
|
|
|
}
|
|
|
- return new PredictorStream(
|
|
|
- new LZWStream(stream, maybeLength, earlyChange),
|
|
|
- maybeLength, params);
|
|
|
+ return new LZWStream(stream, maybeLength, earlyChange);
|
|
|
}
|
|
|
- return new LZWStream(stream, maybeLength, earlyChange);
|
|
|
- }
|
|
|
- if (name == 'DCTDecode' || name == 'DCT') {
|
|
|
- xrefStreamStats[StreamType.DCT] = true;
|
|
|
- return new JpegStream(stream, maybeLength, stream.dict, this.xref);
|
|
|
- }
|
|
|
- if (name == 'JPXDecode' || name == 'JPX') {
|
|
|
- xrefStreamStats[StreamType.JPX] = true;
|
|
|
- return new JpxStream(stream, maybeLength, stream.dict);
|
|
|
- }
|
|
|
- if (name == 'ASCII85Decode' || name == 'A85') {
|
|
|
- xrefStreamStats[StreamType.A85] = true;
|
|
|
- return new Ascii85Stream(stream, maybeLength);
|
|
|
- }
|
|
|
- if (name == 'ASCIIHexDecode' || name == 'AHx') {
|
|
|
- xrefStreamStats[StreamType.AHX] = true;
|
|
|
- return new AsciiHexStream(stream, maybeLength);
|
|
|
- }
|
|
|
- if (name == 'CCITTFaxDecode' || name == 'CCF') {
|
|
|
- xrefStreamStats[StreamType.CCF] = true;
|
|
|
- return new CCITTFaxStream(stream, maybeLength, params);
|
|
|
- }
|
|
|
- if (name == 'RunLengthDecode' || name == 'RL') {
|
|
|
- xrefStreamStats[StreamType.RL] = true;
|
|
|
- return new RunLengthStream(stream, maybeLength);
|
|
|
- }
|
|
|
- if (name == 'JBIG2Decode') {
|
|
|
- xrefStreamStats[StreamType.JBIG] = true;
|
|
|
- return new Jbig2Stream(stream, maybeLength, stream.dict);
|
|
|
+ if (name == 'DCTDecode' || name == 'DCT') {
|
|
|
+ xrefStreamStats[StreamType.DCT] = true;
|
|
|
+ return new JpegStream(stream, maybeLength, stream.dict, this.xref);
|
|
|
+ }
|
|
|
+ if (name == 'JPXDecode' || name == 'JPX') {
|
|
|
+ xrefStreamStats[StreamType.JPX] = true;
|
|
|
+ return new JpxStream(stream, maybeLength, stream.dict);
|
|
|
+ }
|
|
|
+ if (name == 'ASCII85Decode' || name == 'A85') {
|
|
|
+ xrefStreamStats[StreamType.A85] = true;
|
|
|
+ return new Ascii85Stream(stream, maybeLength);
|
|
|
+ }
|
|
|
+ if (name == 'ASCIIHexDecode' || name == 'AHx') {
|
|
|
+ xrefStreamStats[StreamType.AHX] = true;
|
|
|
+ return new AsciiHexStream(stream, maybeLength);
|
|
|
+ }
|
|
|
+ if (name == 'CCITTFaxDecode' || name == 'CCF') {
|
|
|
+ xrefStreamStats[StreamType.CCF] = true;
|
|
|
+ return new CCITTFaxStream(stream, maybeLength, params);
|
|
|
+ }
|
|
|
+ if (name == 'RunLengthDecode' || name == 'RL') {
|
|
|
+ xrefStreamStats[StreamType.RL] = true;
|
|
|
+ return new RunLengthStream(stream, maybeLength);
|
|
|
+ }
|
|
|
+ if (name == 'JBIG2Decode') {
|
|
|
+ xrefStreamStats[StreamType.JBIG] = true;
|
|
|
+ return new Jbig2Stream(stream, maybeLength, stream.dict);
|
|
|
+ }
|
|
|
+ warn('filter "' + name + '" not supported yet');
|
|
|
+ return stream;
|
|
|
+ } catch (ex) {
|
|
|
+ if (ex instanceof MissingDataException) {
|
|
|
+ throw ex;
|
|
|
+ }
|
|
|
+ warn('Invalid stream: \"' + ex + '\"');
|
|
|
+ return new NullStream(stream);
|
|
|
}
|
|
|
- warn('filter "' + name + '" not supported yet');
|
|
|
- return stream;
|
|
|
}
|
|
|
};
|
|
|
|