diff --git a/pdf/model/resources.go b/pdf/model/resources.go index 56263be6..cc479f53 100644 --- a/pdf/model/resources.go +++ b/pdf/model/resources.go @@ -40,7 +40,7 @@ func NewPdfPageResourcesFromDict(dict *PdfObjectDictionary) (*PdfPageResources, if obj, isDefined := (*dict)["ExtGState"]; isDefined { r.ExtGState = obj } - if obj, isDefined := (*dict)["ColorSpace"]; isDefined { + if obj, isDefined := (*dict)["ColorSpace"]; isDefined && !isNullObject(obj) { colorspaces, err := newPdfPageResourcesColorspacesFromPdfObject(obj) if err != nil { return nil, err diff --git a/pdf/model/utils.go b/pdf/model/utils.go index 834beb32..14e3650b 100644 --- a/pdf/model/utils.go +++ b/pdf/model/utils.go @@ -28,6 +28,14 @@ func getNumberAsFloat(obj PdfObject) (float64, error) { return 0, errors.New("Not a number") } +func isNullObject(obj PdfObject) bool { + if _, isNull := obj.(*PdfObjectNull); isNull { + return true + } else { + return false + } +} + // Convert a list of pdf objects representing floats or integers to a slice of float64 values. func getNumbersAsFloat(objects []PdfObject) ([]float64, error) { floats := []float64{}