Emitted for every page that is printed.
The signal handler must render the @page_nr's page onto the cairo context obtained from @context using [method@Gtk.PrintContext.get_cairo_context].
static void draw_page (GtkPrintOperation *operation, GtkPrintContext *context, int page_nr, gpointer user_data) { cairo_t *cr; PangoLayout *layout; double width, text_height; int layout_height; PangoFontDescription *desc; cr = gtk_print_context_get_cairo_context (context); width = gtk_print_context_get_width (context); cairo_rectangle (cr, 0, 0, width, HEADER_HEIGHT); cairo_set_source_rgb (cr, 0.8, 0.8, 0.8); cairo_fill (cr); layout = gtk_print_context_create_pango_layout (context); desc = pango_font_description_from_string ("sans 14"); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); pango_layout_set_text (layout, "some text", -1); pango_layout_set_width (layout, width * PANGO_SCALE); pango_layout_set_alignment (layout, PANGO_ALIGN_CENTER); pango_layout_get_size (layout, NULL, &layout_height); text_height = (double)layout_height / PANGO_SCALE; cairo_move_to (cr, width / 2, (HEADER_HEIGHT - text_height) / 2); pango_cairo_show_layout (cr, layout); g_object_unref (layout); }
Use [method@Gtk.PrintOperation.set_use_full_page] and [method@Gtk.PrintOperation.set_unit] before starting the print operation to set up the transformation of the cairo context according to your needs.
See Implementation
Emitted for every page that is printed.
The signal handler must render the @page_nr's page onto the cairo context obtained from @context using [method@Gtk.PrintContext.get_cairo_context].
Use [method@Gtk.PrintOperation.set_use_full_page] and [method@Gtk.PrintOperation.set_unit] before starting the print operation to set up the transformation of the cairo context according to your needs.