2015-06-30 68 views
2

我有一個顯示圖像的應用程序。 我希望能夠打印圖片,但我無法確定如何將圖像發送到打印機。 我遇到了gtk.PrintOperation,但是我什麼也沒看,不知道我要打印什麼圖像文件(所以我有一個空白頁)。如何用pygtk打印圖像

是否有人知道如何設置數據打印與pygtk,也許gtk.PrintOperation?

回答

1

gtk.PrintOperation在網頁繪畫必須連接"draw-page"到獲得PrintOperation目標函數,context因爲你可以通過開羅攀高庫和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() 

Read more...

1

非常感謝的提示!
我沒有隻PNG圖像,所以我不得不去適應這樣的代碼:再次

def print_page(self,print_dialog, context, n): 
    ctx = context.get_cairo_context() 
    gdkcr = gtk.gdk.CairoContext(ctx) 
    gdkcr.set_source_pixbuf(self.getPixbuf(), 0,0) 
    gdkcr.paint() 

def print_image(self): 
    print_dialog = gtk.PrintOperation() 
    print_dialog.set_n_pages(1) 
    print_dialog.connect("draw-page", self.print_page) 

感謝。