GtkPrintContext
GtkPrintContext — Оборачивает контекст для отрисовки страниц
Функции
| cairo_t * | gtk_print_context_get_cairo_context () |
| void | gtk_print_context_set_cairo_context () |
| GtkPageSetup * | gtk_print_context_get_page_setup () |
| gdouble | gtk_print_context_get_width () |
| gdouble | gtk_print_context_get_height () |
| gdouble | gtk_print_context_get_dpi_x () |
| gdouble | gtk_print_context_get_dpi_y () |
| PangoFontMap * | gtk_print_context_get_pango_fontmap () |
| PangoContext * | gtk_print_context_create_pango_context () |
| PangoLayout * | gtk_print_context_create_pango_layout () |
| gboolean | gtk_print_context_get_hard_margins () |
Типы и значения
Иерархия объектов
GObject
╰── GtkPrintContext
Файлы заголовков
#include <gtk/gtk.h>
Описание
GtkPrintContext encapsulates информацию о контексте, необходимую для отрисовки страниц при печати, такую как контекст cairo и важные параметры, такие как размер страницы и разрешение. Он также позволяет легко создавать объекты PangoLayout и PangoContext, которые соответствуют метрикам шрифтов поверхности cairo.
Объекты GtkPrintContext передаются сигналам “begin-print”, “end-print”, “request-page-setup” и “draw-page” на GtkPrintOperation.
Использование GtkPrintContext в обратном вызове “draw-page”
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);
}Поддержка печати была добавлена в GTK+ 2.10.
Функции
gtk_print_context_get_cairo_context ()
cairo_t *
gtk_print_context_get_cairo_context (GtkPrintContext *context); Получает контекст cairo, связанный с GtkPrintContext.
Параметры
context | объект GtkPrintContext |
Возвращаемое значение
контекст cairo для context .
[transfer none]
С версии: 2.10
gtk_print_context_set_cairo_context ()
void gtk_print_context_set_cairo_context (GtkPrintContext *context,cairo_t *cr,double dpi_x,double dpi_y);
Устанавливает новый контекст cairo для контекста печати.
Эта функция предназначена для реализации внутренней предварительной визуализации печати, она не требуется для самой печати, поскольку GTK+ сам создаёт подходящий контекст cairo в этом случае.
Параметры
context | объект GtkPrintContext | |
cr | контекст cairo | |
dpi_x | горизонтальное разрешение, которое нужно использовать с | |
dpi_y | вертикальное разрешение, которое нужно использовать с |
С версии: 2.10
gtk_print_context_get_page_setup ()
GtkPageSetup *
gtk_print_context_get_page_setup (GtkPrintContext *context); Получает GtkPageSetup, определяющий размеры страницы для GtkPrintContext.
Параметры
context | объект GtkPrintContext |
Возвращаемое значение
настройки страницы для context .
[transfer none]
С версии: 2.10
gtk_print_context_get_width ()
gdouble
gtk_print_context_get_width (GtkPrintContext *context); Возвращает ширину GtkPrintContext в пикселях.
Параметры
context | объект GtkPrintContext |
Возвращаемое значение
ширина context
С версии: 2.10
gtk_print_context_get_height ()
gdouble
gtk_print_context_get_height (GtkPrintContext *context); Возвращает высоту GtkPrintContext в пикселях.
Параметры
context | объект GtkPrintContext |
Возвращаемое значение
высота context
С версии: 2.10
gtk_print_context_get_dpi_x ()
gdouble
gtk_print_context_get_dpi_x (GtkPrintContext *context); Возвращает горизонтальное разрешение GtkPrintContext в точках на дюйм.
Параметры
context | объект GtkPrintContext |
Возвращаемое значение
горизонтальное разрешение context
С версии: 2.10
gtk_print_context_get_dpi_y ()
gdouble
gtk_print_context_get_dpi_y (GtkPrintContext *context); Возвращает вертикальное разрешение GtkPrintContext в точках на дюйм.
Параметры
context | объект GtkPrintContext |
Возвращаемое значение
вертикальное разрешение context
С версии: 2.10
gtk_print_context_get_pango_fontmap ()
PangoFontMap *
gtk_print_context_get_pango_fontmap (GtkPrintContext *context); Возвращает PangoFontMap, подходящий для использования с GtkPrintContext.
Параметры
context | объект GtkPrintContext |
Возвращаемое значение
карта шрифтов для context .
[transfer none]
С версии: 2.10
gtk_print_context_create_pango_context ()
PangoContext *
gtk_print_context_create_pango_context
(GtkPrintContext *context); Создаёт новый PangoContext, который можно использовать с GtkPrintContext.
Параметры
context | объект GtkPrintContext |
Возвращаемое значение
новый контекст Pango для context .
[transfer full]
С версии: 2.10
gtk_print_context_create_pango_layout ()
PangoLayout *
gtk_print_context_create_pango_layout (GtkPrintContext *context); Создаёт новый PangoLayout, подходящий для использования с GtkPrintContext.
Параметры
context | объект GtkPrintContext |
Возвращаемое значение
новый макет Pango для context .
[transfer full]
С версии: 2.10
gtk_print_context_get_hard_margins ()
gboolean gtk_print_context_get_hard_margins (GtkPrintContext *context,gdouble *top,gdouble *bottom,gdouble *left,gdouble *right);
Получает поля отступа устройства печати из GtkPrintContext в единицах.
Параметры
context | ||
top | верхний отступ устройства печати. | [out] |
bottom | нижний отступ устройства печати. | [out] |
left | левый отступ устройства печати. | [out] |
right | правый отступ устройства печати. | [out] |
Возвращаемое значение
TRUE если отступы были получены
С: 2.20
Типы и значения
GtkPrintContext
typedef struct _GtkPrintContext GtkPrintContext;
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/GtkPrintContext.html