diff --git a/src/core/evaluator.js b/src/core/evaluator.js index 064077fa7..c906abce5 100644 --- a/src/core/evaluator.js +++ b/src/core/evaluator.js @@ -2079,6 +2079,11 @@ class PartialEvaluator { case OPS.setFillColorN: cs = stateManager.state.patternFillColorSpace; if (!cs) { + if (isNumberArray(args, null)) { + args = ColorSpace.singletons.gray.getRgb(args, 0); + fn = OPS.setFillRGBColor; + break; + } args = []; fn = OPS.setFillTransparent; break; @@ -2106,6 +2111,11 @@ class PartialEvaluator { case OPS.setStrokeColorN: cs = stateManager.state.patternStrokeColorSpace; if (!cs) { + if (isNumberArray(args, null)) { + args = ColorSpace.singletons.gray.getRgb(args, 0); + fn = OPS.setStrokeRGBColor; + break; + } args = []; fn = OPS.setStrokeTransparent; break; diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index c4ef395eb..fa61a789c 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -675,3 +675,4 @@ !stamps.pdf !issue15096.pdf !issue18036.pdf +!issue18894.pdf diff --git a/test/pdfs/issue18894.pdf b/test/pdfs/issue18894.pdf new file mode 100755 index 000000000..cb2939ba8 Binary files /dev/null and b/test/pdfs/issue18894.pdf differ diff --git a/test/test_manifest.json b/test/test_manifest.json index cc2bcc320..d9f045335 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -10692,5 +10692,13 @@ "rounds": 1, "type": "eq", "annotations": true + }, + { + "id": "issue18894", + "file": "pdfs/issue18894.pdf", + "md5": "5cd744bf8c0800e93c22ed92d1c162f4", + "rounds": 1, + "type": "eq", + "talos": false } ]