Gtk.PrintContext¶
- Subclasses:
None
Methods¶
- Inherited:
- Structs:
|
|
|
|
|
|
|
|
|
Virtual Methods¶
- Inherited:
Properties¶
None
Signals¶
- Inherited:
Fields¶
- Inherited:
Class Details¶
- class Gtk.PrintContext(**kwargs)¶
- Bases:
- Abstract:
No
A
Gtk.PrintContext
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 createPango.Layout
andPango.Context
objects that match the font metrics of the cairo surface.Gtk.PrintContext
objects gets passed to theGtk.PrintOperation
::begin-print
,Gtk.PrintOperation
::end-print
,Gtk.PrintOperation
::request-page-setup
andGtk.PrintOperation
::draw-page
signals on theGtk.PrintOperation
.- Using
Gtk.PrintContext
in aGtk.PrintOperation
::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); }
Printing support was added in GTK+ 2.10.
- create_pango_context()[source]¶
- Returns:
a new Pango context for self
- Return type:
Creates a new
Pango.Context
that can be used with theGtk.PrintContext
.New in version 2.10.
- create_pango_layout()[source]¶
- Returns:
a new Pango layout for self
- Return type:
Creates a new
Pango.Layout
that is suitable for use with theGtk.PrintContext
.New in version 2.10.
- get_cairo_context()[source]¶
- Returns:
the cairo context of self
- Return type:
Obtains the cairo context that is associated with the
Gtk.PrintContext
.New in version 2.10.
- get_dpi_x()[source]¶
- Returns:
the horizontal resolution of self
- Return type:
Obtains the horizontal resolution of the
Gtk.PrintContext
, in dots per inch.New in version 2.10.
- get_dpi_y()[source]¶
- Returns:
the vertical resolution of self
- Return type:
Obtains the vertical resolution of the
Gtk.PrintContext
, in dots per inch.New in version 2.10.
- get_hard_margins()[source]¶
- Returns:
True
if the hard margins were retrieved- top:
top hardware printer margin
- bottom:
bottom hardware printer margin
- left:
left hardware printer margin
- right:
right hardware printer margin
- Return type:
(
bool
, top:float
, bottom:float
, left:float
, right:float
)
Obtains the hardware printer margins of the
Gtk.PrintContext
, in units.New in version 2.20.
- get_height()[source]¶
- Returns:
the height of self
- Return type:
Obtains the height of the
Gtk.PrintContext
, in pixels.New in version 2.10.
- get_page_setup()[source]¶
- Returns:
the page setup of self
- Return type:
Obtains the
Gtk.PageSetup
that determines the page dimensions of theGtk.PrintContext
.New in version 2.10.
- get_pango_fontmap()[source]¶
- Returns:
the font map of self
- Return type:
Returns a
Pango.FontMap
that is suitable for use with theGtk.PrintContext
.New in version 2.10.
- get_width()[source]¶
- Returns:
the width of self
- Return type:
Obtains the width of the
Gtk.PrintContext
, in pixels.New in version 2.10.
- set_cairo_context(cr, dpi_x, dpi_y)[source]¶
- Parameters:
cr (
cairo.Context
) – the cairo contextdpi_x (
float
) – the horizontal resolution to use with crdpi_y (
float
) – the vertical resolution to use with cr
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.
New in version 2.10.