diff --git a/src/core/evaluator.js b/src/core/evaluator.js index b4d0ae68d2fb9..a3561655d3855 100644 --- a/src/core/evaluator.js +++ b/src/core/evaluator.js @@ -125,8 +125,23 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { }; // Convert PDF blend mode names to HTML5 blend mode names. - function normalizeBlendMode(value) { + function normalizeBlendMode(value, parsingArray = false) { + if (Array.isArray(value)) { + // Use the first *supported* BM value in the Array (fixes issue11279.pdf). + for (let i = 0, ii = value.length; i < ii; i++) { + const maybeBM = normalizeBlendMode(value[i], /* parsingArray = */ true); + if (maybeBM) { + return maybeBM; + } + } + warn(`Unsupported blend mode Array: ${value}`); + return 'source-over'; + } + if (!isName(value)) { + if (parsingArray) { + return null; + } return 'source-over'; } switch (value.name) { @@ -164,7 +179,10 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { case 'Luminosity': return 'luminosity'; } - warn('Unsupported blend mode: ' + value.name); + if (parsingArray) { + return null; + } + warn(`Unsupported blend mode: ${value.name}`); return 'source-over'; } diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 28f44733c305b..4bd389e2c8ec1 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -85,6 +85,7 @@ !issue11045.pdf !issue11150_reduced.pdf !issue11242_reduced.pdf +!issue11279.pdf !bad-PageLabels.pdf !decodeACSuccessive.pdf !filled-background.pdf diff --git a/test/pdfs/issue11279.pdf b/test/pdfs/issue11279.pdf new file mode 100644 index 0000000000000..7b3ec3f5491cd Binary files /dev/null and b/test/pdfs/issue11279.pdf differ diff --git a/test/test_manifest.json b/test/test_manifest.json index 98cd2420e24f7..28915f974e356 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -1512,6 +1512,13 @@ "link": false, "type": "eq" }, + { "id": "issue11279", + "file": "pdfs/issue11279.pdf", + "md5": "03361d24f3ed63b93f77abf731f8fc73", + "rounds": 1, + "link": false, + "type": "eq" + }, { "id": "issue8480", "file": "pdfs/issue8480.pdf", "md5": "769bc07bf8041d95667f2d32aaf75665",