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

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


Dear Andrea, and Kalle,

Thanks for the prompt replies! I have run the code with Andrea's 
changes, and it works OK now.
Cheers,
Zoltán

On 11/07/2011 09:29 AM, Andrea Canciani wrote:
> The issue in your code is that you're doing all the drawing before
> calling the *_page() methods.
> In addition to this, I believe that calling show_page() should be
> sufficient for your use case.
> Can you please your code with the following changes?
>
>             surface = cairo.PDFSurface('pdffile.pdf', 504, 648);
>             cr = cairo.Context(surface)
>             cr.set_source_surface(self.surface, 0, 0)
>             cr.paint()
>             cr.show_page() # show the first page
>
>             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.paint() # don't forget to paint(), setting a source does
> not change the surface content
>             cr.show_page() # show the second page
>
> Andrea


More information about the cairo mailing list