printing, cairo, & cups



I've been trying to get myself up to speed with state of printing support in Gtk, and I'm down to just a few conceptual questions. It looks like the general idea is to setup a callback to render with cairo one page at a time using a GtkPrintContext. From this I would speculate that on win32, a cairo GDI surface is used with the GDI device being a windows printer. On the *nix side GtkPrintContext might be using cairo post script surface, but more likely an image (memory buffer) surface is used. If the GtkPrintContext is setup correctly, then the device dependent details width, height, and dpi get used to build such a cairo memory buffer surface. I'm also betting Gtk is pulling all this from CUPS. In that case, there is then the issue of cairo's lack of support for color space beyond RGBA, as in printing, arises. Although that is a completely separate topic, and definitely something I can live with for now if all else works out. My main question is this. Somewhere the cairo RGBA color space must be mapped into a printer's device dependent color space such as CMYK. Is this mapping done inside Gtk using info resolved from cups, or is this done inside cups with filters?

Any help with my understanding would be appreciated. Most of this I'm just wildly guessing about since I haven't found it documented. I really would like to spare me the time of learning CUPS, which is why I want to understand how much, and what, work Gtk is doing for me.





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]