Paginate the document associated with the compositor.
In order to support non-blocking pagination, document is paginated in small chunks.
Each time Source.printCompositorPaginate is invoked, a chunk of the document
is paginated. To paginate the entire document, Source.printCompositorPaginate
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 paginate signal,
as shown in the following example:
<informalexample><programlisting>
// Signal handler for the GtkPrintOperation::paginate signal
If you don't need to do pagination in chunks, you can simply do it all in the
begin-print handler, and set the number of pages from there, like
in the following example:
<informalexample><programlisting>
// Signal handler for the GtkPrintOperation::begin-print signal
Paginate the document associated with the compositor.
In order to support non-blocking pagination, document is paginated in small chunks. Each time Source.printCompositorPaginate is invoked, a chunk of the document is paginated. To paginate the entire document, Source.printCompositorPaginate 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 paginate signal, as shown in the following example:
<informalexample><programlisting> // 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; } </programlisting></informalexample>
If you don't need to do pagination in chunks, you can simply do it all in the begin-print handler, and set the number of pages from there, like in the following example:
<informalexample><programlisting> // 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); } </programlisting></informalexample>