From c40df8a393d6b0c8659f89003373408c3067e61d Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Sat, 5 Mar 2016 16:11:17 +0100 Subject: [PATCH 1/2] Make `Type1Font` more class-like, by adding closure *Note:* Ignoring whitespace should simplify reviewing a great deal. --- src/core/fonts.js | 433 +++++++++++++++++++++++----------------------- 1 file changed, 219 insertions(+), 214 deletions(-) diff --git a/src/core/fonts.js b/src/core/fonts.js index cff289d7a..7fb4060d3 100644 --- a/src/core/fonts.js +++ b/src/core/fonts.js @@ -3637,231 +3637,236 @@ var CFFStandardStrings = [ ]; // Type1Font is also a CIDFontType0. -var Type1Font = function Type1Font(name, file, properties) { - // Some bad generators embed pfb file as is, we have to strip 6-byte headers. - // Also, length1 and length2 might be off by 6 bytes as well. - // http://www.math.ubc.ca/~cass/piscript/type1.pdf - var PFB_HEADER_SIZE = 6; - var headerBlockLength = properties.length1; - var eexecBlockLength = properties.length2; - var pfbHeader = file.peekBytes(PFB_HEADER_SIZE); - var pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01; - if (pfbHeaderPresent) { - file.skip(PFB_HEADER_SIZE); - headerBlockLength = (pfbHeader[5] << 24) | (pfbHeader[4] << 16) | - (pfbHeader[3] << 8) | pfbHeader[2]; - } - - // Get the data block containing glyphs and subrs informations - var headerBlock = new Stream(file.getBytes(headerBlockLength)); - var headerBlockParser = new Type1Parser(headerBlock); - headerBlockParser.extractFontHeader(properties); - - if (pfbHeaderPresent) { - pfbHeader = file.getBytes(PFB_HEADER_SIZE); - eexecBlockLength = (pfbHeader[5] << 24) | (pfbHeader[4] << 16) | - (pfbHeader[3] << 8) | pfbHeader[2]; - } - - // Decrypt the data blocks and retrieve it's content - var eexecBlock = new Stream(file.getBytes(eexecBlockLength)); - var eexecBlockParser = new Type1Parser(eexecBlock, true); - var data = eexecBlockParser.extractFontProgram(); - for (var info in data.properties) { - properties[info] = data.properties[info]; - } - - var charstrings = data.charstrings; - var type2Charstrings = this.getType2Charstrings(charstrings); - var subrs = this.getType2Subrs(data.subrs); - - this.charstrings = charstrings; - this.data = this.wrap(name, type2Charstrings, this.charstrings, - subrs, properties); - this.seacs = this.getSeacs(data.charstrings); -}; - -Type1Font.prototype = { - get numGlyphs() { - return this.charstrings.length + 1; - }, - - getCharset: function Type1Font_getCharset() { - var charset = ['.notdef']; - var charstrings = this.charstrings; - for (var glyphId = 0; glyphId < charstrings.length; glyphId++) { - charset.push(charstrings[glyphId].glyphName); +var Type1Font = (function Type1FontClosure() { + function Type1Font(name, file, properties) { + // Some bad generators embed pfb file as is, we have to strip 6-byte header. + // Also, length1 and length2 might be off by 6 bytes as well. + // http://www.math.ubc.ca/~cass/piscript/type1.pdf + var PFB_HEADER_SIZE = 6; + var headerBlockLength = properties.length1; + var eexecBlockLength = properties.length2; + var pfbHeader = file.peekBytes(PFB_HEADER_SIZE); + var pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01; + if (pfbHeaderPresent) { + file.skip(PFB_HEADER_SIZE); + headerBlockLength = (pfbHeader[5] << 24) | (pfbHeader[4] << 16) | + (pfbHeader[3] << 8) | pfbHeader[2]; } - return charset; - }, - getGlyphMapping: function Type1Font_getGlyphMapping(properties) { - var charstrings = this.charstrings; - var glyphNames = ['.notdef'], glyphId; - for (glyphId = 0; glyphId < charstrings.length; glyphId++) { - glyphNames.push(charstrings[glyphId].glyphName); + // Get the data block containing glyphs and subrs informations + var headerBlock = new Stream(file.getBytes(headerBlockLength)); + var headerBlockParser = new Type1Parser(headerBlock); + headerBlockParser.extractFontHeader(properties); + + if (pfbHeaderPresent) { + pfbHeader = file.getBytes(PFB_HEADER_SIZE); + eexecBlockLength = (pfbHeader[5] << 24) | (pfbHeader[4] << 16) | + (pfbHeader[3] << 8) | pfbHeader[2]; } - var encoding = properties.builtInEncoding; - if (encoding) { - var builtInEncoding = Object.create(null); - for (var charCode in encoding) { - glyphId = glyphNames.indexOf(encoding[charCode]); - if (glyphId >= 0) { - builtInEncoding[charCode] = glyphId; + + // Decrypt the data blocks and retrieve it's content + var eexecBlock = new Stream(file.getBytes(eexecBlockLength)); + var eexecBlockParser = new Type1Parser(eexecBlock, true); + var data = eexecBlockParser.extractFontProgram(); + for (var info in data.properties) { + properties[info] = data.properties[info]; + } + + var charstrings = data.charstrings; + var type2Charstrings = this.getType2Charstrings(charstrings); + var subrs = this.getType2Subrs(data.subrs); + + this.charstrings = charstrings; + this.data = this.wrap(name, type2Charstrings, this.charstrings, + subrs, properties); + this.seacs = this.getSeacs(data.charstrings); + } + + Type1Font.prototype = { + get numGlyphs() { + return this.charstrings.length + 1; + }, + + getCharset: function Type1Font_getCharset() { + var charset = ['.notdef']; + var charstrings = this.charstrings; + for (var glyphId = 0; glyphId < charstrings.length; glyphId++) { + charset.push(charstrings[glyphId].glyphName); + } + return charset; + }, + + getGlyphMapping: function Type1Font_getGlyphMapping(properties) { + var charstrings = this.charstrings; + var glyphNames = ['.notdef'], glyphId; + for (glyphId = 0; glyphId < charstrings.length; glyphId++) { + glyphNames.push(charstrings[glyphId].glyphName); + } + var encoding = properties.builtInEncoding; + if (encoding) { + var builtInEncoding = Object.create(null); + for (var charCode in encoding) { + glyphId = glyphNames.indexOf(encoding[charCode]); + if (glyphId >= 0) { + builtInEncoding[charCode] = glyphId; + } } } - } - return type1FontGlyphMapping(properties, builtInEncoding, glyphNames); - }, + return type1FontGlyphMapping(properties, builtInEncoding, glyphNames); + }, - getSeacs: function Type1Font_getSeacs(charstrings) { - var i, ii; - var seacMap = []; - for (i = 0, ii = charstrings.length; i < ii; i++) { - var charstring = charstrings[i]; - if (charstring.seac) { - // Offset by 1 for .notdef - seacMap[i + 1] = charstring.seac; - } - } - return seacMap; - }, - - getType2Charstrings: function Type1Font_getType2Charstrings( - type1Charstrings) { - var type2Charstrings = []; - for (var i = 0, ii = type1Charstrings.length; i < ii; i++) { - type2Charstrings.push(type1Charstrings[i].charstring); - } - return type2Charstrings; - }, - - getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) { - var bias = 0; - var count = type1Subrs.length; - if (count < 1133) { - bias = 107; - } else if (count < 33769) { - bias = 1131; - } else { - bias = 32768; - } - - // Add a bunch of empty subrs to deal with the Type2 bias - var type2Subrs = []; - var i; - for (i = 0; i < bias; i++) { - type2Subrs.push([0x0B]); - } - - for (i = 0; i < count; i++) { - type2Subrs.push(type1Subrs[i]); - } - - return type2Subrs; - }, - - wrap: function Type1Font_wrap(name, glyphs, charstrings, subrs, properties) { - var cff = new CFF(); - cff.header = new CFFHeader(1, 0, 4, 4); - - cff.names = [name]; - - var topDict = new CFFTopDict(); - // CFF strings IDs 0...390 are predefined names, so refering - // to entries in our own String INDEX starts at SID 391. - topDict.setByName('version', 391); - topDict.setByName('Notice', 392); - topDict.setByName('FullName', 393); - topDict.setByName('FamilyName', 394); - topDict.setByName('Weight', 395); - topDict.setByName('Encoding', null); // placeholder - topDict.setByName('FontMatrix', properties.fontMatrix); - topDict.setByName('FontBBox', properties.bbox); - topDict.setByName('charset', null); // placeholder - topDict.setByName('CharStrings', null); // placeholder - topDict.setByName('Private', null); // placeholder - cff.topDict = topDict; - - var strings = new CFFStrings(); - strings.add('Version 0.11'); // Version - strings.add('See original notice'); // Notice - strings.add(name); // FullName - strings.add(name); // FamilyName - strings.add('Medium'); // Weight - cff.strings = strings; - - cff.globalSubrIndex = new CFFIndex(); - - var count = glyphs.length; - var charsetArray = [0]; - var i, ii; - for (i = 0; i < count; i++) { - var index = CFFStandardStrings.indexOf(charstrings[i].glyphName); - // TODO: Insert the string and correctly map it. Previously it was - // thought mapping names that aren't in the standard strings to .notdef - // was fine, however in issue818 when mapping them all to .notdef the - // adieresis glyph no longer worked. - if (index === -1) { - index = 0; - } - charsetArray.push((index >> 8) & 0xff, index & 0xff); - } - cff.charset = new CFFCharset(false, 0, [], charsetArray); - - var charStringsIndex = new CFFIndex(); - charStringsIndex.add([0x8B, 0x0E]); // .notdef - for (i = 0; i < count; i++) { - charStringsIndex.add(glyphs[i]); - } - cff.charStrings = charStringsIndex; - - var privateDict = new CFFPrivateDict(); - privateDict.setByName('Subrs', null); // placeholder - var fields = [ - 'BlueValues', - 'OtherBlues', - 'FamilyBlues', - 'FamilyOtherBlues', - 'StemSnapH', - 'StemSnapV', - 'BlueShift', - 'BlueFuzz', - 'BlueScale', - 'LanguageGroup', - 'ExpansionFactor', - 'ForceBold', - 'StdHW', - 'StdVW' - ]; - for (i = 0, ii = fields.length; i < ii; i++) { - var field = fields[i]; - if (!(field in properties.privateData)) { - continue; - } - var value = properties.privateData[field]; - if (isArray(value)) { - // All of the private dictionary array data in CFF must be stored as - // "delta-encoded" numbers. - for (var j = value.length - 1; j > 0; j--) { - value[j] -= value[j - 1]; // ... difference from previous value + getSeacs: function Type1Font_getSeacs(charstrings) { + var i, ii; + var seacMap = []; + for (i = 0, ii = charstrings.length; i < ii; i++) { + var charstring = charstrings[i]; + if (charstring.seac) { + // Offset by 1 for .notdef + seacMap[i + 1] = charstring.seac; } } - privateDict.setByName(field, value); - } - cff.topDict.privateDict = privateDict; + return seacMap; + }, - var subrIndex = new CFFIndex(); - for (i = 0, ii = subrs.length; i < ii; i++) { - subrIndex.add(subrs[i]); - } - privateDict.subrsIndex = subrIndex; + getType2Charstrings: function Type1Font_getType2Charstrings( + type1Charstrings) { + var type2Charstrings = []; + for (var i = 0, ii = type1Charstrings.length; i < ii; i++) { + type2Charstrings.push(type1Charstrings[i].charstring); + } + return type2Charstrings; + }, - var compiler = new CFFCompiler(cff); - return compiler.compile(); - } -}; + getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) { + var bias = 0; + var count = type1Subrs.length; + if (count < 1133) { + bias = 107; + } else if (count < 33769) { + bias = 1131; + } else { + bias = 32768; + } + + // Add a bunch of empty subrs to deal with the Type2 bias + var type2Subrs = []; + var i; + for (i = 0; i < bias; i++) { + type2Subrs.push([0x0B]); + } + + for (i = 0; i < count; i++) { + type2Subrs.push(type1Subrs[i]); + } + + return type2Subrs; + }, + + wrap: function Type1Font_wrap(name, glyphs, charstrings, subrs, + properties) { + var cff = new CFF(); + cff.header = new CFFHeader(1, 0, 4, 4); + + cff.names = [name]; + + var topDict = new CFFTopDict(); + // CFF strings IDs 0...390 are predefined names, so refering + // to entries in our own String INDEX starts at SID 391. + topDict.setByName('version', 391); + topDict.setByName('Notice', 392); + topDict.setByName('FullName', 393); + topDict.setByName('FamilyName', 394); + topDict.setByName('Weight', 395); + topDict.setByName('Encoding', null); // placeholder + topDict.setByName('FontMatrix', properties.fontMatrix); + topDict.setByName('FontBBox', properties.bbox); + topDict.setByName('charset', null); // placeholder + topDict.setByName('CharStrings', null); // placeholder + topDict.setByName('Private', null); // placeholder + cff.topDict = topDict; + + var strings = new CFFStrings(); + strings.add('Version 0.11'); // Version + strings.add('See original notice'); // Notice + strings.add(name); // FullName + strings.add(name); // FamilyName + strings.add('Medium'); // Weight + cff.strings = strings; + + cff.globalSubrIndex = new CFFIndex(); + + var count = glyphs.length; + var charsetArray = [0]; + var i, ii; + for (i = 0; i < count; i++) { + var index = CFFStandardStrings.indexOf(charstrings[i].glyphName); + // TODO: Insert the string and correctly map it. Previously it was + // thought mapping names that aren't in the standard strings to .notdef + // was fine, however in issue818 when mapping them all to .notdef the + // adieresis glyph no longer worked. + if (index === -1) { + index = 0; + } + charsetArray.push((index >> 8) & 0xff, index & 0xff); + } + cff.charset = new CFFCharset(false, 0, [], charsetArray); + + var charStringsIndex = new CFFIndex(); + charStringsIndex.add([0x8B, 0x0E]); // .notdef + for (i = 0; i < count; i++) { + charStringsIndex.add(glyphs[i]); + } + cff.charStrings = charStringsIndex; + + var privateDict = new CFFPrivateDict(); + privateDict.setByName('Subrs', null); // placeholder + var fields = [ + 'BlueValues', + 'OtherBlues', + 'FamilyBlues', + 'FamilyOtherBlues', + 'StemSnapH', + 'StemSnapV', + 'BlueShift', + 'BlueFuzz', + 'BlueScale', + 'LanguageGroup', + 'ExpansionFactor', + 'ForceBold', + 'StdHW', + 'StdVW' + ]; + for (i = 0, ii = fields.length; i < ii; i++) { + var field = fields[i]; + if (!(field in properties.privateData)) { + continue; + } + var value = properties.privateData[field]; + if (isArray(value)) { + // All of the private dictionary array data in CFF must be stored as + // "delta-encoded" numbers. + for (var j = value.length - 1; j > 0; j--) { + value[j] -= value[j - 1]; // ... difference from previous value + } + } + privateDict.setByName(field, value); + } + cff.topDict.privateDict = privateDict; + + var subrIndex = new CFFIndex(); + for (i = 0, ii = subrs.length; i < ii; i++) { + subrIndex.add(subrs[i]); + } + privateDict.subrsIndex = subrIndex; + + var compiler = new CFFCompiler(cff); + return compiler.compile(); + } + }; + + return Type1Font; +})(); var CFFFont = (function CFFFontClosure() { function CFFFont(file, properties) { From 05cf709f8ef30fbb939f1c1cced3093688988c87 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Sat, 5 Mar 2016 22:32:54 +0100 Subject: [PATCH 2/2] Parse Type1 font files to determine the various `Length{n}` properties, instead of trusting the PDF file (issue 5686, issue 3928) Fixes 5686. Fixes 3928. --- src/core/evaluator.js | 2 + src/core/fonts.js | 125 ++++++++++++++++++++++++++++++++++++++-- test/pdfs/.gitignore | 2 + test/pdfs/issue3928.pdf | Bin 0 -> 31272 bytes test/pdfs/issue5686.pdf | Bin 0 -> 23718 bytes test/test_manifest.json | 16 +++++ 6 files changed, 141 insertions(+), 4 deletions(-) create mode 100644 test/pdfs/issue3928.pdf create mode 100644 test/pdfs/issue5686.pdf diff --git a/src/core/evaluator.js b/src/core/evaluator.js index d080ac6c4..aa15c5fe2 100644 --- a/src/core/evaluator.js +++ b/src/core/evaluator.js @@ -2197,6 +2197,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { } var length1 = fontFile.dict.get('Length1'); var length2 = fontFile.dict.get('Length2'); + var length3 = fontFile.dict.get('Length3'); } } @@ -2207,6 +2208,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { file: fontFile, length1: length1, length2: length2, + length3: length3, loadedName: baseDict.loadedName, composite: composite, wideChars: composite, diff --git a/src/core/fonts.js b/src/core/fonts.js index 7fb4060d3..4fb026966 100644 --- a/src/core/fonts.js +++ b/src/core/fonts.js @@ -54,6 +54,7 @@ var shadow = sharedUtil.shadow; var stringToBytes = sharedUtil.stringToBytes; var string32 = sharedUtil.string32; var warn = sharedUtil.warn; +var MissingDataException = sharedUtil.MissingDataException; var Stream = coreStream.Stream; var Lexer = coreParser.Lexer; var getGlyphsUnicode = coreGlyphList.getGlyphsUnicode; @@ -3638,6 +3639,120 @@ var CFFStandardStrings = [ // Type1Font is also a CIDFontType0. var Type1Font = (function Type1FontClosure() { + function findBlock(streamBytes, signature, startIndex) { + var streamBytesLength = streamBytes.length; + var signatureLength = signature.length; + var scanLength = streamBytesLength - signatureLength; + + var i = startIndex, j, found = false; + while (i < scanLength) { + j = 0; + while (j < signatureLength && streamBytes[i + j] === signature[j]) { + j++; + } + if (j >= signatureLength) { // `signature` found, skip over whitespace. + i += j; + while (i < streamBytesLength && Lexer.isSpace(streamBytes[i])) { + i++; + } + found = true; + break; + } + i++; + } + return { + found: found, + length: i, + }; + } + + function getHeaderBlock(stream, suggestedLength) { + var EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63]; + + var streamStartPos = stream.pos; // Save the initial stream position. + var headerBytes, headerBytesLength, block; + try { + headerBytes = stream.getBytes(suggestedLength); + headerBytesLength = headerBytes.length; + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + // Ignore errors if the `suggestedLength` is huge enough that a Uint8Array + // cannot hold the result of `getBytes`, and fallback to simply checking + // the entire stream (fixes issue3928.pdf). + } + + if (headerBytesLength === suggestedLength) { + // Most of the time `suggestedLength` is correct, so to speed things up we + // initially only check the last few bytes to see if the header was found. + // Otherwise we (potentially) check the entire stream to prevent errors in + // `Type1Parser` (fixes issue5686.pdf). + block = findBlock(headerBytes, EEXEC_SIGNATURE, + suggestedLength - 2 * EEXEC_SIGNATURE.length); + + if (block.found && block.length === suggestedLength) { + return { + stream: new Stream(headerBytes), + length: suggestedLength, + }; + } + } + warn('Invalid "Length1" property in Type1 font -- trying to recover.'); + stream.pos = streamStartPos; // Reset the stream position. + + var SCAN_BLOCK_LENGTH = 2048; + var actualLength; + while (true) { + var scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH); + block = findBlock(scanBytes, EEXEC_SIGNATURE, 0); + + if (block.length === 0) { + break; + } + stream.pos += block.length; // Update the stream position. + + if (block.found) { + actualLength = stream.pos - streamStartPos; + break; + } + } + stream.pos = streamStartPos; // Reset the stream position. + + if (actualLength) { + return { + stream: new Stream(stream.getBytes(actualLength)), + length: actualLength, + }; + } + warn('Unable to recover "Length1" property in Type1 font -- using as is.'); + return { + stream: new Stream(stream.getBytes(suggestedLength)), + length: suggestedLength, + }; + } + + function getEexecBlock(stream, suggestedLength) { + // We should ideally parse the eexec block to ensure that `suggestedLength` + // is correct, so we don't truncate the block data if it's too small. + // However, this would also require checking if the fixed-content portion + // exists (using the 'Length3' property), and ensuring that it's valid. + // + // Given that `suggestedLength` almost always is correct, all the validation + // would require a great deal of unnecessary parsing for most fonts. + // To save time, we always fetch the entire stream instead, which also avoid + // issues if `suggestedLength` is huge (see comment in `getHeaderBlock`). + // + // NOTE: This means that the function can include the fixed-content portion + // in the returned eexec block. In practice this does *not* seem to matter, + // since `Type1Parser_extractFontProgram` will skip over any non-commands. + var eexecBytes = stream.getBytes(); + return { + stream: new Stream(eexecBytes), + length: eexecBytes.length, + }; + } + function Type1Font(name, file, properties) { // Some bad generators embed pfb file as is, we have to strip 6-byte header. // Also, length1 and length2 might be off by 6 bytes as well. @@ -3654,8 +3769,9 @@ var Type1Font = (function Type1FontClosure() { } // Get the data block containing glyphs and subrs informations - var headerBlock = new Stream(file.getBytes(headerBlockLength)); - var headerBlockParser = new Type1Parser(headerBlock); + var headerBlock = getHeaderBlock(file, headerBlockLength); + headerBlockLength = headerBlock.length; + var headerBlockParser = new Type1Parser(headerBlock.stream); headerBlockParser.extractFontHeader(properties); if (pfbHeaderPresent) { @@ -3665,8 +3781,9 @@ var Type1Font = (function Type1FontClosure() { } // Decrypt the data blocks and retrieve it's content - var eexecBlock = new Stream(file.getBytes(eexecBlockLength)); - var eexecBlockParser = new Type1Parser(eexecBlock, true); + var eexecBlock = getEexecBlock(file, eexecBlockLength); + eexecBlockLength = eexecBlock.length; + var eexecBlockParser = new Type1Parser(eexecBlock.stream, true); var data = eexecBlockParser.extractFontProgram(); for (var info in data.properties) { properties[info] = data.properties[info]; diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index b675adf06..9cdc808b9 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -49,6 +49,8 @@ !issue3207r.pdf !issue3263r.pdf !issue3879r.pdf +!issue5686.pdf +!issue3928.pdf !close-path-bug.pdf !issue6019.pdf !issue6621.pdf diff --git a/test/pdfs/issue3928.pdf b/test/pdfs/issue3928.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f47c1464b1a22c2545cb9af3f9c0cef183ed026d GIT binary patch literal 31272 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%0AZ`2>v0ZMhPouG)IH6cRw!W8P))IB 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 btNqtRpzq-H=l(J?u(1JP$;m}zMPdIR{&fm^ literal 0 HcmV?d00001 diff --git a/test/pdfs/issue5686.pdf b/test/pdfs/issue5686.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6525d1107bee4b5aaf35d5344459afbf71fb988d GIT binary patch literal 23718 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