Re: writing multiple surfaces to a single (pdf) file
Kalle Vahlman <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <CAOPOHQNRwEes6Qr-x_Ufhxfgs9p7pQ3eXqthNTrrsGu3YZC+BQ@mail.gmail.com> |
2011/11/7 Zoltán Vörös <[email protected]> > 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. > I have zero experience with using this API, but to me it looks like you are doing to the context: 1. paint the page 1 from self.surface 2. set source surface to self.surface (now containing page 2) 3. copy the current page (which I guess would be page 1 since nothing is telling otherwise), possibly including an implicit show_page()? 4. show(create?) the (copy of?) next page So at no point is the page 2 painted to the context as far as I understand it. You should probably be calling show_page() after paint() of 1st page, and do the same after paint()ing the 2nd page, and not call copy_page() at all. > Well, any hints would be appreciated. > I hope my guesses are correct rather than just confusing :) -- Kalle Vahlman, [email protected] Powered by http://movial.com Interesting stuff at http://sandbox.movial.com -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo