diff --git a/src/core/evaluator.js b/src/core/evaluator.js index 463b47942..0bcdab80b 100644 --- a/src/core/evaluator.js +++ b/src/core/evaluator.js @@ -544,6 +544,11 @@ class PartialEvaluator { if (smask?.backdrop) { colorSpace ||= ColorSpaceUtils.rgb; smask.backdrop = colorSpace.getRgbHex(smask.backdrop, 0); + } else if (smask?.subtype === "Luminosity") { + // Per PDF spec 11.6.5.2: when /BC is missing the backdrop is the + // initial value of the group colour space, which is black for all + // standard colour spaces. + smask.backdrop = "#000000"; } newOpList = new CheckedOperatorList(); diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 3da556ba1..f75c1c3ce 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -925,3 +925,4 @@ !issue18548_reduced.pdf !issue_cff_unsigned_bbox.pdf !90ms_rksj_h_sample.pdf +!issue21346.pdf diff --git a/test/pdfs/issue21346.pdf b/test/pdfs/issue21346.pdf new file mode 100644 index 000000000..a9e774ed8 Binary files /dev/null and b/test/pdfs/issue21346.pdf differ diff --git a/test/test_manifest.json b/test/test_manifest.json index 6b6ba745f..5999b1454 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -14327,5 +14327,12 @@ "md5": "d2606e2c6cc9e679b8b88c2800c6e1a9", "rounds": 1, "type": "eq" + }, + { + "id": "issue21346", + "file": "pdfs/issue21346.pdf", + "md5": "16b39d943d268ebfa99ee57f1f470f53", + "rounds": 1, + "type": "eq" } ]