From 972d08209ab302b5b7afb3215d629f3dfcd1ac81 Mon Sep 17 00:00:00 2001 From: Yury Delendik Date: Sat, 11 Aug 2012 23:05:41 -0500 Subject: [PATCH 1/2] Discards invalid values for Blues --- src/fonts.js | 4 ++++ test/pdfs/issue1685.pdf.link | 1 + test/test_manifest.json | 8 ++++++++ 3 files changed, 13 insertions(+) create mode 100644 test/pdfs/issue1685.pdf.link diff --git a/src/fonts.js b/src/fonts.js index b16c2621a..4db71034d 100644 --- a/src/fonts.js +++ b/src/fonts.js @@ -3735,6 +3735,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/test_manifest.json b/test/test_manifest.json index 166b4fdc7..8de62365a 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", From fd416d3788a0c160f6b9d88285d60ed066895203 Mon Sep 17 00:00:00 2001 From: Brendan Dahl Date: Thu, 16 Aug 2012 15:22:28 -0700 Subject: [PATCH 2/2] Stop streams from being sent from worker for indexed color spaces. --- src/colorspace.js | 9 ++++++++- test/pdfs/issue1985.pdf | Bin 0 -> 9884 bytes test/test_manifest.json | 6 ++++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 test/pdfs/issue1985.pdf 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/test/pdfs/issue1985.pdf b/test/pdfs/issue1985.pdf new file mode 100644 index 0000000000000000000000000000000000000000..eca11e4a25490d309537185817d793b05dacc7de GIT binary patch literal 9884 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 literal 0 HcmV?d00001 diff --git a/test/test_manifest.json b/test/test_manifest.json index bfe9ad1d9..12761bd33 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -658,5 +658,11 @@ "pageLimit": 1, "link": true, "type": "load" + }, + { "id": "issue1985", + "file": "pdfs/issue1985.pdf", + "md5": "2ac7c68e26a8ef797aead15e4875cc6d", + "rounds": 1, + "type": "load" } ]