gnome-print is still
somewhat experimental, but very promising. It uses libart_lgpl and works nicely
with GnomeCanvas. It
provides virtual output devices (called "print
contexts"), so a single codebase can output to a print
preview widget, to PostScript, and eventually to other
printer formats.
gnome-print also includes printing-related GUI
elements, like a print setup dialog, and a virtual font
interface (to deal with the problem that X fonts are
not printable).