PrintOperation


Object Hierarchy:

Gtk.PrintOperation Gtk.PrintOperation Gtk.PrintOperation GLib.Object GLib.Object GLib.Object->Gtk.PrintOperation Gtk.PrintOperationPreview Gtk.PrintOperationPreview Gtk.PrintOperationPreview->Gtk.PrintOperation

Description:

[ CCode ( type_id = "gtk_print_operation_get_type ()" ) ]
public class PrintOperation : Object, PrintOperationPreview

`GtkPrintOperation` is the high-level, portable printing API.

It looks a bit different than other GTK dialogs such as the `GtkFileChooser`, since some platforms don’t expose enough infrastructure to implement a good print dialog. On such platforms, `GtkPrintOperation` uses the native print dialog. On platforms which do not provide a native print dialog, GTK uses its own, see [[email protected]].

The typical way to use the high-level printing API is to create a `GtkPrintOperation` object with [[email protected]] when the user selects to print. Then you set some properties on it, e.g. the page size, any [[email protected]] from previous print operations, the number of pages, the current page, etc.

Then you start the print operation by calling [[email protected]]. It will then show a dialog, let the user select a printer and options. When the user finished the dialog, various signals will be emitted on the `GtkPrintOperation`, the main one being [ [email protected]:GtkPrintOperation:draw-page], which you are supposed to handle and render the page on the provided [[email protected]] using Cairo.

The high-level printing API

```c static GtkPrintSettings *settings = NULL;

static void do_print (void) { GtkPrintOperation *print; GtkPrintOperationResult res;

print = gtk_print_operation_new ();

if (settings != NULL) gtk_print_operation_set_print_settings (print, settings);

g_signal_connect (print, "begin_print", G_CALLBACK (begin_print), NULL); g_signal_connect (print, "draw_page", G_CALLBACK (draw_page), NULL);

res = gtk_print_operation_run (print, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, GTK_WINDOW (main_window), NULL);

if (res == GTK_PRINT_OPERATION_RESULT_APPLY) { if (settings != NULL) g_object_unref (settings); settings = g_object_ref ( gtk_print_operation_get_print_settings (print)); }

g_object_unref (print); } ```

By default `GtkPrintOperation` uses an external application to do print preview. To implement a custom print preview, an application must connect to the preview signal. The functions [[email protected]_page], [ [email protected]_preview] and [[email protected]_selected] are useful when implementing a print preview.


Namespace: Gtk
Package: gtk4

Content:

Properties:

Creation methods:

Methods:

Signals:

Inherited Members:

All known members inherited from class GLib.Object
All known members inherited from interface Gtk.PrintOperationPreview



2022 vala-language.org