我想在我的 Python + GTK 应用程序中添加一个打印对话框,我相信至少有两种方法:
- 上游 GTK 打印对话框
- CUPS 打印对话框
我想知道哪一个是推荐用于应用程序开发的。我相信 2. 是 Ubuntu 使用的,所以我认为它可以很好地与指示器和检测系统打印机配合使用。但是,我根本找不到任何关于它的文档。
关于如何向我的应用添加打印对话框的最佳方法有什么建议吗?
答案1
似乎使用 Gtk 向应用程序添加打印功能的合理方法是Gtk.打印操作。这应该是打印对话框的高级、可移植版本。
在 Python 中,一个基本的示例可能如下所示:
#!/usr/bin/python
from gi.repository import Gtk
class MyWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Hello World Printing")
self.button = Gtk.Button(label="Print A Rectangle")
self.button.connect("clicked", self.on_button_clicked)
self.add(self.button)
def on_button_clicked(self, widget):
pd = Gtk.PrintOperation()
pd.set_n_pages(1)
pd.connect("draw_page", self.draw_page)
result = pd.run(
Gtk.PrintOperationAction.PRINT_DIALOG, None)
print result # handle errors etc.
def draw_page(self, operation=None, context=None, page_nr=None):
ctx = context.get_cairo_context()
w = context.get_width()
h = context.get_height()
ctx.set_source_rgb(0.5, 0.5, 1)
ctx.rectangle(w*0.1, h*0.1, w*0.8, h*0.8)
ctx.stroke()
return
win = MyWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()