⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gfx.h

📁 这是一个做pdf阅读器的源代码文件,是大家学习阅读器资料的很好参考
💻 H
字号:
//========================================================================//// Gfx.h//// Copyright 1996-2003 Glyph & Cog, LLC////========================================================================#ifndef GFX_H#define GFX_H#include <aconf.h>#ifdef USE_GCC_PRAGMAS#pragma interface#endif#include "gtypes.h"class GString;class XRef;class Array;class Stream;class Parser;class Dict;class Function;class OutputDev;class GfxFontDict;class GfxFont;class GfxPattern;class GfxTilingPattern;class GfxShadingPattern;class GfxShading;class GfxFunctionShading;class GfxAxialShading;class GfxRadialShading;class GfxGouraudTriangleShading;class GfxPatchMeshShading;struct GfxPatch;class GfxState;struct GfxColor;class GfxColorSpace;class Gfx;class PDFRectangle;class AnnotBorderStyle;//------------------------------------------------------------------------enum GfxClipType {  clipNone,  clipNormal,  clipEO};enum TchkType {  tchkBool,			// boolean  tchkInt,			// integer  tchkNum,			// number (integer or real)  tchkString,			// string  tchkName,			// name  tchkArray,			// array  tchkProps,			// properties (dictionary or name)  tchkSCN,			// scn/SCN args (number of name)  tchkNone			// used to avoid empty initializer lists};#define maxArgs 33struct Operator {  char name[4];  int numArgs;  TchkType tchk[maxArgs];  void (Gfx::*func)(Object args[], int numArgs);};//------------------------------------------------------------------------class GfxResources {public:  GfxResources(XRef *xref, Dict *resDict, GfxResources *nextA);  ~GfxResources();  GfxFont *lookupFont(char *name);  GBool lookupXObject(char *name, Object *obj);  GBool lookupXObjectNF(char *name, Object *obj);  void lookupColorSpace(char *name, Object *obj);  GfxPattern *lookupPattern(char *name);  GfxShading *lookupShading(char *name);  GBool lookupGState(char *name, Object *obj);  GfxResources *getNext() { return next; }private:  GfxFontDict *fonts;  Object xObjDict;  Object colorSpaceDict;  Object patternDict;  Object shadingDict;  Object gStateDict;  GfxResources *next;};//------------------------------------------------------------------------// Gfx//------------------------------------------------------------------------class Gfx {public:  // Constructor for regular output.  Gfx(XRef *xrefA, OutputDev *outA, int pageNum, Dict *resDict,      double hDPI, double vDPI, PDFRectangle *box,      PDFRectangle *cropBox, int rotate,      GBool (*abortCheckCbkA)(void *data) = NULL,      void *abortCheckCbkDataA = NULL);  // Constructor for a sub-page object.  Gfx(XRef *xrefA, OutputDev *outA, Dict *resDict,      PDFRectangle *box, PDFRectangle *cropBox,      GBool (*abortCheckCbkA)(void *data) = NULL,      void *abortCheckCbkDataA = NULL);  ~Gfx();  // Interpret a stream or array of streams.  void display(Object *obj, GBool topLevel = gTrue);  // Display an annotation, given its appearance (a Form XObject),  // border style, and bounding box (in default user space).  void drawAnnot(Object *str, AnnotBorderStyle *borderStyle,		 double xMin, double yMin, double xMax, double yMax);  // Save graphics state.  void saveState();  // Restore graphics state.  void restoreState();  // Get the current graphics state object.  GfxState *getState() { return state; }private:  XRef *xref;			// the xref table for this PDF file  OutputDev *out;		// output device  GBool subPage;		// is this a sub-page object?  GBool printCommands;		// print the drawing commands (for debugging)  GfxResources *res;		// resource stack  int updateLevel;  GfxState *state;		// current graphics state  GBool fontChanged;		// set if font or text matrix has changed  GfxClipType clip;		// do a clip?  int ignoreUndef;		// current BX/EX nesting level  double baseMatrix[6];		// default matrix for most recent				//   page/form/pattern  int formDepth;  Parser *parser;		// parser for page content stream(s)  GBool				// callback to check for an abort    (*abortCheckCbk)(void *data);  void *abortCheckCbkData;  static Operator opTab[];	// table of operators  void go(GBool topLevel);  void execOp(Object *cmd, Object args[], int numArgs);  Operator *findOp(char *name);  GBool checkArg(Object *arg, TchkType type);  int getPos();  // graphics state operators  void opSave(Object args[], int numArgs);  void opRestore(Object args[], int numArgs);  void opConcat(Object args[], int numArgs);  void opSetDash(Object args[], int numArgs);  void opSetFlat(Object args[], int numArgs);  void opSetLineJoin(Object args[], int numArgs);  void opSetLineCap(Object args[], int numArgs);  void opSetMiterLimit(Object args[], int numArgs);  void opSetLineWidth(Object args[], int numArgs);  void opSetExtGState(Object args[], int numArgs);  void doSoftMask(Object *str, GBool alpha,		  GfxColorSpace *blendingColorSpace,		  GBool isolated, GBool knockout,		  Function *transferFunc, GfxColor *backdropColor);  void opSetRenderingIntent(Object args[], int numArgs);  // color operators  void opSetFillGray(Object args[], int numArgs);  void opSetStrokeGray(Object args[], int numArgs);  void opSetFillCMYKColor(Object args[], int numArgs);  void opSetStrokeCMYKColor(Object args[], int numArgs);  void opSetFillRGBColor(Object args[], int numArgs);  void opSetStrokeRGBColor(Object args[], int numArgs);  void opSetFillColorSpace(Object args[], int numArgs);  void opSetStrokeColorSpace(Object args[], int numArgs);  void opSetFillColor(Object args[], int numArgs);  void opSetStrokeColor(Object args[], int numArgs);  void opSetFillColorN(Object args[], int numArgs);  void opSetStrokeColorN(Object args[], int numArgs);  // path segment operators  void opMoveTo(Object args[], int numArgs);  void opLineTo(Object args[], int numArgs);  void opCurveTo(Object args[], int numArgs);  void opCurveTo1(Object args[], int numArgs);  void opCurveTo2(Object args[], int numArgs);  void opRectangle(Object args[], int numArgs);  void opClosePath(Object args[], int numArgs);  // path painting operators  void opEndPath(Object args[], int numArgs);  void opStroke(Object args[], int numArgs);  void opCloseStroke(Object args[], int numArgs);  void opFill(Object args[], int numArgs);  void opEOFill(Object args[], int numArgs);  void opFillStroke(Object args[], int numArgs);  void opCloseFillStroke(Object args[], int numArgs);  void opEOFillStroke(Object args[], int numArgs);  void opCloseEOFillStroke(Object args[], int numArgs);  void doPatternFill(GBool eoFill);  void doPatternStroke();  void doTilingPatternFill(GfxTilingPattern *tPat,			   GBool stroke, GBool eoFill);  void doShadingPatternFill(GfxShadingPattern *sPat,			    GBool stroke, GBool eoFill);  void opShFill(Object args[], int numArgs);  void doFunctionShFill(GfxFunctionShading *shading);  void doFunctionShFill1(GfxFunctionShading *shading,			 double x0, double y0,			 double x1, double y1,			 GfxColor *colors, int depth);  void doAxialShFill(GfxAxialShading *shading);  void doRadialShFill(GfxRadialShading *shading);  void doGouraudTriangleShFill(GfxGouraudTriangleShading *shading);  void gouraudFillTriangle(double x0, double y0, GfxColor *color0,			   double x1, double y1, GfxColor *color1,			   double x2, double y2, GfxColor *color2,			   int nComps, int depth);  void doPatchMeshShFill(GfxPatchMeshShading *shading);  void fillPatch(GfxPatch *patch, int nComps, int depth);  void doEndPath();  // path clipping operators  void opClip(Object args[], int numArgs);  void opEOClip(Object args[], int numArgs);  // text object operators  void opBeginText(Object args[], int numArgs);  void opEndText(Object args[], int numArgs);  // text state operators  void opSetCharSpacing(Object args[], int numArgs);  void opSetFont(Object args[], int numArgs);  void opSetTextLeading(Object args[], int numArgs);  void opSetTextRender(Object args[], int numArgs);  void opSetTextRise(Object args[], int numArgs);  void opSetWordSpacing(Object args[], int numArgs);  void opSetHorizScaling(Object args[], int numArgs);  // text positioning operators  void opTextMove(Object args[], int numArgs);  void opTextMoveSet(Object args[], int numArgs);  void opSetTextMatrix(Object args[], int numArgs);  void opTextNextLine(Object args[], int numArgs);  // text string operators  void opShowText(Object args[], int numArgs);  void opMoveShowText(Object args[], int numArgs);  void opMoveSetShowText(Object args[], int numArgs);  void opShowSpaceText(Object args[], int numArgs);  void doShowText(GString *s);  // XObject operators  void opXObject(Object args[], int numArgs);  void doImage(Object *ref, Stream *str, GBool inlineImg);  void doForm(Object *str);  void doForm1(Object *str, Dict *resDict, double *matrix, double *bbox,	       GBool transpGroup = gFalse, GBool softMask = gFalse,	       GfxColorSpace *blendingColorSpace = NULL,	       GBool isolated = gFalse, GBool knockout = gFalse,	       GBool alpha = gFalse, Function *transferFunc = NULL,	       GfxColor *backdropColor = NULL);  // in-line image operators  void opBeginImage(Object args[], int numArgs);  Stream *buildImageStream();  void opImageData(Object args[], int numArgs);  void opEndImage(Object args[], int numArgs);  // type 3 font operators  void opSetCharWidth(Object args[], int numArgs);  void opSetCacheDevice(Object args[], int numArgs);  // compatibility operators  void opBeginIgnoreUndef(Object args[], int numArgs);  void opEndIgnoreUndef(Object args[], int numArgs);  // marked content operators  void opBeginMarkedContent(Object args[], int numArgs);  void opEndMarkedContent(Object args[], int numArgs);  void opMarkPoint(Object args[], int numArgs);  void pushResources(Dict *resDict);  void popResources();};#endif

⌨️ 快捷键说明

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