diff --git a/src/colorspace.js b/src/colorspace.js index 26e7c1f0f..5d6eee7a7 100644 --- a/src/colorspace.js +++ b/src/colorspace.js @@ -139,6 +139,9 @@ var ColorSpace = (function ColorSpaceClosure() { var baseIndexedCS = ColorSpace.parseToIR(cs[1], xref, res); var hiVal = cs[2] + 1; var lookup = xref.fetchIfRef(cs[3]); + if (isStream(lookup)) { + lookup = lookup.getBytes(); + } return ['IndexedCS', baseIndexedCS, hiVal, lookup]; case 'Separation': case 'DeviceN': @@ -260,14 +263,18 @@ var IndexedCS = (function IndexedCSClosure() { var baseNumComps = base.numComps; var length = baseNumComps * highVal; - var lookupArray = new Uint8Array(length); + var lookupArray; if (isStream(lookup)) { + lookupArray = new Uint8Array(length); var bytes = lookup.getBytes(length); lookupArray.set(bytes); } else if (isString(lookup)) { + lookupArray = new Uint8Array(length); for (var i = 0; i < length; ++i) lookupArray[i] = lookup.charCodeAt(i); + } else if (lookup instanceof Uint8Array) { + lookupArray = lookup; } else { error('Unrecognized lookup table: ' + lookup); } diff --git a/src/fonts.js b/src/fonts.js index 8cac29b24..f0e1bd4d3 100644 --- a/src/fonts.js +++ b/src/fonts.js @@ -3747,6 +3747,10 @@ var Type1Parser = function type1Parser() { case '/OtherBlues': case '/FamilyBlues': case '/FamilyOtherBlues': + var blueArray = readNumberArray(eexecStr, i + 1); + if (blueArray.length > 0 && (blueArray.length % 2) == 0) + program.properties.privateData[token.substring(1)] = blueArray; + break; case '/StemSnapH': case '/StemSnapV': program.properties.privateData[token.substring(1)] = diff --git a/test/pdfs/issue1685.pdf.link b/test/pdfs/issue1685.pdf.link new file mode 100644 index 000000000..bf6b86240 --- /dev/null +++ b/test/pdfs/issue1685.pdf.link @@ -0,0 +1 @@ +http://www.agapec.com.br/manual/manual_2007.pdf diff --git a/test/pdfs/issue1985.pdf b/test/pdfs/issue1985.pdf new file mode 100644 index 000000000..eca11e4a2 Binary files /dev/null and b/test/pdfs/issue1985.pdf differ diff --git a/test/test_manifest.json b/test/test_manifest.json index 51a5fd8cf..12761bd33 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -451,6 +451,14 @@ "link": true, "type": "eq" }, + { "id": "issue1685", + "file": "pdfs/issue1685.pdf", + "md5": "b22c3741e6bd0e613d3eb3325ad31f7d", + "rounds": 1, + "pageLimit": 2, + "link": true, + "type": "eq" + }, { "id": "issue1169", "file": "pdfs/issue1169.pdf", "md5": "3df3ed21fd43ac7fdb21e2015c8a7809", @@ -650,5 +658,11 @@ "pageLimit": 1, "link": true, "type": "load" + }, + { "id": "issue1985", + "file": "pdfs/issue1985.pdf", + "md5": "2ac7c68e26a8ef797aead15e4875cc6d", + "rounds": 1, + "type": "load" } ]