Как лучше всего распечатать Gtk.Widget на принтере? - PullRequest
2 голосов
/ 21 июля 2011

У меня есть пара (в основном) текстовых виджетов, которые я хотел бы отобразить на принтере через стандартную опцию меню «Печать ...».Один виджет - это документ Mono.TextEditor, а другой - Gtk.TextView.

Сейчас я ищу довольно простую распечатку, которая может переносить длинные строки и добавлять номера страниц.Нужно ли мне как-то самому кодировать все это?

Если у вас есть указатели, это было бы здорово, особенно если бы они были в C #.

1 Ответ

3 голосов
/ 24 июля 2011

Для переноса строк и выравнивания можно использовать pango Layout параметры, как описано для Python в pygtk / class-pangolayout или для C в pango / pango-Layout-Objects . Смотрите функции pango_layout_set_wrap () и pango_layout_set_justify ().

Также смотрите процедуры примера кода begin_print, do_page_setup и do_print в файле pygtk-demo / demos / print_editor.py, если вы установили pygtk в вашей системе. (В моей системе полный путь к каталогу демонстрационных файлов Python Gtk в настоящее время /usr/share/doc/pygtk2-2.17.0/examples/pygtk-demo/demos)

Диалог установки принтера см. gtk-High-level-Printing-API для C или class-gtkprintoperation для Python.

Обновление 1: я разместил ответ выше как новый пользователь с респ. 1, и пришлось отключить две ссылки из-за следующего сообщения: «Упс! Ваш ответ не может быть отправлен, потому что: извините, но в качестве механизма предотвращения спама новые пользователи могут публиковать не более двух гиперссылок. репутации, чтобы опубликовать больше гиперссылок. " В этом обновлении я исправил ссылки.

...