Merge pull request #4971 from yurydelendik/rm-suppressEncryption
Removes error catch from fetchUncompressed()
This commit is contained in:
commit
c0a6b0f308
@ -1216,15 +1216,7 @@ var XRef = (function XRefClosure() {
|
|||||||
error('bad XRef entry');
|
error('bad XRef entry');
|
||||||
}
|
}
|
||||||
if (this.encrypt && !suppressEncryption) {
|
if (this.encrypt && !suppressEncryption) {
|
||||||
try {
|
xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));
|
||||||
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);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
xrefEntry = parser.getObj();
|
xrefEntry = parser.getObj();
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
FlateStream, isArray, isCmd, isDict, isInt, isName, isNum, isRef,
|
FlateStream, isArray, isCmd, isDict, isInt, isName, isNum, isRef,
|
||||||
isString, Jbig2Stream, JpegStream, JpxStream, LZWStream, Name,
|
isString, Jbig2Stream, JpegStream, JpxStream, LZWStream, Name,
|
||||||
NullStream, PredictorStream, Ref, RunLengthStream, warn, info,
|
NullStream, PredictorStream, Ref, RunLengthStream, warn, info,
|
||||||
StreamType */
|
StreamType, MissingDataException */
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
@ -344,58 +344,66 @@ var Parser = (function ParserClosure() {
|
|||||||
if (stream.dict.get('Length') === 0) {
|
if (stream.dict.get('Length') === 0) {
|
||||||
return new NullStream(stream);
|
return new NullStream(stream);
|
||||||
}
|
}
|
||||||
var xrefStreamStats = this.xref.stats.streamTypes;
|
try {
|
||||||
if (name == 'FlateDecode' || name == 'Fl') {
|
var xrefStreamStats = this.xref.stats.streamTypes;
|
||||||
xrefStreamStats[StreamType.FLATE] = true;
|
if (name == 'FlateDecode' || name == 'Fl') {
|
||||||
if (params) {
|
xrefStreamStats[StreamType.FLATE] = true;
|
||||||
return new PredictorStream(new FlateStream(stream, maybeLength),
|
if (params) {
|
||||||
maybeLength, 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(
|
return new FlateStream(stream, maybeLength);
|
||||||
new LZWStream(stream, maybeLength, earlyChange),
|
|
||||||
maybeLength, params);
|
|
||||||
}
|
}
|
||||||
return new LZWStream(stream, maybeLength, earlyChange);
|
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 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);
|
||||||
|
}
|
||||||
|
warn('filter "' + name + '" not supported yet');
|
||||||
|
return stream;
|
||||||
|
} catch (ex) {
|
||||||
|
if (ex instanceof MissingDataException) {
|
||||||
|
throw ex;
|
||||||
|
}
|
||||||
|
warn('Invalid stream: \"' + ex + '\"');
|
||||||
|
return new NullStream(stream);
|
||||||
}
|
}
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user