GtkPrintContext

描述 [src]

final class Gtk.PrintContext : GObject.Object
{
  /* No available fields */
}

GtkPrintContext 封装打印页面时所需的环境信息。

其中包括开罗上下文和重要的参数,如页面大小和分辨率。它还允许您轻松创建 PangoLayoutPangoContext 对象,它们与开罗表面的字体度量匹配。

GtkPrintContext 对象会传递给 GtkPrintOperation::begin-printGtkPrintOperation::end-printGtkPrintOperation::request-page-setupGtkPrintOperation::draw-page 信号在 GtkPrintOperation 对象上。

在 ::draw-page 回调中使用 GtkPrintContext

static void
draw_page (GtkPrintOperation *operation,
           GtkPrintContext   *context,
           int                page_nr)
{
  cairo_t *cr;
  PangoLayout *layout;
  PangoFontDescription *desc;

  cr = gtk_print_context_get_cairo_context (context);

  // Draw a red rectangle, as wide as the paper (inside the margins)
  cairo_set_source_rgb (cr, 1.0, 0, 0);
  cairo_rectangle (cr, 0, 0, gtk_print_context_get_width (context), 50);

  cairo_fill (cr);

  // Draw some lines
  cairo_move_to (cr, 20, 10);
  cairo_line_to (cr, 40, 20);
  cairo_arc (cr, 60, 60, 20, 0, M_PI);
  cairo_line_to (cr, 80, 20);

  cairo_set_source_rgb (cr, 0, 0, 0);
  cairo_set_line_width (cr, 5);
  cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
  cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);

  cairo_stroke (cr);

  // Draw some text
  layout = gtk_print_context_create_pango_layout (context);
  pango_layout_set_text (layout, "Hello World! Printing is easy", -1);
  desc = pango_font_description_from_string ("sans 28");
  pango_layout_set_font_description (layout, desc);
  pango_font_description_free (desc);

  cairo_move_to (cr, 30, 20);
  pango_cairo_layout_path (cr, layout);

  // Font Outline
  cairo_set_source_rgb (cr, 0.93, 1.0, 0.47);
  cairo_set_line_width (cr, 0.5);
  cairo_stroke_preserve (cr);

  // Font Fill
  cairo_set_source_rgb (cr, 0, 0.0, 1.0);
  cairo_fill (cr);

  g_object_unref (layout);
}

层次

hierarchy this GtkPrintContext ancestor_0 GObject ancestor_0--this

祖先

实例方法

gtk_print_context_create_pango_context

创建一个可以用 GtkPrintContext 一起使用的新的 PangoContext

gtk_print_context_create_pango_layout

创建一个适合与 GtkPrintContext 一起使用的新的 PangoLayout

gtk_print_context_get_cairo_context

获取与 GtkPrintContext 关联的开罗上下文。

gtk_print_context_get_dpi_x

获取 GtkPrintContext 的水平分辨率,单位为每英寸点数。

gtk_print_context_get_dpi_y

获取 GtkPrintContext 的垂直分辨率,单位为每英寸点数。

gtk_print_context_get_hard_margins

获取 GtkPrintContext 的硬件打印机边距,单位为点。

gtk_print_context_get_height

获取 GtkPrintContext 的高度,单位为像素。

gtk_print_context_get_page_setup

获取确定 GtkPrintContext 页面尺寸的 GtkPageSetup

gtk_print_context_get_pango_fontmap

返回适合与 GtkPrintContext 一起使用的 PangoFontMap

gtk_print_context_get_width

获取 GtkPrintContext 的宽度,单位为像素。

gtk_print_context_set_cairo_context

在打印上下文中设置一个新的开罗上下文。

GObject (43) 继承的方法

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

信号

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

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