[cairo] writing multiple surfaces to a single (pdf) file

Zoltán Vörös zvoros at gmail.com
Mon Nov 7 00:10:21 PST 2011


Many thanks for the fast feedback!

> cannot find any short sample that uses them... I hope the 
> documentation is sufficient (The simplest reference I can provide is: 
> http://cgit.freedesktop.org/cairo/tree/test/multi-page.c#n106 ) 
Well, this is/was actually the problem: I did read the docs, but it is 
completely unclear to me what one is supposed to do. At the moment, I 
have this

             surface = cairo.PDFSurface('pdffile.pdf', 504, 648);
             cr = cairo.Context(surface)
             cr.set_source_surface(self.surface, 0, 0)
             cr.paint()

             self.page += 1
             self.path = self.pages[self.page]                     # we 
show another page
             self.draw_note(self.widget('draw'), self.path)   # This 
redraws the surface on gtk drawable, which is self.surface
             cr.set_source_surface(self.surface, 0, 0)

             cr.copy_page()
             cr.show_page()

and it does print two pages to the pdf file, but the two pages are the 
same. I can't get the second page to the file, though it is painted 
properly on the self.surface, so I can it in the gui.
Well, any hints would be appreciated.
Cheers,
Zoltán


More information about the cairo mailing list