GtkPrintOperation

描述 [src]

class Gtk.PrintOperation : GObject.Object
  implements Gtk.PrintOperationPreview {
  /* No available fields */
}

GtkPrintOperation 是高级便携式打印 API

它与其他 GTK 对话框(例如 GtkFileChooser)看起来有点不同,因为某些平台没有公开足够的底层设施以实现良好的打印对话。在这些平台上,GtkPrintOperation 使用本机打印对话。对于不提供本机打印对话的平台,GTK 使用其自己,请参阅 GtkPrintUnixDialog

使用高级打印 API 的典型方式是,当用户选择打印时,使用 gtk_print_operation_new() 创建 GtkPrintOperation 对象。然后,在它上面设置一些属性,例如页面大小、先前打印操作中的任何 GtkPrintSettings、页面数、当前页,等等。

然后,通过调用 gtk_print_operation_run() 启动打印操作。它将显示一个对话,让用户选择打印机和选项。当用户完成对话后,将在 GtkPrintOperation 上发出各种信号,主要信号是 GtkPrintOperation::draw-page,你应该处理它并在所提供的 GtkPrintContext 上使用 Cairo 渲染页面。

高级打印 API

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);
}

默认情况下,GtkPrintOperation 使用外部应用程序进行打印预览。要实现自定义打印预览,应用程序必须连接到 preview 信号。当实现打印预览时,函数 gtk_print_operation_preview_render_page()gtk_print_operation_preview_end_preview()gtk_print_operation_preview_is_selected() 很有用。

层次

hierarchy this GtkPrintOperation implements_0 GtkPrintOperationPreview this--implements_0 ancestor_0 GObject ancestor_0--this

祖代

构造函数

gtk_print_operation_new

创建新的 GtkPrintOperation

实例方法

gtk_print_operation_cancel

取消正在运行的打印操作。

gtk_print_operation_draw_page_finish

特殊页面的绘画已完成的信号。

gtk_print_operation_get_default_page_setup

返回默认页面设置。

gtk_print_operation_get_embed_page_setup

获取是否嵌入页面设置选择组合框。

gtk_print_operation_get_error

当打印操作的结果是 GTK_PRINT_OPERATION_RESULT_ERROR 时,调用此函数。

gtk_print_operation_get_has_selection

获取是否存在选择项。

gtk_print_operation_get_n_pages_to_print

返回将被打印的页面数。

gtk_print_operation_get_print_settings

返回当前打印设置。

gtk_print_operation_get_status

返回打印操作的状态。

gtk_print_operation_get_status_string

返回打印操作状态的字符串表示形式。

gtk_print_operation_get_support_selection

获取应用程序是否支持打印选择内容。

gtk_print_operation_is_finished

一个判断打印操作是否结束的便捷函数。

gtk_print_operation_run

运行打印操作。

gtk_print_operation_set_allow_async

设置 gtk_print_operation_run() 是否可以在打印操作完成前返回。

gtk_print_operation_set_custom_tab_label

设置包含自定义小组件的选项卡标签。

gtk_print_operation_set_default_page_setup

default_page_setup 设置为 op 的默认页面设置。

gtk_print_operation_set_defer_drawing

设置 GtkPrintOperation 等待从应用程序调用 [[email protected]_page_finish .

gtk_print_operation_set_embed_page_setup

将页尺寸组合框和方向组合框嵌入页面设置页。

gtk_print_operation_set_export_filename

设置 GtkPrintOperation 以生成文件,而不是显示打印对话框。

gtk_print_operation_set_has_selection

设置是否有要打印的选择内容。

gtk_print_operation_set_job_name

设置打印作业名称。

gtk_print_operation_set_n_pages

设置文档中的页数。

gtk_print_operation_set_print_settings

设置 op 的打印设置。

gtk_print_operation_set_show_progress

如果 show_progressTRUE,打印操作将在打印操作期间显示进度对话框。

gtk_print_operation_set_support_selection

设置 GtkPrintOperation 是否支持选择内容。

gtk_print_operation_set_track_print_status

如果 track_status 为 TRUE,打印操作将尝试继续报告打印机队列和打印机中打印作业的状态。

gtk_print_operation_set_unit

unit 为单位的方式设置从 GtkPrintContext 获取的 cairo 上下文的转换,以便以 unit 为单位度量距离。

gtk_print_operation_set_use_full_page

如果 full_pageTRUE,从 GtkPrintContext 获取的 cairo 上下文的转换会将原点放在页面的左上角。

GObject 继承的方法(43)

有关方法的完整列表,请参阅 GObject

GtkPrintOperationPreview 继承的方法(3)
gtk_print_operation_preview_end_preview

结束预览。

gtk_print_operation_preview_is_selected

返回给定页面是否包含在已选择的要打印的页面集中。

gtk_print_operation_preview_render_page

将页面渲染到预览。

属性

Gtk.PrintOperation:allow-async

确定打印操作是否可以异步运行。

Gtk.PrintOperation:current-page

文档中的当前页。

Gtk.PrintOperation:custom-tab-label

用作包含自定义小组件的选项卡的标签。

Gtk.PrintOperation:default-page-setup

默认使用的 GtkPageSetup

Gtk.PrintOperation:embed-page-setup

如果为 TRUE,页尺寸组合框和方向组合框将嵌入到页面设置页中。

Gtk.PrintOperation:export-filename

在显示打印对话框时使用生成的文件名。

Gtk.PrintOperation:has-selection

确定应用程序中是否有选择。

Gtk.PrintOperation:job-name

用于识别作业的字符串(例如,在 eggcups 等监控应用程序中)。

Gtk.PrintOperation:n-pages

文档中的页面数。

Gtk.PrintOperation:n-pages-to-print

将打印的页面数。

Gtk.PrintOperation:print-settings

用于初始化对话框的GtkPrintSettings

Gtk.PrintOperation:show-progress

确定在打印过程中是否显示进度对话框。

Gtk.PrintOperation:status

打印操作的状态。

Gtk.PrintOperation:status-string

打印操作状态的字符串表示形式。

Gtk.PrintOperation:support-selection

如果为 TRUE,则打印操作将支持打印选择。

Gtk.PrintOperation:track-print-status

如果为 TRUE,则打印操作将尝试继续报告打印队列和打印机中打印作业的状态。

Gtk.PrintOperation:unit

GtkPrintContext 获取的 Cairo 上下文转换已以这样的方式设置:以 unit 为单位测量距离。

Gtk.PrintOperation:use-full-page

如果为 TRUE,则从 GtkPrintContext 获取的 Cairo 上下文转换会将原点置于页面的左上角。

信号

Gtk.PrintOperation::begin-print

在用户完成更改对话框中的打印设置(在实际呈现开始之前)后发出。

Gtk.PrintOperation::create-custom-widget

在显示打印对话框时发出。

Gtk.PrintOperation::custom-widget-apply

如果您在 ::create-custom-widget 处理程序中添加了自定义小组件,则在 ::begin-print 之前发出。

Gtk.PrintOperation::done

当打印操作运行完成执行打印所需的所有操作时发出。

Gtk.PrintOperation::draw-page

为打印的每一页发出。

Gtk.PrintOperation::end-print

所有页面呈现完成后发出。

Gtk.PrintOperation::paginate

在 ::begin-print 信号之后发出(但在实际呈现开始之前)。

Gtk.PrintOperation::preview

从本机对话框请求预览时发出。

Gtk.PrintOperation::request-page-setup

针对打印的每一页发出一次。

Gtk.PrintOperation::status-changed

在打印操作的不同阶段之间发出。

Gtk.PrintOperation::update-custom-widget

选定的打印机更改后发出。

GObject 继承的信号 (1)
GObject::notify

当某个属性的值通过 g_object_set_property()、g_object_set() 等设置时,将在对象上发出 notify 信号。

GtkPrintOperationPreview 继承的信号 (2)
GtkPrintOperationPreview::got-page-size

呈现到预览的每一页发出一次。

GtkPrintOperationPreview::ready

在呈现第一页之前,每个预览操作会发出一次 ::ready 信号。

类结构

struct GtkPrintOperationClass {
  GObjectClass parent_class;
  void (* done) (
    GtkPrintOperation* operation,
    GtkPrintOperationResult result
  );
  void (* begin_print) (
    GtkPrintOperation* operation,
    GtkPrintContext* context
  );
  gboolean (* paginate) (
    GtkPrintOperation* operation,
    GtkPrintContext* context
  );
  void (* request_page_setup) (
    GtkPrintOperation* operation,
    GtkPrintContext* context,
    int page_nr,
    GtkPageSetup* setup
  );
  void (* draw_page) (
    GtkPrintOperation* operation,
    GtkPrintContext* context,
    int page_nr
  );
  void (* end_print) (
    GtkPrintOperation* operation,
    GtkPrintContext* context
  );
  void (* status_changed) (
    GtkPrintOperation* operation
  );
  GtkWidget* (* create_custom_widget) (
    GtkPrintOperation* operation
  );
  void (* custom_widget_apply) (
    GtkPrintOperation* operation,
    GtkWidget* widget
  );
  gboolean (* preview) (
    GtkPrintOperation* operation,
    GtkPrintOperationPreview* preview,
    GtkPrintContext* context,
    GtkWindow* parent
  );
  void (* update_custom_widget) (
    GtkPrintOperation* operation,
    GtkWidget* widget,
    GtkPageSetup* setup,
    GtkPrintSettings* settings
  );
  
}

无可用描述。

类成员
parent_class: GObjectClass

父类。

done: void (* done) ( GtkPrintOperation* operation, GtkPrintOperationResult result )

当打印操作运行完成执行打印所需的所有操作时发出的信号。

begin_print: void (* begin_print) ( GtkPrintOperation* operation, GtkPrintContext* context )

在用户完成更改对话框中的打印设置(在实际呈现开始之前)后发出。

paginate: gboolean (* paginate) ( GtkPrintOperation* operation, GtkPrintContext* context )

在“begin-print”信号之后发出(但在实际呈现开始之前)。

request_page_setup: void (* request_page_setup) ( GtkPrintOperation* operation, GtkPrintContext* context, int page_nr, GtkPageSetup* setup )

针对每个打印页面发出一次,以便应用程序修改页面设置。

draw_page: void (* draw_page) ( GtkPrintOperation* operation, GtkPrintContext* context, int page_nr )

针对每个打印页面发出的信号。

end_print: void (* end_print) ( GtkPrintOperation* operation, GtkPrintContext* context )

在所有页面都已呈现后发出的信号。

status_changed: void (* status_changed) ( GtkPrintOperation* operation )

在打印操作的不同阶段之间发出。

create_custom_widget: GtkWidget* (* create_custom_widget) ( GtkPrintOperation* operation )

在显示打印对话框时发出的信号。

custom_widget_apply: void (* custom_widget_apply) ( GtkPrintOperation* operation, GtkWidget* widget )

如果您在“create-custom-widget”处理程序中添加了自定义小部件,则在“begin-print”之前发出的信号。

preview: gboolean (* preview) ( GtkPrintOperation* operation, GtkPrintOperationPreview* preview, GtkPrintContext* context, GtkWindow* parent )

在从本机对话框请求预览时发出的信号。

update_custom_widget: void (* update_custom_widget) ( GtkPrintOperation* operation, GtkWidget* widget, GtkPageSetup* setup, GtkPrintSettings* settings )

选定的打印机更改后发出。

虚拟方法

Gtk.PrintOperationClass.begin_print

在用户完成更改对话框中的打印设置(在实际呈现开始之前)后发出。

Gtk.PrintOperationClass.create_custom_widget

在显示打印对话框时发出的信号。

Gtk.PrintOperationClass.custom_widget_apply

如果您在“create-custom-widget”处理程序中添加了自定义小部件,则在“begin-print”之前发出的信号。

Gtk.PrintOperationClass.done

当打印操作运行完成执行打印所需的所有操作时发出的信号。

Gtk.PrintOperationClass.draw_page

针对每个打印页面发出的信号。

Gtk.PrintOperationClass.end_print

在所有页面都已呈现后发出的信号。

Gtk.PrintOperationClass.paginate

在“begin-print”信号之后发出(但在实际呈现开始之前)。

Gtk.PrintOperationClass.preview

在从本机对话框请求预览时发出的信号。

Gtk.PrintOperationClass.request_page_setup

针对每个打印页面发出一次,以便应用程序修改页面设置。

Gtk.PrintOperationClass.status_changed

在打印操作的不同阶段之间发出。

Gtk.PrintOperationClass.update_custom_widget

选定的打印机更改后发出。