Marcelo Fernndez
By: a guest | Apr 12th, 2009 | Syntax:
Python | Size: 1.03 KB | Hits: 265 | Expires: Never
#!/usr/bin/env python
import wx
import wx.lib.wxcairo
import sys
import poppler
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "Cairo Test", size=(500,400))
self.Bind(wx.EVT_PAINT, self.OnPaint)
uri = "file://" + sys.argv[1]
self.document = poppler.document_new_from_file (uri, None)
self.n_pages = self.document.get_n_pages()
self.current_page = self.document.get_page(0)
self.scale = 1
self.width, self.height = self.current_page.get_size()
self.SetSize((self.width, self.height))
def OnPaint(self, event):
dc = wx.PaintDC(self)
cr = wx.lib.wxcairo.ContextFromDC(dc)
cr.set_source_rgb(1, 1, 1)
if self.scale != 1:
cr.scale(self.scale, self.scale)
cr.rectangle(0, 0, self.width, self.height)
cr.fill()
self.current_page.render(cr)
if __name__=="__main__":
app = wx.App()
f = MyFrame()
f.Show()
app.MainLoop()