diff --git a/src/calibre/utils/podofo/images.cpp b/src/calibre/utils/podofo/images.cpp index 1ee3aa66c4..9fa0d18946 100644 --- a/src/calibre/utils/podofo/images.cpp +++ b/src/calibre/utils/podofo/images.cpp @@ -110,10 +110,14 @@ dedup_images(PDFDoc *self, PyObject *args) { } } if (changed) resources.AddKey("XObject", new_xobject); + } else if (dictionary_has_key_name(dict, PdfName::KeyType, "XObject") && dictionary_has_key_name(dict, PdfName::KeySubtype, "Image") && dict.HasKey("SMask") && dict.MustGetKey("SMask").IsReference()) { + try { + const PdfReference &r = ref_map.at(dict.MustGetKey("SMask").GetReference()); + dict.AddKey("SMask", r); + } catch (const std::out_of_range &err) { (void)err; } } } } - return Py_BuildValue("k", count); }