Что-то здесь никто ничего не сказал про gtk.PrintOperation, хотя он по идее должен быть наиболее правильным для pygtk. Кто-нибудь пробовал печатать через него?
Пытаюсь печатать так
#!/bin/env python
# -*- coding: utf-8 -*-
import gtk, pango
def draw_page(operation, context, page_nr):
cairo_context = context.get_cairo_context()
width = context.get_width()
cairo_context.fill()
layout = context.create_pango_layout()
description = pango.FontDescription("Times New Roman 12")
layout.set_font_description(description)
layout.set_text("\n\nTest")
layout.set_width(int(width))
layout.set_alignment(pango.ALIGN_CENTER)
cairo_context.show_layout(layout)
def do_print():
print_op = gtk.PrintOperation()
#print_op.set_property("allow-async", True)
print_op.connect("draw_page", draw_page)
print_op.set_n_pages(1)
res = print_op.run(gtk.PRINT_OPERATION_ACTION_PRINT)
do_print()
1. В GNU/Linux с CUPS не печатает, пока не нажму несколько раз Ctrl+C. А если раскомменитировать строку
print_op.set_property(“allow-async”, True) просто выходит ничего не печатая.
2. В венде нормально печатает, но почему-то выдает диалог печати (а не должен, т.к. написано
gtk.PRINT_OPERATION_ACTION_PRINT вместо
gtk.PRINT_OPERATION_ACTION_PRINT_DIALOG).
Кто-нибудь побеждал хотя бы одну из этих проблем?