我有一个显示图像的应用程序。 我希望能够打印图片,但我不知道如何将图像发送到打印机。 我遇到了gtk.PrintOperation ,但我没有看到任何信息来告诉我要打印哪个图像文件(所以我有一个空白页)。
有谁知道如何设置要使用 pygtk 或 gtk.PrintOperation 打印的数据?
最佳答案
在 gtk.PrintOperation
中,要在页面中进行绘制,您必须将 "draw-page"
连接到获取 PrintOperation
对象的函数,该对象是一个 context
作为参数,可以通过cairo和pango库绘制页面,page_number
作为第三个参数,绘制页面通过这个函数,类似如下:
def print_page(print_dialog, context, n):
ctx = context.get_cairo_context()
img = cairo.ImageSurface.create_from_png("an-image.png")
cr.set_source_surface(img, 20, 20)
cr.paint()
print_dialog = gtk.PrintOperation()
print_dialog.set_default_page_setup(self.print_page_setup)
print_dialog.set_unit(gtk.Unit.POINTS)
print_dialog.set_n_pages(1)
print_dialog.set_export_filename("/path/to/export/file.pdf")
print_dialog.connect("draw-page", print_page)
win = gtk.Window()
win.connect('clicked', lambda widget: print_dialog.run())
win.set_size_request(200, 200)
win.show_all()
gtk.main()
关于python - 如何使用pygtk打印图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31144157/