#ifndef PARSE_H #define PARSE_H #define MAXNAMELEN 128 #define XREFLINE 20 #define UNPARSED 0 #define PAGE 1 #define PAGES 2 #define XOBJECT 3 #define ENCODING 4 #define CATALOG 5 #define CONTENT 6 #define NOTYPE 7 #define EOFSIZE 8 /* size of %%EOF + newline */ int obj_count; int *page_tree; int current_page; struct trailer { long prev; int root; int encrypt; int info; } trailer; struct contents { int length; char filter; unsigned char *stream; }; struct resources { int type; }; struct pages { int count; int parent; int *kids; }; struct page { struct contents *contents; struct resources *resources; short mediabox[4]; short rotate; int parent; }; struct catalog { int pages; }; struct object { int type; char *unparsed; void *parsed; } **object; char *hex(char *buffer); char *name(char *buffer); char **array(char *buffer); void parse_xref(void); void add_obj(char *s); char *read_obj(long offset,int *obj_num); void parse_pdf(void); void fill_page(int page_num); struct contents *fill_contents(int page_num,char dict); struct resources *fill_resources(int page_num,char dict); char get_filternum(char *filter); #endif