GtkPrintContext
GtkPrintContext — Оборачивает контекст для отрисовки страниц
Функции
Типы и значения
Иерархия объектов
GObject ╰── GtkPrintContext
Файлы
#include <gtk/gtk.h>
Описание
GtkPrintContext содержит контекстную информацию, необходимую для отрисовки страниц при печати, такую как контекст cairo и важные параметры, такие как размер страницы и разрешение. Он также позволяет легко создавать объекты PangoLayout и PangoContext, которые соответствуют метрикам шрифтов поверхности cairo.
Объекты GtkPrintContext передаются сигналам “begin-print”, “end-print”, “request-page-setup” и “draw-page” на GtkPrintOperation.
Использование GtkPrintContext в обратном вызове “draw-page”
staticvoid 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_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 | объект GtkPrintContext | |
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.20/GtkPrintContext.html