Next: GtkPrintSettings, Previous: GtkPrintOperation, Up: Top
Encapsulates context for drawing pages
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.
Derives from
<gobject>.This class defines no direct slots.
<gtk-print-context>) ⇒ (ret cairo-t)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
<gtk-print-context>) (cr cairo-t) (dpi_x double) (dpi_y double)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
<gtk-print-context>) ⇒ (ret <gtk-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
<gtk-print-context>) ⇒ (ret double)Obtains the width of the
<gtk-print-context>, in pixels.
- context
- a
<gtk-print-context>- ret
- the width of context
Since 2.10
<gtk-print-context>) ⇒ (ret double)Obtains the height of the
<gtk-print-context>, in pixels.
- context
- a
<gtk-print-context>- ret
- the height of context
Since 2.10
<gtk-print-context>) ⇒ (ret double)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
<gtk-print-context>) ⇒ (ret double)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
<gtk-print-context>) ⇒ (ret <pango-font-map>)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