PrintCompositor.paginate

Paginate the document associated with the compositor.

In order to support non-blocking pagination, document is paginated in small chunks. Each time gtksource.print_compositor.PrintCompositor.paginate is invoked, a chunk of the document is paginated. To paginate the entire document, gtksource.print_compositor.PrintCompositor.paginate must be invoked multiple times. It returns true if the document has been completely paginated, otherwise it returns false.

This method has been designed to be invoked in the handler of the gtk.print_operation.PrintOperation.paginate signal, as shown in the following example:

// Signal handler for the GtkPrintOperation::paginate signal

static gboolean
paginate (GtkPrintOperation *operation,
          GtkPrintContext   *context,
          gpointer           user_data)
{
    GtkSourcePrintCompositor *compositor;

    compositor = GTK_SOURCE_PRINT_COMPOSITOR (user_data);

    if (gtk_source_print_compositor_paginate (compositor, context))
    {
        gint n_pages;

        n_pages = gtk_source_print_compositor_get_n_pages (compositor);
        gtk_print_operation_set_n_pages (operation, n_pages);

        return TRUE;
    }

    return FALSE;
}

If you don't need to do pagination in chunks, you can simply do it all in the signalGtk.PrintOperation::begin-print handler, and set the number of pages from there, like in the following example:

// Signal handler for the GtkPrintOperation::begin-print signal

static void
begin_print (GtkPrintOperation *operation,
             GtkPrintContext   *context,
             gpointer           user_data)
{
    GtkSourcePrintCompositor *compositor;
    gint n_pages;

    compositor = GTK_SOURCE_PRINT_COMPOSITOR (user_data);

    while (!gtk_source_print_compositor_paginate (compositor, context));

    n_pages = gtk_source_print_compositor_get_n_pages (compositor);
    gtk_print_operation_set_n_pages (operation, n_pages);
}
class PrintCompositor
bool
paginate

Parameters

context gtk.print_context.PrintContext

the #GtkPrintContext whose parameters (e.g. paper size, print margins, etc.) are used by the the compositor to paginate the document.

Return Value

Type: bool

true if the document has been completely paginated, false otherwise.