📄 gtkprintcontext.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"><title>GtkPrintContext</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><link rel="start" href="index.html" title="GTK+ Reference Manual"><link rel="up" href="Printing.html" title="Printing"><link rel="prev" href="gtk-High-level-Printing-API.html" title="GtkPrintOperation"><link rel="next" href="GtkPrintSettings.html" title="GtkPrintSettings"><meta name="generator" content="GTK-Doc V1.9 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="gtk.html" title="Part I. GTK+ Overview"><link rel="part" href="gtkbase.html" title="Part II. GTK+ Core Reference"><link rel="part" href="gtkobjects.html" title="Part III. GTK+ Widgets and Objects"><link rel="chapter" href="ch01.html" title="Object Hierarchy"><link rel="chapter" href="ch02.html" title="Widget Gallery"><link rel="chapter" href="WindowWidgets.html" title="Windows"><link rel="chapter" href="DisplayWidgets.html" title="Display Widgets"><link rel="chapter" href="ButtonWidgets.html" title="Buttons and Toggles"><link rel="chapter" href="NumericEntry.html" title="Numeric/Text Data Entry"><link rel="chapter" href="TextWidgetObjects.html" title="Multiline Text Editor"><link rel="chapter" href="TreeWidgetObjects.html" title="Tree, List and Icon Grid Widgets"><link rel="chapter" href="MenusAndCombos.html" title="Menus, Combo Box, Toolbar"><link rel="chapter" href="Actions.html" title="Action-based menus and toolbars"><link rel="chapter" href="SelectorWidgets.html" title="Selectors (File/Font/Color/Input Devices)"><link rel="chapter" href="LayoutContainers.html" title="Layout Containers"><link rel="chapter" href="Ornaments.html" title="Ornaments"><link rel="chapter" href="ScrollingWidgets.html" title="Scrolling"><link rel="chapter" href="Printing.html" title="Printing"><link rel="chapter" href="MiscObjects.html" title="Miscellaneous"><link rel="chapter" href="AbstractObjects.html" title="Abstract Base Classes"><link rel="chapter" href="PlugSocket.html" title="Cross-process Embedding"><link rel="chapter" href="SpecialObjects.html" title="Special-purpose features"><link rel="chapter" href="RecentDocuments.html" title="Recently Used Documents"><link rel="chapter" href="Builder.html" title="Interface builder"><link rel="chapter" href="DeprecatedObjects.html" title="Deprecated"><link rel="part" href="migrating.html" title="Part IV. Migrating from Previous Versions of GTK+"><link rel="chapter" href="gtk-migrating-checklist.html" title="Migration Checklist"><link rel="chapter" href="gtk-migrating-GtkFileChooser.html" title="Migrating from GtkFileSelection to GtkFileChooser"><link rel="chapter" href="gtk-migrating-GtkAction.html" title="Migrating from old menu and toolbar systems to GtkAction"><link rel="chapter" href="gtk-migrating-GtkComboBox.html" title="Migrating from GtkOptionMenu and GtkCombo to GtkComboBox and GtkComboBoxEntry"><link rel="chapter" href="gtk-migrating-GtkIconView.html" title="Migrating from GnomeIconList to GtkIconView"><link rel="chapter" href="gtk-migrating-GtkAboutDialog.html" title="Migrating from GnomeAbout to GtkAboutDialog"><link rel="chapter" href="gtk-migrating-GtkColorButton.html" title="Migrating from GnomeColorPicker to GtkColorButton"><link rel="chapter" href="gtk-migrating-GtkAssistant.html" title="Migrating from GnomeDruid to GtkAssistant"><link rel="chapter" href="gtk-migrating-GtkRecentChooser.html" title="Migrating from EggRecent to GtkRecentChooser"><link rel="chapter" href="gtk-migrating-GtkLinkButton.html" title="Migrating from GnomeHRef to GtkLinkButton"><link rel="chapter" href="gtk-migrating-GtkBuilder.html" title="Migrating from libglade to GtkBuilder"><link rel="chapter" href="gtk-migrating-tooltips.html" title="Migrating from GtkTooltips to GtkTooltip"><link rel="part" href="pt05.html" title="Part V. GTK+ Tools"><link rel="glossary" href="glossary.html" title="Glossary"><link rel="index" href="ix01.html" title="Index"><link rel="index" href="ix02.html" title="Index of deprecated symbols"><link rel="index" href="ix03.html" title="Index of new symbols in 2.2"><link rel="index" href="ix04.html" title="Index of new symbols in 2.4"><link rel="index" href="ix05.html" title="Index of new symbols in 2.6"><link rel="index" href="ix06.html" title="Index of new symbols in 2.8"><link rel="index" href="ix07.html" title="Index of new symbols in 2.10"><link rel="index" href="ix08.html" title="Index of new symbols in 2.12"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="gtk-High-level-Printing-API.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="Printing.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">GTK+ Reference Manual</th><td><a accesskey="n" href="GtkPrintSettings.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr><tr><td colspan="5" class="shortcuts"><nobr><a href="#id4145344" class="shortcut">Top</a>  |  <a href="#id4145656" class="shortcut">Description</a>  |  <a href="#id4145631" class="shortcut">Object Hierarchy</a></nobr></td></tr></table><div class="refentry" lang="en"><a name="GtkPrintContext"></a><div class="titlepage"></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><a name="id4145344"></a><span class="refentrytitle">GtkPrintContext</span></h2><p>GtkPrintContext — Encapsulates context for drawing pages</p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">#include <gtk/gtk.h> <a class="link" href="GtkPrintContext.html#GtkPrintContext-struct">GtkPrintContext</a>;<ahref="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-t">cairo_t</a>* <a class="link" href="GtkPrintContext.html#gtk-print-context-get-cairo-context">gtk_print_context_get_cairo_context</a> (<a class="link" href="GtkPrintContext.html" title="GtkPrintContext">GtkPrintContext</a> *context);void <a class="link" href="GtkPrintContext.html#gtk-print-context-set-cairo-context">gtk_print_context_set_cairo_context</a> (<a class="link" href="GtkPrintContext.html" title="GtkPrintContext">GtkPrintContext</a> *context, <ahref="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double dpi_x, double dpi_y);<a class="link" href="GtkPageSetup.html" title="GtkPageSetup">GtkPageSetup</a>* <a class="link" href="GtkPrintContext.html#gtk-print-context-get-page-setup">gtk_print_context_get_page_setup</a> (<a class="link" href="GtkPrintContext.html" title="GtkPrintContext">GtkPrintContext</a> *context);<ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble">gdouble</a> <a class="link" href="GtkPrintContext.html#gtk-print-context-get-width">gtk_print_context_get_width</a> (<a class="link" href="GtkPrintContext.html" title="GtkPrintContext">GtkPrintContext</a> *context);<ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble">gdouble</a> <a class="link" href="GtkPrintContext.html#gtk-print-context-get-height">gtk_print_context_get_height</a> (<a class="link" href="GtkPrintContext.html" title="GtkPrintContext">GtkPrintContext</a> *context);<ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble">gdouble</a> <a class="link" href="GtkPrintContext.html#gtk-print-context-get-dpi-x">gtk_print_context_get_dpi_x</a> (<a class="link" href="GtkPrintContext.html" title="GtkPrintContext">GtkPrintContext</a> *context);<ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble">gdouble</a> <a class="link" href="GtkPrintContext.html#gtk-print-context-get-dpi-y">gtk_print_context_get_dpi_y</a> (<a class="link" href="GtkPrintContext.html" title="GtkPrintContext">GtkPrintContext</a> *context);<ahref="/usr/share/gtk-doc/html/pango/pango-Fonts.html#PangoFontMap">PangoFontMap</a>* <a class="link" href="GtkPrintContext.html#gtk-print-context-get-pango-fontmap">gtk_print_context_get_pango_fontmap</a> (<a class="link" href="GtkPrintContext.html" title="GtkPrintContext">GtkPrintContext</a> *context);<ahref="/usr/share/gtk-doc/html/pango/pango-Text-Processing.html#PangoContext">PangoContext</a>* <a class="link" href="GtkPrintContext.html#gtk-print-context-create-pango-context">gtk_print_context_create_pango_context</a> (<a class="link" href="GtkPrintContext.html" title="GtkPrintContext">GtkPrintContext</a> *context);<ahref="/usr/share/gtk-doc/html/pango/pango-Layout-Objects.html#PangoLayout">PangoLayout</a>* <a class="link" href="GtkPrintContext.html#gtk-print-context-create-pango-layout">gtk_print_context_create_pango_layout</a> (<a class="link" href="GtkPrintContext.html" title="GtkPrintContext">GtkPrintContext</a> *context);</pre></div><div class="refsect1" lang="en"><a name="id4145631"></a><h2>Object Hierarchy</h2><pre class="synopsis"> <ahref="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a> +----GtkPrintContext</pre></div><div class="refsect1" lang="en"><a name="id4145656"></a><h2>Description</h2><p>A GtkPrintContext encapsulates context information that is required whendrawing pages for printing, such as the cairo context and important parameters like page size and resolution. It also lets you easilycreate <ahref="/usr/share/gtk-doc/html/pango/pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> and <ahref="/usr/share/gtk-doc/html/pango/pango-Text-Processing.html#PangoContext"><span class="type">PangoContext</span></a> objects that match the font metrics of the cairo surface.</p><p>GtkPrintContext objects gets passed to the ::begin-print, ::end-print, ::request-page-setup and ::draw-page signals on the <a class="link" href="gtk-High-level-Printing-API.html#GtkPrintOperation"><span class="type">GtkPrintOperation</span></a>.</p><div class="example"><a name="id4145704"></a><p class="title"><b>Example 40. Using GtkPrintContext in a ::draw-page callback</b></p><div class="example-contents"><pre class="programlisting">static voiddraw_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_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);}</pre></div></div><br class="example-break"><p>Printing support was added in GTK+ 2.10.</p></div><div class="refsect1" lang="en"><a name="id4145746"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id4145756"></a><h3><a name="GtkPrintContext-struct"></a>GtkPrintContext</h3><a class="indexterm" name="id4145769"></a><pre class="programlisting">typedef struct _GtkPrintContext GtkPrintContext;</pre><p></p></div><hr><div class="refsect2" lang="en"><a name="id4145785"></a><h3><a name="gtk-print-context-get-cairo-context"></a>gtk_print_context_get_cairo_context ()</h3><a class="indexterm" name="id4145801"></a><pre class="programlisting"><ahref="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-t">cairo_t</a>* gtk_print_context_get_cairo_context (<a class="link" href="GtkPrintContext.html" title="GtkPrintContext">GtkPrintContext</a> *context);</pre><p>Obtains the cairo context that is associated with the<a class="link" href="GtkPrintContext.html" title="GtkPrintContext"><span class="type">GtkPrintContext</span></a>.</p><p></p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td><td> a <a class="link" href="GtkPrintContext.html" title="GtkPrintContext"><span class="type">GtkPrintContext</span></a></td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td> the cairo context of <em class="parameter"><code>context</code></em></td></tr></tbody></table></div><p class="since">Since 2.10</p></div><hr><div class="refsect2" lang="en"><a name="id4145891"></a><h3><a name="gtk-print-context-set-cairo-context"></a>gtk_print_context_set_cairo_context ()</h3><a class="indexterm" name="id4145908"></a><pre class="programlisting">void gtk_print_context_set_cairo_context (<a class="link" href="GtkPrintContext.html" title="GtkPrintContext">GtkPrintContext</a> *context, <ahref="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double dpi_x, double dpi_y);</pre><p>Sets a new cairo context on a print context. </p><p>This function is intended to be used when implementingan internal print preview, it is not needed for printing,since GTK+ itself creates a suitable cairo context in thatcase.</p><p></p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td><td> a <a class="link" href="GtkPrintContext.html" title="GtkPrintContext"><span class="type">GtkPrintContext</span></a></td></tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -