rsrc.h

来自「SumatraPDF是一款小型开源的pdf阅读工具。虽然玲珑小巧(只有800多K」· C头文件 代码 · 共 249 行

H
249
字号
/* * Resource store */typedef struct pdf_store_s pdf_store;typedef enum pdf_itemkind_e{	PDF_KCOLORSPACE,	PDF_KFUNCTION,	PDF_KXOBJECT,	PDF_KIMAGE,	PDF_KPATTERN,	PDF_KSHADE,	PDF_KCMAP,	PDF_KFONT} pdf_itemkind;fz_error *pdf_newstore(pdf_store **storep);void pdf_emptystore(pdf_store *store);void pdf_dropstore(pdf_store *store);fz_error *pdf_storeitem(pdf_store *store, pdf_itemkind tag, fz_obj *key, void *val);void *pdf_finditem(pdf_store *store, pdf_itemkind tag, fz_obj *key);fz_error *pdf_removeitem(pdf_store *store, pdf_itemkind tag, fz_obj *key);fz_error *pdf_loadresources(fz_obj **rdb, pdf_xref *xref, fz_obj *orig);/* * Functions */typedef struct pdf_function_s pdf_function;fz_error *pdf_loadfunction(pdf_function **func, pdf_xref *xref, fz_obj *ref);fz_error *pdf_evalfunction(pdf_function *func, float *in, int inlen, float *out, int outlen);pdf_function *pdf_keepfunction(pdf_function *func);void pdf_dropfunction(pdf_function *func);/* * ColorSpace */typedef struct pdf_indexed_s pdf_indexed;struct pdf_indexed_s{	fz_colorspace super;	/* hmmm... */	fz_colorspace *base;	int high;	unsigned char *lookup;};extern fz_colorspace *pdf_devicegray;extern fz_colorspace *pdf_devicergb;extern fz_colorspace *pdf_devicecmyk;extern fz_colorspace *pdf_devicelab;extern fz_colorspace *pdf_devicepattern;void pdf_convcolor(fz_colorspace *ss, float *sv, fz_colorspace *ds, float *dv);void pdf_convpixmap(fz_colorspace *ss, fz_pixmap *sp, fz_colorspace *ds, fz_pixmap *dp);fz_error *pdf_loadcolorspace(fz_colorspace **csp, pdf_xref *xref, fz_obj *obj);/* * Pattern */typedef struct pdf_pattern_s pdf_pattern;struct pdf_pattern_s{	int refs;	int ismask;	float xstep;	float ystep;	fz_matrix matrix;	fz_rect bbox;	fz_tree *tree;};fz_error *pdf_loadpattern(pdf_pattern **patp, pdf_xref *xref, fz_obj *obj, fz_obj *ref);pdf_pattern *pdf_keeppattern(pdf_pattern *pat);void pdf_droppattern(pdf_pattern *pat);/* * Shading */void pdf_setmeshvalue(float *mesh, int i, float x, float y, float t);fz_error *pdf_loadshadefunction(fz_shade *shade, pdf_xref *xref, fz_obj *dict, float t0, float t1);fz_error *pdf_loadtype1shade(fz_shade *, pdf_xref *, fz_obj *dict, fz_obj *ref);fz_error *pdf_loadtype2shade(fz_shade *, pdf_xref *, fz_obj *dict, fz_obj *ref);fz_error *pdf_loadtype3shade(fz_shade *, pdf_xref *, fz_obj *dict, fz_obj *ref);fz_error *pdf_loadtype4shade(fz_shade *, pdf_xref *, fz_obj *dict, fz_obj *ref);fz_error *pdf_loadtype5shade(fz_shade *, pdf_xref *, fz_obj *dict, fz_obj *ref);fz_error *pdf_loadtype6shade(fz_shade *, pdf_xref *, fz_obj *dict, fz_obj *ref);fz_error *pdf_loadtype7shade(fz_shade *, pdf_xref *, fz_obj *dict, fz_obj *ref);fz_error *pdf_loadshade(fz_shade **shadep, pdf_xref *xref, fz_obj *obj, fz_obj *ref);/* * XObject */typedef struct pdf_xobject_s pdf_xobject;struct pdf_xobject_s{	int refs;	fz_matrix matrix;	fz_rect bbox;	int isolated;	int knockout;	fz_obj *resources;	fz_buffer *contents;};fz_error *pdf_loadxobject(pdf_xobject **xobjp, pdf_xref *xref, fz_obj *obj, fz_obj *ref);pdf_xobject *pdf_keepxobject(pdf_xobject *xobj);void pdf_dropxobject(pdf_xobject *xobj);/* * Image */typedef struct pdf_image_s pdf_image;struct pdf_image_s{	fz_image super;	fz_image *mask;			/* explicit mask with subimage */	int usecolorkey;		/* explicit color-keyed masking */	int colorkey[FZ_MAXCOLORS * 2];	pdf_indexed *indexed;	float decode[32];	int bpc;	int stride;	fz_buffer *samples;};fz_error *pdf_loadinlineimage(pdf_image **imgp, pdf_xref *xref, fz_obj *rdb, fz_obj *dict, fz_stream *file);fz_error *pdf_loadimage(pdf_image **imgp, pdf_xref *xref, fz_obj *obj, fz_obj *ref);fz_error *pdf_loadtile(fz_image *image, fz_pixmap *tile);/* * CMap */typedef struct pdf_cmap_s pdf_cmap;fz_error *pdf_newcmap(pdf_cmap **cmapp);pdf_cmap *pdf_keepcmap(pdf_cmap *cmap);void pdf_dropcmap(pdf_cmap *cmap);void pdf_debugcmap(pdf_cmap *cmap);int pdf_getwmode(pdf_cmap *cmap);pdf_cmap *fz_getusecmap(pdf_cmap *cmap);void fz_setwmode(pdf_cmap *cmap, int wmode);void fz_setusecmap(pdf_cmap *cmap, pdf_cmap *usecmap);fz_error *pdf_addcodespace(pdf_cmap *cmap, unsigned lo, unsigned hi, int n);fz_error *pdf_maprangetotable(pdf_cmap *cmap, int low, int *map, int len);fz_error *pdf_maprangetorange(pdf_cmap *cmap, int srclo, int srchi, int dstlo);fz_error *pdf_maponetomany(pdf_cmap *cmap, int one, int *many, int len);fz_error *pdf_sortcmap(pdf_cmap *cmap);int pdf_lookupcmap(pdf_cmap *cmap, int cpt);unsigned char *pdf_decodecmap(pdf_cmap *cmap, unsigned char *s, int *cpt);fz_error *pdf_parsecmap(pdf_cmap **cmapp, fz_stream *file);fz_error *pdf_loadembeddedcmap(pdf_cmap **cmapp, pdf_xref *xref, fz_obj *ref);fz_error *pdf_loadsystemcmap(pdf_cmap **cmapp, char *name);fz_error *pdf_newidentitycmap(pdf_cmap **cmapp, int wmode, int bytes);/* * Font */void pdf_loadencoding(char **estrings, char *encoding);int pdf_lookupagl(char *name, int *ucsbuf, int ucscap);extern const unsigned short pdf_docencoding[256];extern const char * const pdf_macroman[256];extern const char * const pdf_macexpert[256];extern const char * const pdf_winansi[256];extern const char * const pdf_standard[256];extern const char * const pdf_expert[256];extern const char * const pdf_symbol[256];extern const char * const pdf_zapfdingbats[256];typedef struct pdf_font_s pdf_font;struct pdf_font_s{	fz_font super;	/* FontDescriptor */	int flags;	float italicangle;	float ascent;	float descent;	float capheight;	float xheight;	float missingwidth;	/* Encoding (CMap) */	pdf_cmap *encoding;	pdf_cmap *tottfcmap;	int ncidtogid;	unsigned short *cidtogid;	/* ToUnicode */	pdf_cmap *tounicode;	int ncidtoucs;	unsigned short *cidtoucs;	/* Freetype */	int substitute;	void *ftface;	char *filename;	fz_buffer *fontdata;	/* Type3 data */	fz_matrix matrix;	fz_tree *charprocs[256];	int hint;};/* unicode.c */fz_error *pdf_loadtounicode(pdf_font *font, pdf_xref *xref, char **strings, char *collection, fz_obj *cmapstm);/* fontfile.c */fz_error *pdf_loadbuiltinfont(pdf_font *font, char *basefont);fz_error *pdf_loadembeddedfont(pdf_font *font, pdf_xref *xref, fz_obj *stmref);fz_error *pdf_loadsystemfont(pdf_font *font, char *basefont, char *collection);fz_error *pdf_loadsubstitutefont(pdf_font *font, int fdflags, char *collection);/* type3.c */fz_error *pdf_loadtype3font(pdf_font **fontp, pdf_xref *xref, fz_obj *obj, fz_obj *ref);/* font.c */char *ft_errstr(int err);fz_error *pdf_loadfontdescriptor(pdf_font *font, pdf_xref *xref, fz_obj *desc, char *collection);fz_error *pdf_loadfont(pdf_font **fontp, pdf_xref *xref, fz_obj *obj, fz_obj *ref);void pdf_dropfont(pdf_font *font);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?