The maximum number of bytes temporarily required for a page in letter size in 300 DPI should beĪbout 32 MiB and for 600 DPI it should be about 128 MiB. Gutenprint is responsible for doing the color conversion. The pixels are always encoded in RGB 8 bits per channel. Pixels for the image to be printed line by line. Uses a callback mechanism to request the size of the image in pixels and gets the The position and size of the image are set and then Gutenprint When all bitmap bands for a page are available Gutenprint is requested to Figure 4 shows an illustration of an image on a page. The bitmap bands for a page needed to be handed over to Then the settings needed for libprint where obtained from Gutenprint.Īt this point in time the other Gutenprint generic settings weren’t supported yet.Īt this step, the printer still did nothing. Only the printer manufacturer and model had to be obtained from Gutenprint.įigure 3: Printer Model Selection Dialog. Was already available as depicted in figure 3. Adema who implemented such a dialog for the PostScript driver, the user interface The driver could be built soon butįirst the printer model selection dialog was implemented. I started with a printer driver skeleton by copying an existing driverĪnd the removing the printer driver specific source code. The driver was implemented step by step.Īfter each step the added functionality could be tested. Using libprint in the past I am familiar with the Since I had written native Haiku printer drivers When the Haiku image is created these data files needed to be copied to the image as well.įor example the list of printer models is stored in an XML file printers.xml. In the header files macros are used for theĪfter adapting the header files for Haiku and creating Jamfiles, the port was completed!Īt runtime Gutenprint needs some data files that are part of Gutenprint source code repository. TheĬonfigure script generated header and make files. I decided to first try to build Gutenprint on OpenSuSE. Script working on Haiku, and I did not want to waste too much time in getting it to build, Since I did not have the knowledge of how to get the configure So building on Haiku did not work at first. Script to support building on different platforms and in differnt configurationsīut the script does not support Haiku yet. Once the configuration files had been created. The core built without any problems with both GCC2 and GCC4 Porting Gutenprint to Haiku was relatively easy. Query the available printer models, to query and modify the printer model specific settings, and toĬonvert an image on a page into a stream of printer specific data. The Gutenprint core library provides an API to Gutenprint consists at least of the core library, a GTK user interface, and support for CUPS, foomatic,įor the printer driver, only the core library is required. As soon as this bug is fixed the advanced settings can be enabled. Setup dialog would get too large to fit on most screens because of a When the advanced settings are enabled there are so many that the Gutenprint categorizes settings from basic to advanced. The settings inside the red rectangle are the missing settings Now libprint supports the following type of settings: A list of values visualized asĪ combo box, a boolean flag visualized as a check box and a value in a range of valuesįigure 2 shows the job setup dialog. Libprint had to be extended to show them in the job setup dialog and to persist them in the Settings can be mapped to existing settings provided by libprint. Gutenprint contains a meta model for the available settings of a printer model. The page setup dialog in Figure 1 shows the values for paper size and resolution from Gutenprint. For example whether a printer is a color printer and the available The setup dialogs provide a fixed set of settings whose value ranges are configurable The printerĭriver then converts the bitmap bands to a stream of data in a format that is understood It performs the rendering of the page as a sequence of bitmap bands. User interface for the page setup dialog, the print job setup dialog and a preview window. This framework makes it very easy to add a new printer driver to Haiku. Libprint, the printer driver framework, is used by native printer drivers such asĬanon LIPS 3 and 4, HP PCL5 and PCL6, and Adobe PostScript. This article describes Gutenprint and the effort to port it to Haiku.Įxtending the Haiku printer driver framework Gutenprint was recently ported to Haiku, both increasing its printing capabilities, as well as extending its supported printer models. Gutenprint currently supports over 700 printer models. Gutenprint is a suite of printer drivers that can be used with UNIX and Linux print spooling systems, such as CUPS (Common UNIX Printing System), lpr, LPRng, and others.
0 Comments
Leave a Reply. |