Thursday, December 28, 2006

PrintTicket Vs devmode

This is how the sequence flows.
Printer tells about its printer capabilities through the API device capability=>>
Apps read this info and provide the UI to the user to make some selection such as Page Size and orientation=>>
App fills the devmode structure with this info and send it to the printer with the printjob=>>
Printer reads this info and delivers the print job.
The devmode also has a private part which stores info about the printer model.
Everything is great with this design but there is a problem. Which is that the devmode cannot be attached to the print job.
In case of a printticket, the job settings are in XML format stored in a document. This xml specification is attached to the XPS job. The end user will be able to print the document exactly the way the developer of the document wanted it to be printed out. Like if I have a word document, I want it to be printed with 2 NUP duplex option, this info can be embedded with the document if you print it to a xps doc with the printticket in the xml format.

Tuesday, May 30, 2006

How does the Foomatic printing system work?

It consists of 3 parts.
1. Foomatic-db which stores the information about all the printers in XML format. The reason being that the DB size is small now as the ppd can be generated on the fly. The printer-driver-option combo is only stored in XML format and PPD file generated dynamically. Each option is stored separately in a XML file.
2. Foomatic-db engine which creates the PPD file from the XML db
3. The foomatic filter which is included in the cups-filter line of the ppd. This converts the Postscript to the printer language.

Why we need ICM profile and how they work?

Each color is defined by the there RGB component. But depending on the device calibration even if you provide the same color component, like R = 255, G = 128, B = 172, different devices will come up with a slight different color. To map the exact color, we have a color table. ICM profile is one such table. We have a standardised color table. Depending on the variation of the color from the device we add an offset its colors. If you want to print an image to paper we follow this path.
ICM profile of the monitor is added to the screen color. Then the printer driver adds the color profile to the print data to take care of the printers color offset and then it is printed. 2 color profiles need to be used for any mapping in the printer world. 

Thursday, March 09, 2006

Langauge monitor and port monitor

Why do we need both and what purpose do each solve?