import collections from typing import Dict from .psparser import LIT LITERAL_DEVICE_GRAY = LIT("DeviceGray") LITERAL_DEVICE_RGB = LIT("DeviceRGB") LITERAL_DEVICE_CMYK = LIT("DeviceCMYK") class PDFColorSpace: def __init__(self, name: str, ncomponents: int) -> None: self.name = name self.ncomponents = ncomponents def __repr__(self) -> str: return "" % (self.name, self.ncomponents) PREDEFINED_COLORSPACE: Dict[str, PDFColorSpace] = collections.OrderedDict() for (name, n) in [ ("DeviceGray", 1), # default value first ("CalRGB", 3), ("CalGray", 1), ("Lab", 3), ("DeviceRGB", 3), ("DeviceCMYK", 4), ("Separation", 1), ("Indexed", 1), ("Pattern", 1), ]: PREDEFINED_COLORSPACE[name] = PDFColorSpace(name, n)