[poppler] [PATCH] glib ps export api change

Marco Pesenti Gritti mpgritti at gmail.com
Wed May 18 09:21:11 PDT 2005


Actually, current evince api requires a print_page api.

void    ev_ps_exporter_begin    (EvPSExporter *exporter, const char *filename);
void    ev_ps_exporter_do_page  (EvPSExporter *exporter, int page);
void    ev_ps_exporter_end      (EvPSExporter *exporter);

We are using it to print page by page in an idle (and so not block the
ui with big files).

Marco

On 5/18/05, Marco Pesenti Gritti <mpgritti at gmail.com> wrote:
> Yeah, that method didnt make a lot of sense anymore!
> 
> I feel a bit strange that we are rendering on the _destroy... maybe it would
> be good to have poppler_ps_file_render and poppler_ps_file_free.
> But it's really not a strong feeling... current patch works too for me.
> 
> Marco
> 
> On 5/18/05, Kristian Høgsberg <krh at bitplanet.net> wrote:
> > On Tue, 2005-05-17 at 10:36 +0200, Marco Pesenti Gritti wrote:
> > > Hi,
> > >
> > > what about the attached patch? It seem more convenient than using a
> > > GList... for further convenience we could add an add_page api too, but
> > > that's not necessary yet...
> >
> > Yeah, I like that idea, but I think we could make the API even simpler.
> > How about just these three functions:
> >
> >   PopplerPSFile *
> >   poppler_ps_file_new (PopplerDocument *document, const char *filename);
> >
> >   void
> >   poppler_ps_file_add_page_range (PopplerPSFile   *ps_file,
> >                                   int              first_page,
> >                                   int              last_page);
> >
> >   void
> >   poppler_ps_file_destroy (PopplerPSFile *ps_file);
> >
> > Specifically, we remove poppler_page_render_to_ps().  With this API you
> > create the file, add the ranges you want to print to the file and then
> > destroy it.  For starters, we'll only support adding one page range, but
> > if necessary, we can add support for several page ranges later, as your
> > comment in the patch says.  New patch attached.
> >
> > cheers,
> > Kristian
> >
> >
> > > On 5/16/05, Kristian Høgsberg <krh at bitplanet.net> wrote:
> > > > On Wed, 2005-05-11 at 10:20 +0200, Juerg Billeter wrote:
> > > > > Implementing page range print support in evince revealed[1] that
> > > > > poppler_ps_file_new in the glib binding lacks parameters for specifying
> > > > > the print range, the total number of pages doesn't suffice.
> > > >
> > > > How does this work if we only want to print even pages or odd pages?
> > > > Browsing through PSOutputDev.cc it looks like first_page and last_page
> > > > are used for two things: figuring out how many pages to print (last_page
> > > > - first_page + 1) and calculating the bounding box of those pages.  From
> > > > a poppler point of view (i.e. wether or not evince is going to support
> > > > this) I think we should export API to print an arbitrary subset of pages
> > > > to postscript.  Not sure what the API should be... Albert suggested
> > > > taking a list of pages to print which certainly would work.
> > > >
> > > > Maybe what we should do is to make a poppler_document_print_range(int
> > > > first, int last) method, which allows us to add
> > > > poppler_document_print_subset(GList *pages) later, when necessary.
> > > >
> > > > cheers,
> > > > Kristian
> > > >
> > > > _______________________________________________
> > > > poppler mailing list
> > > > poppler at lists.freedesktop.org
> > > > http://lists.freedesktop.org/mailman/listinfo/poppler
> > > >
> >
> >
> >
>


More information about the poppler mailing list