summaryrefslogtreecommitdiff
path: root/include/mupdf.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/mupdf.h')
-rw-r--r--include/mupdf.h304
1 files changed, 5 insertions, 299 deletions
diff --git a/include/mupdf.h b/include/mupdf.h
index cd19e55b..a1633541 100644
--- a/include/mupdf.h
+++ b/include/mupdf.h
@@ -7,303 +7,9 @@
#error "fitz.h must be included before mupdf.h"
#endif
-/*
- * tokenizer and low-level object parser
- */
-
-enum
-{
- PDF_TERROR, PDF_TEOF,
- PDF_TOARRAY, PDF_TCARRAY,
- PDF_TODICT, PDF_TCDICT,
- PDF_TNAME, PDF_TINT, PDF_TREAL, PDF_TSTRING, PDF_TKEYWORD,
- PDF_TR, PDF_TTRUE, PDF_TFALSE, PDF_TNULL,
- PDF_TOBJ, PDF_TENDOBJ,
- PDF_TSTREAM, PDF_TENDSTREAM,
- PDF_TXREF, PDF_TTRAILER, PDF_TSTARTXREF,
- PDF_NTOKENS
-};
-
-/* lex.c */
-int pdf_lex(fz_file *f, unsigned char *buf, int n, int *len);
-
-/* parse.c */
-fz_error *pdf_parsearray(fz_obj **op, fz_file *f, unsigned char *buf, int cap);
-fz_error *pdf_parsedict(fz_obj **op, fz_file *f, unsigned char *buf, int cap);
-fz_error *pdf_parsestmobj(fz_obj **op, fz_file *f, unsigned char *buf, int cap);
-fz_error *pdf_parseindobj(fz_obj **op, fz_file *f, unsigned char *buf, int cap, int *oid, int *gid, int *stmofs);
-
-/*
- * xref and syntax object api
- */
-
-typedef struct pdf_xref_s pdf_xref;
-typedef struct pdf_xrefentry_s pdf_xrefentry;
-typedef struct pdf_crypt_s pdf_crypt;
-
-struct pdf_xref_s
-{
- fz_file *file;
- fz_file *stream;
- float version;
- int startxref;
- fz_obj *trailer; /* TODO split this into root/info/encrypt/id */
- pdf_crypt *crypt;
-
- int len;
- int cap;
- pdf_xrefentry *table;
-};
-
-struct pdf_xrefentry_s
-{
- unsigned int ofs; /* file offset / objstm object number */
- unsigned short gen; /* generation / objstm index */
- char type; /* 0=unset (f)ree i(n)use (o)bjstm (d)elete (a)dd */
- char mark; /* for garbage collection etc */
- fz_buffer *stmbuf; /* in-memory stream */
- unsigned int stmofs; /* on-disk stream */
- fz_obj *obj; /* stored/cached object */
-};
-
-struct pdf_crypt_s
-{
- unsigned char o[32];
- unsigned char u[32];
- unsigned int p;
- int r;
- int n;
-
- fz_obj *encrypt;
- fz_obj *id;
-
- unsigned char key[16];
- int keylen;
-};
-
-/* crypt.c */
-fz_error *pdf_newdecrypt(pdf_crypt **cp, fz_obj *enc, fz_obj *id);
-fz_error *pdf_newencrypt(pdf_crypt **cp, char *userpw, char *ownerpw, int p, int n, fz_obj *id);
-fz_error *pdf_setpassword(pdf_crypt *crypt, char *pw);
-fz_error *pdf_cryptstm(fz_filter **fp, pdf_crypt *crypt, int oid, int gid);
-void pdf_cryptobj(pdf_crypt *crypt, fz_obj *obj, int oid, int gid);
-void pdf_freecrypt(pdf_crypt *crypt);
-
-/* --- */
-
-fz_error *pdf_repairpdf(pdf_xref **, char *filename);
-fz_error *pdf_openpdf(pdf_xref **, char *filename);
-fz_error *pdf_newpdf(pdf_xref **);
-
-fz_error *pdf_updatepdf(pdf_xref *, char *filename);
-fz_error *pdf_savepdf(pdf_xref *, char *filename, pdf_crypt *encrypt);
-
-void pdf_debugpdf(pdf_xref *);
-void pdf_closepdf(pdf_xref *);
-
-fz_error *pdf_allocobject(pdf_xref *, int *oidp, int *genp);
-fz_error *pdf_deleteobject(pdf_xref *, int oid, int gen);
-fz_error *pdf_updateobject(pdf_xref *, int oid, int gen, fz_obj *obj);
-fz_error *pdf_updatestream(pdf_xref *, int oid, int gen, fz_buffer *stm);
-
-fz_error *pdf_cacheobject(pdf_xref *, int oid, int gen);
-fz_error *pdf_loadobject(fz_obj **objp, pdf_xref *, int oid, int gen);
-fz_error *pdf_loadindirect(fz_obj **objp, pdf_xref *, fz_obj *ref);
-fz_error *pdf_resolve(fz_obj **reforobj, pdf_xref *);
-
-int pdf_isstream(pdf_xref *xref, int oid, int gen);
-fz_error *pdf_loadrawstream(fz_buffer **bufp, pdf_xref *xref, int oid, int gen);
-fz_error *pdf_loadstream(fz_buffer **bufp, pdf_xref *xref, int oid, int gen);
-fz_error *pdf_openrawstream(pdf_xref *, int oid, int gen);
-fz_error *pdf_openstream(pdf_xref *, int oid, int gen);
-void pdf_closestream(pdf_xref *);
-
-fz_error *pdf_garbagecollect(pdf_xref *xref);
-fz_error *pdf_transplant(pdf_xref *dst, pdf_xref *src, fz_obj **newp, fz_obj *old);
-
-/* private */
-fz_error *pdf_loadobjstm(pdf_xref *xref, int oid, int gen, unsigned char *buf, int cap);
-fz_error *pdf_decryptpdf(pdf_xref *xref);
-
-/* --- */
-
-/*
- * high-level semantic objects for resources and pages
- */
-
-extern fz_colorspace *pdf_devicegray;
-extern fz_colorspace *pdf_devicergb;
-extern fz_colorspace *pdf_devicecmyk;
-
-typedef struct pdf_nametree_s pdf_nametree;
-typedef struct pdf_pagetree_s pdf_pagetree;
-typedef struct pdf_font_s pdf_font;
-typedef struct pdf_resources_s pdf_resources;
-typedef struct pdf_page_s pdf_page;
-typedef struct pdf_gstate_s pdf_gstate;
-typedef struct pdf_csi_s pdf_csi;
-
-struct pdf_nametree_s
-{
- int len;
- int cap;
- struct fz_keyval_s *items;
-};
-
-struct pdf_pagetree_s
-{
- int count;
- int cursor;
- fz_obj **pref;
- fz_obj **pobj;
-};
-
-struct pdf_font_s
-{
- fz_font super;
-
- void *ftface;
- int substitute;
-
- /* FontDescriptor */
- int flags;
- float italicangle;
- float ascent;
- float descent;
- float capheight;
- float xheight;
- float missingwidth;
-
- /* Encoding (CMap) */
- fz_cmap *encoding;
- int ncidtogid;
- unsigned short *cidtogid;
-
- /* Raw data for freetype */
- char *filename;
- fz_buffer *fontdata;
-};
-
-struct pdf_type3_s
-{
- fz_rect bbox;
- fz_matrix matrix;
- int widths[256];
- fz_tree *charprocs[256];
- int tounicode[256];
-};
-
-struct pdf_resources_s
-{
- fz_obj *extgstate;
- fz_obj *colorspace;
- fz_obj *font;
- fz_obj *ximage;
- fz_obj *xform;
-};
-
-struct pdf_page_s
-{
- fz_rect mediabox;
- int rotate;
- pdf_resources *rdb;
- fz_tree *tree;
-};
-
-struct pdf_gstate_s
-{
- /* path stroking */
- float linewidth;
- int linecap;
- int linejoin;
- float miterlimit;
- float dashphase;
- int dashlen;
- float dashlist[32];
-
- /* materials */
- fz_colorspace *strokecs;
- float stroke[32];
- fz_colorspace *fillcs;
- float fill[32];
-
- /* text state */
- float charspace;
- float wordspace;
- float scale;
- float leading;
- pdf_font *font;
- float size;
- int render;
- float rise;
-
- /* tree construction state */
- fz_node *head;
-};
-
-struct pdf_csi_s
-{
- pdf_gstate gstate[32];
- int gtop;
- fz_obj *stack[32];
- int top;
- int xbalance;
-
- /* path object state */
- fz_pathnode *path;
- fz_pathnode *clip;
-
- /* text object state */
- fz_textnode *text;
- fz_matrix tlm;
- fz_matrix tm;
-
- fz_tree *tree;
-};
-
-/* nametree.c */
-fz_error *pdf_loadnametree(pdf_nametree **ntp, pdf_xref *xref, char *key);
-void pdf_freenametree(pdf_nametree *nt);
-void pdf_debugnametree(pdf_nametree *nt);
-fz_obj *pdf_lookupname(pdf_nametree *nt, fz_obj *name);
-fz_obj *pdf_lookupnames(pdf_nametree *nt, char *name);
-
-/* pagetree.c */
-fz_error *pdf_loadpagetree(pdf_pagetree **pp, pdf_xref *xref);
-int pdf_getpagecount(pdf_pagetree *pages);
-fz_obj *pdf_getpageobject(pdf_pagetree *pages, int p);
-void pdf_debugpagetree(pdf_pagetree *pages);
-void pdf_freepagetree(pdf_pagetree *pages);
-
-/* page.c */
-fz_error *pdf_loadpage(pdf_page **pagep, pdf_xref *xref, fz_obj *ref);
-void pdf_freepage(pdf_page *page);
-
-/* cmap.c */
-fz_error *pdf_parsecmap(fz_cmap **cmapp, fz_file *file);
-fz_error *pdf_loadembeddedcmap(fz_cmap **cmapp, pdf_xref *xref, fz_obj *stmref);
-fz_error *pdf_loadsystemcmap(fz_cmap **cmapp, char *name);
-fz_error *pdf_makeidentitycmap(fz_cmap **cmapp, int wmode, int bytes);
-
-/* fontfile.c */
-fz_error *pdf_loadbuiltinfont(pdf_font *font, char *basefont);
-fz_error *pdf_loadsystemfont(pdf_font *font, char *basefont, char *collection);
-fz_error *pdf_loadsubstitutefont(pdf_font *font, int fdflags, char *collection);
-fz_error *pdf_loadfontdescriptor(pdf_font *font, pdf_xref *xref, fz_obj *desc, char *collection);
-
-/* font.c */
-fz_error *pdf_loadfont(pdf_font **fontp, pdf_xref *xref, fz_obj *font);
-void pdf_freefont(pdf_font *font);
-
-/* colorspace.c */
-fz_error *pdf_loadcolorspace(fz_colorspace **csp, pdf_xref *xref, fz_obj *obj);
-
-/* resources.c */
-fz_error *pdf_loadresources(pdf_resources **rdbp, pdf_xref *xref, fz_obj *resdict);
-void pdf_freeresources(pdf_resources *rdb);
-
-/* interpret.c */
-fz_error *pdf_newcsi(pdf_csi **csip);
-fz_error *pdf_runcsi(pdf_csi *, pdf_resources *, fz_file *);
-void pdf_freecsi(pdf_csi *csi);
+#include "mupdf/syntax.h"
+#include "mupdf/xref.h"
+#include "mupdf/rsrc.h"
+#include "mupdf/content.h"
+#include "mupdf/page.h"