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.


