Thanks for your effort and time Chris! That pretty much answers all of my questions, one question though, will poppler and such libs really be necessary when the file can already be viewed by an application? As I think if a page can be viewed, without doubt it can be rendered to cairo objects. I have gone through gtkprint previously, made a simple printing program in python which read text mime types. and could print as pdf or to the printer.
On Wed, Apr 15, 2009 at 3:02 PM, Chris Vine <ch...@cvine.freeserve.co.uk>wrote: > On Wed, 15 Apr 2009 10:24:13 +0100 > Chris Vine <ch...@cvine.freeserve.co.uk> wrote: > > > At the library user level, gtk-print doesn't convert to ps or pdf in > > order to print. It uses cairo/pango-cairo to write each page to a > > cairo context. It becomes clearer if you look at the documentation > > for GtkPrintOperation (including the "draw-page" signal) and > > GtkPrintContext. After the drawing of the document with cairo has > > been completed, gtk-print will convert those pages to postscript > > where unix (cups or lpr) rather than windows is the underlying print > > system, but that is not for the user to do nor bother with. > > > > Since you refer to sugar, you may be doing this in python. The py-gtk > > documentation is generally pretty good (better in some respects than > > the C interface documentation) so look at gtk.PrintOperation and > > gtk.PrintContext etc., which covers the same ground with some > > mini-examples. > > > > As it happens, if you are only interested in running your programs > > under unix-like operating systems, you can print a pre-prepared > > postscript document using GtkPrintUnixDialog and GtkPrintJob with the > > gtk_print_job_set_source_file() function, but doing that would offer > > less features. You could not for example select the pages to be > > printed, nor scale it nor set the margins, and it is not really the > > best way to do it. So it is best to stick to the high level > > GtkPrintOperation/cairo interface in order to give users what they > > expect. > > Sorry, just to complete the picture, you can draw the pages of pdf files > to cairo surfaces for printing via GtkPrintOperation using the poppler > library, and similarly for postscript using libspectre, but I do not > think that is what you were thinking about. However, if you are, look > at the evince source for examples. > > Chris > _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list