Poppler_Core

Poppler Core

The central class of the Poppler Core is 'class PDFDoc'. It is the abstraction of a PDF document.

Architecture

'class PDFDoc' is more or less a wrapper around 'class Catalog'. 'Catalog' contains an array of 'class Page'.

Helper Classes

class Object is an union:

union {
   GBool   booln
   int   intg
   double   real
   GooString *   string
   char *   name
   Array *   array
   Dict *   dict
   Stream *   stream
   Ref   ref
   char *   cmd
}; 

Lifecycle

Creation

PDFDoc (GooString *fileNameA, GooString *ownerPassword=NULL, GooString *userPassword=NULL, void *guiDataA=NULL)
PDFDoc (BaseStream *strA, GooString *ownerPassword=NULL, GooString *userPassword=NULL, void *guiDataA=NULL) 

Fixme, add doc Poppler uses it's own streams and strings. They seem to be similar to normal strings and streams.

This opens a pdf document from the file specified with fileNameA or from strA

Output

void    displayPage (OutputDev *out, int page, double hDPI, double vDPI, int rotate, 
  GBool useMediaBox, GBool crop, GBool printing, GBool(*abortCheckCbk)(void *data)=NULL, 
  void *abortCheckCbkData=NULL, GBool(*annotDisplayDecideCbk)(Annot *annot, void *user_data)=NULL,
  void *annotDisplayDecideCbkData=NULL) 

This displays one page on out. Class OutputDev is the abstraction of all output devices. The different output backends implement a subclass of OutputDev which actually do the work.