[Gnome-print] An introduction to gnome-print (fwd)



Hi, 

I told Miguel de Icaza, maintainer of the gnome-print project, 
about the discussion going on regarding the future of gimp-print 
and printing in general and he asked me to forward this mail to 
you:

------- Forwarded Message
Date: Thu, 18 May 2000 09:00:42 -0400
From: Miguel de Icaza <miguel@helixcode.com>


Dear Gimp Printers,

   It has been brought to my attention that you guys have been
discussing the future of printer drivers and that you are debating
high quality printer drivers for GIMP.

   I do not know the context of your debate, but I will want to
introduce gnome-print to you guys, to consider you guys joining our
effort to provide a complete imaging solution for Unix systems.

* What is GNOME Print

    GNOME print is an imaging API modeled after the Postscript imaging
    model, that is accessible trough a Gtk+-like C API.  This imaging
    model has two major extensions: support for an alpha channel and
    anti-aliasing.

    Font rendering is achieved by loading Type1 definitions that are
    found at installation time and using those outlines to actually
    output those fonts (the fontmap.xml can be regenerated at any time
    after installation to add more fonts to GnomePrint).

    Basically, think that we have an implementation of an advanced
    "Ghostscript" in a library (without the programming language).

    The API and architecture are designed to let you plug drivers into
    the system.  Here is a list of the current drivers:

	1. Postscript.

	2. On-screen previewing (using the GnomeCanvas/Libart)

	3. Metafile driver (to record printing commands: used to
           encapsulate printer output for compound documents and for
           handling many of the user interface details: creation of
           booklets, colating, multiple-copies, reordering, two-side
           printing).

	4. RGB rasterizer:  This is the most interesting part: this
           driver can rasterize the printing commands sent to a
           printing context and generate output as an RGB buffer for
           the entire page (as an optimization, the RGB driver works
           in 1-inch bands).

	5. A generic PCL driver (not yet fully plugged into the
           system).   This PCL driver is just a "derived" class from
           the RGB rasterizer.  

	   This driver contains a pretty neat set of compression
	   techniques to reduce the size of the file sent to the
	   printer. 

     GNOME Print on top of that can send its output currently to a
     file (or a device) or to a Unix printer spooler.

* Why I believe GNOME print is a better solution than GIMP print, even
  for the GIMP.

     The GIMP print output is currently limited to printing bitmaps,
     it has no support for printing anything but that.    This limits
     its usefulness for adding other kind of information on its
     output. 

     Consider for instance adding captions, centering the image,
     printing guides, color samples, and so on. 

     If in the future GIMP print wants to add any of this, they will
     have to resort to defining an API similar to what we have in
     GNOME print, and reinvent the wheel all over again. 

     Hence, I would like to encourage people to use GNOME-print as
     your imaging API instead of your current native bitmap interface
     and to get hackers working on GNOME print to make it suit the
     imaging needs of the GIMP. 

* The future of GNOME Print

     We are working on various extensions to GNOME Print to make it a
     full solution for Unix printing, here is a list of pending tasks:

	1. Integration of Lauris Kaplinski's code in the RGBA branch
           into the main branch after GNOME 1.2 is released (on
           monday).

	2. Add the XML capabilities description for the printer to
           configure the PCL driver for the various printers we have
           out there.

	3. Add ICC support to GNOME print.

	4. Adding support for ploter-like devices by limiting the API
           of plotters.

	5. Add support for using more of the features available in the
           printer for "normal" output (ie, if the user does not use
           any advanced feature from Postscript and just outputs text,
           we can use the printer fonts if they happen to match the
           ones we have, or we can download fonts + outputing just
           text).

	6. GUI configuration tools for the various properties of the
           printers. 

     You will notice that some of this overlaps with existing
     projects, like the libppd-related things.  The reason is that PPD
     is limited to Poscript printers, and we do need a solution that
     can be applied to more than Poscript printers.

     Our plan is to use libppd to "import" PPD files into GNOME print
     profiles (check http://lists.helixcode.com, gnome-print archives
     for the actual proposal).

* How to join the development.

     Look at developer.gnome.org for the original GNOME print
     proposal to see what the ideas behind it are (this document is a
     bit outdated, but still the core concepts are still there).

     Get gnome-print from the ftp.gnome.org site.

     Look at gnome-print enabled applications: gEdit (for very simple
     output);  Gnumeric for a more complex use of the GnomePrint API;
     SodiPodi: for the ultimate user of printing functions.

Best wishes,
Miguel.




------- End of Forwarded Message







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