gtk.print_context
Module for [PrintContext] class
Types 3
A gtk.print_context.PrintContext encapsulates context information that is required when drawing pages for printing.
This includes the cairo context and important parameters like page size and resolution. It also lets you easily create pango.layout.Layout and pango.context.Context objects that match the font metrics of the cairo surface.
gtk.print_context.PrintContext objects get passed to the gtk.print_operation.PrintOperation.beginPrint, gtk.print_operation.PrintOperation.endPrint, gtk.print_operation.PrintOperation.requestPageSetup and gtk.print_operation.PrintOperation.drawPage signals on the gtk.print_operation.PrintOperation object.
Using GtkPrintContext in a ::draw-page callback
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_pango_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);
}PrintContextGidBuilder builder() static nothrowGet builder for [gtk.print_context.PrintContext] Returns: New builder objectpango.context.Context createPangoContext() nothrowCreates a new [pango.context.Context] that can be used with the [gtk.print_context.PrintContext]. Returns: a new Pango context for contextpango.layout.Layout createPangoLayout() nothrowCreates a new [pango.layout.Layout] that is suitable for use with the [gtk.print_context.PrintContext]. Returns: a new Pango layout for contextcairo.context.Context getCairoContext() nothrowObtains the cairo context that is associated with the [gtk.print_context.PrintContext]. Returns: the cairo context of contextdouble getDpiX() nothrowObtains the horizontal resolution of the [gtk.print_context.PrintContext], in dots per inch. Returns: the horizontal resolution of contextdouble getDpiY() nothrowObtains the vertical resolution of the [gtk.print_context.PrintContext], in dots per inch. Returns: the vertical resolution of contextbool getHardMargins(out double top, out double bottom, out double left, out double right) nothrowObtains the hardware printer margins of the [gtk.print_context.PrintContext], in units.double getHeight() nothrowObtains the height of the [gtk.print_context.PrintContext], in pixels. Returns: the height of contextgtk.page_setup.PageSetup getPageSetup() nothrowObtains the [gtk.page_setup.PageSetup] that determines the page dimensions of the [gtk.print_context.PrintContext]. Returns: the page setup of contextpango.font_map.FontMap getPangoFontmap() nothrowReturns a [pango.font_map.FontMap] that is suitable for use with the [gtk.print_context.PrintContext]. Returns: the font map of contextdouble getWidth() nothrowObtains the width of the [gtk.print_context.PrintContext], in pixels. Returns: the width of contextvoid setCairoContext(cairo.context.Context cr, double dpiX, double dpiY) nothrowSets a new cairo context on a print context.Fluent builder implementation template for gtk.print_context.PrintContext
Fluent builder for gtk.print_context.PrintContext