Some thoughts on evince



Hi guys,

So I spent some time this weekend looking at doing continuous pages for
evince like acroread has.  I hacked up a simple EvPageView widget to
try to display multiple images, as can be seen here:

  http://www.gnome.org/~jrb/files/Screenshot-test-page-view.png

It's still pretty simple code, and there's a lot of hackery to make it
work.  Some thoughts:

 * I was a bit confused by the page numbering.  I've written some code
   that expects pages to be '0' based.  Both the pdf backend and the
   entry expect page numbering to be '1' based.  Which is it? 

 * One of the things it needs is the size of each page, synchronously.
   Since ev_document_get_page_size doesn't have a page argument, you
   need to set each page and call get_page_size on each.  While it's
   simple enough to change it so you can pass in the page (which the
   PDFs have stored), I don't know how it affects the ps backend.
   Ghostscript is not really fast.  I assume that there's no way that a
   postscript document can change page sizes mid-document, but it would
   be good to get some confirmation of that.

 * My (admittedly very naive) initial cut at doing that was very slow.
   I think we can probably do some tricks to make it faster, but I'm not
   sure that we'll be able to keep up with rapid scrolling of pages.
   I'm a little concerned that we won't be able to do so in an idle and
   have good responsiveness.  I'm especially worried about the ps
   backend, which is going to have to spawn a new gs interpreter every
   time we scroll up (IIRC).  I'm wondering if we're going to ahve to
   move to a threaded setup here.

Thanks,
-Jonathan





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]