Next: , Previous: GtkPrintOperation, Up: Top


110 GtkPrintContext

Encapsulates context for drawing pages

110.1 Overview

A GtkPrintContext encapsulates context information that is required when drawing pages for printing, such as the cairo context and important parameters like page size and resolution. It also lets you easily create <pango-layout> and <pango-context> objects that match the font metrics of the cairo surface.

GtkPrintContext objects gets passed to the ::begin-print, ::end-print, ::request-page-setup and ::draw-page signals on the <gtk-print-operation>.

     
     static void
     draw_page (GtkPrintOperation *operation,
     	   GtkPrintContext   *context,
     	   int                page_nr)
     {
       cairo_t *cr;
       PangoLayout *layout;
       PangoFontDescription *desc;
     
       cr = gtk_print_context_get_cairo_context (context);
     
       /* Draw a red rectangle, as wide as the paper (inside the margins) */
       cairo_set_source_rgb (cr, 1.0, 0, 0);
       cairo_rectangle (cr, 0, 0, gtk_print_context_get_width (context), 50);
     
       cairo_fill (cr);
     
       /* Draw some lines */
       cairo_move_to (cr, 20, 10);
       cairo_line_to (cr, 40, 20);
       cairo_arc (cr, 60, 60, 20, 0, M_PI);
       cairo_line_to (cr, 80, 20);
     
       cairo_set_source_rgb (cr, 0, 0, 0);
       cairo_set_line_width (cr, 5);
       cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
       cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
     
       cairo_stroke (cr);
     
       /* Draw some text */
       layout = gtk_print_context_create_layout (context);
       pango_layout_set_text (layout, "Hello World! Printing is easy", -1);
       desc = pango_font_description_from_string ("sans 28");
       pango_layout_set_font_description (layout, desc);
       pango_font_description_free (desc);
     
       cairo_move_to (cr, 30, 20);
       pango_cairo_layout_path (cr, layout);
     
       /* Font Outline */
       cairo_set_source_rgb (cr, 0.93, 1.0, 0.47);
       cairo_set_line_width (cr, 0.5);
       cairo_stroke_preserve (cr);
     
       /* Font Fill */
       cairo_set_source_rgb (cr, 0, 0.0, 1.0);
       cairo_fill (cr);
     
       g_object_unref (layout);
     }

Printing support was added in GTK+ 2.10.

110.2 Usage

— Class: <gtk-print-context>

Derives from <gobject>.

This class defines no direct slots.

— Function: gtk-print-context-get-cairo-context (self <gtk-print-context>) ⇒  (ret cairo-t)
— Method: get-cairo-context

Obtains the cairo context that is associated with the <gtk-print-context>.

context
a <gtk-print-context>
ret
the cairo context of context

Since 2.10

— Function: gtk-print-context-set-cairo-context (self <gtk-print-context>) (cr cairo-t) (dpi_x double) (dpi_y double)
— Method: set-cairo-context

Sets a new cairo context on a print context.

This function is intended to be used when implementing an internal print preview, it is not needed for printing, since GTK+ itself creates a suitable cairo context in that case.

context
a <gtk-print-context>
cr
the cairo context
dpi-x
the horizontal resolution to use with cr
dpi-y
the vertical resolution to use with cr

Since 2.10

— Function: gtk-print-context-get-page-setup (self <gtk-print-context>) ⇒  (ret <gtk-page-setup>)
— Method: get-page-setup

Obtains the <gtk-page-setup> that determines the page dimensions of the <gtk-print-context>.

context
a <gtk-print-context>
ret
the page setup of context

Since 2.10

— Function: gtk-print-context-get-width (self <gtk-print-context>) ⇒  (ret double)
— Method: get-width

Obtains the width of the <gtk-print-context>, in pixels.

context
a <gtk-print-context>
ret
the width of context

Since 2.10

— Function: gtk-print-context-get-height (self <gtk-print-context>) ⇒  (ret double)
— Method: get-height

Obtains the height of the <gtk-print-context>, in pixels.

context
a <gtk-print-context>
ret
the height of context

Since 2.10

— Function: gtk-print-context-get-dpi-x (self <gtk-print-context>) ⇒  (ret double)
— Method: get-dpi-x

Obtains the horizontal resolution of the <gtk-print-context>, in dots per inch.

context
a <gtk-print-context>
ret
the horizontal resolution of context

Since 2.10

— Function: gtk-print-context-get-dpi-y (self <gtk-print-context>) ⇒  (ret double)
— Method: get-dpi-y

Obtains the vertical resolution of the <gtk-print-context>, in dots per inch.

context
a <gtk-print-context>
ret
the vertical resolution of context

Since 2.10

— Function: gtk-print-context-get-pango-fontmap (self <gtk-print-context>) ⇒  (ret <pango-font-map>)
— Method: get-pango-fontmap

Returns a <pango-font-map> that is suitable for use with the <gtk-print-context>.

context
a <gtk-print-context>
ret
the font map of context

Since 2.10