using gtkprint for images



I just took a first serious look at the gtkprint API.  I must say 
it works very nicely and is quite easy to learn, at least as 
regards printing text.

My first problem: I have a window displaying the content of a PNG 
file, and I'd like to offer the option of printing the PNG.  How 
to do this?

I tried connecting the "begin_print" signal to this callback
(I've stripped out several checks for quick legibility):

static void begin_image_print (GtkPrintOperation *op,
                               GtkPrintContext *context,
                               char *pngname)
{
    cairo_surface_t *cs;
    cairo_t *cr;

    cs = cairo_image_surface_create_from_png(pngname);
    cr = cairo_create(cs);
    gtk_print_context_set_cairo_context(context, cr, 72, 72);

    gtk_print_operation_set_n_pages(op, 1);
}

By running a verbose version of the above I've verified that cairo 
is happily creating a 640x480 surface of type CAIRO_FORMAT_ARGB32 
based on the PNG file, and successfully making a cairo_t out of 
it.

But then I'm not sure what, if anything, to put in a callback for 
the "draw_page" signal: it sort of seems like there should be 
nothing left to do.  I tried just making the callback just a stub 
that prints "got draw_page".  But I get a blank PDF on output.

Suggestions gratefully received.

-- 
Allin Cottrell
Department of Economics
Wake Forest University, NC



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