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

Re: [XaraXtreme-dev] Printing on Linux

On Sun, 11 Jun 2006 21:46:58 +0100, Alex Bligh wrote:
> I've been doing some investigations re printing on Linux.

An excellent thing to do. I haven't read through this whole thread yet,
but I do want to make some comments on the background material you
present here, to ensure you're aware of current developments in the
area of printing on free software operating systems.

The conclusion that PostScript is the current standard for printing
and won't be changing soon is correct, (there was some talk of moving
to PDF at the recent Desktop Printing Summit but it's clear that
there's a fair amount of work that will need to be done there).

> There are moves afoot to add Cairo as an underlying printing technology,
> but this isn't there yet. Postscript will continue to be supported.

That cairo for printing "isn't there yet" is technically correct, I
suppose. But it is close enough that I think it should be seriously
considered for any new development. This involves new code in both
GTK+ and cairo, which is currently available in development snapshots
(GTK+ 2.9 and cairo 1.1) but will very shortly be available in stable
releases (GTK+ 2.10 and cairo 1.2). I think both of these releases are
expected before the GUADEC conference at the end of the month (I know
cairo's is).

"Postscript will continue to be supported" is definitely the case. And
this also isn't independent of cairo. If you are doing printing
through GTK+ 2.9 with cairo it will still emit PostScript for the
underlying print system.

> The printer driver technology also supports printing to PDF, in as
> much as the postscript is simply turned into PDF.

The cairo stuff changes this in that "print to PDF" becomes a real
option that is much more interesting than simply converting PostScript
to PDF. Also, the cairo stuff enables a future change where the
underlying print system could switch from PostScript to PDF as the
spool format with no change in the application.

> At the GTK application level, GTK presents two libraries for use
> in printing: libgnomeprint and libgnomeprintui.

To pick a nit here: GNOME provides the libgnomeprint interfaces. GTK+
has never had direct printing support until the recent 2.9 stuff in
preparation for GTK+ 2.10. The new GTK+ printing support provides a
printing dialog and allows the application to print in at least two
different ways, (by providing PostScript output directly or by
providing a callback function that will be handed a cairo context to
be drawn on for each page).

Ignoring for the moment any application requirements to work with old
versions of GTK+, I would strongly discourage any new development from
using libgnomeprint. That library is in the process of being entirely
deprecated, with new development being encouraged to use the printing
support in GTK+ instead.

I know the primary developer of the GTK+ printing support, (Alex
Larsson), quite well, and I know he will be happy to help with any
effort to use this code---he definitely wants to fix any limitations
it has with respect to what applications need/want.

In contrast, I think you'll have a hard time finding anybody
interested in doing any maintenance on libgnomeprint, (though it is
more mature so maybe it won't need much).

> This is available in wx if wx is compiled with --with-gnomeprint
> (it isn't by default, but we shouldn't let that bother us);

I can't comment much on wx stuff. I don't know if it is actively
tracking recent print support in GTK+ or not. So there might be a
speed bump there in terms of getting access to the new GTK+ stuff
through wx---though I really don't know.

And I'll stop commenting now that you're getting into Camelot-specific
issues, since I'm less informed there. (I do still want to hook up
cairo-based export to Xara which would provide PNG, PDF, SVG, and
PostScript (and by extension, printing support)), but I'm just waiting
for the rainy Saturday afternoon when I can sit down and do this, (and
the time I need to spend before that to have my employer sign off on
me personally executing the Contributor's Agreement).

Anyway, I hope that helps clarify things.


>                                     It would, however, appear that
> printing on Linux may be substantially more simple than printing on
> Windows. And I didn't think I'd ever hear anyone say that.

That much, at least is very nice to hear. And I expect that as
you look at the more recent stuff you will see that it is only getting

Attachment: pgp3GYnXAgBHY.pgp
Description: PGP signature