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

📄 xoutputdev.h

📁 source code: Covert TXT to PDF
💻 H
📖 第 1 页 / 共 2 页
字号:
  ~XOutputT1FontFile();  int num, gen;  GBool subst;  T1FontFile *fontFile;  GString *tmpFileName;};#endif#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H)class XOutputFTFontFile {public:  XOutputFTFontFile(int numA, int genA, GBool substA,		    FTFontFile *fontFileA, GString *tmpFileNameA)    { num = numA; gen = genA; subst = substA;      fontFile = fontFileA; tmpFileName = tmpFileNameA; }  ~XOutputFTFontFile();  int num, gen;  GBool subst;  FTFontFile *fontFile;  GString *tmpFileName;};#endif#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H)class XOutputTTFontFile {public:  XOutputTTFontFile(int numA, int genA, GBool substA,		    TTFontFile *fontFileA, GString *tmpFileNameA)    { num = numA; gen = genA; subst = substA;      fontFile = fontFileA; tmpFileName = tmpFileNameA; }  ~XOutputTTFontFile();  int num, gen;  GBool subst;  TTFontFile *fontFile;  GString *tmpFileName;};#endifclass XOutputFontCache {public:  // Constructor.  XOutputFontCache(Display *displayA, Guint depthA,		   XOutputDev *xOutA,		   FontRastControl t1libControlA,		   FontRastControl freetypeControlA);  // Destructor.  ~XOutputFontCache();  // Initialize (or re-initialize) the font cache for a new document.  void startDoc(int screenNum, Visual *visual,		Colormap colormap, GBool trueColor,		int rMul, int gMul, int bMul,		int rShift, int gShift, int bShift,		Gulong *colors, int numColors);  // Get a font.  This creates a new font if necessary.  XOutputFont *getFont(XRef *xref, GfxFont *gfxFont, double m11, double m12,		       double m21, double m22);private:  void delFonts();  void clear();  XOutputFont *tryGetFont(XRef *xref, DisplayFontParam *dfp, GfxFont *gfxFont,			  double m11Orig, double m12Orig,			  double m21Orig, double m22Orig,			  double m11, double m12, double m21, double m22,			  GBool subst);#if HAVE_T1LIB_H  XOutputFont *tryGetT1Font(XRef *xref, GfxFont *gfxFont,			    double m11, double m12, double m21, double m22);  XOutputFont *tryGetT1FontFromFile(XRef *xref, GString *fileName,				    GBool deleteFile, GfxFont *gfxFont,				    double m11Orig, double m12Orig,				    double m21Orig, double m22Orig,				    double m11, double m12,				    double m21, double m22, GBool subst);#endif#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H)  XOutputFont *tryGetFTFont(XRef *xref, GfxFont *gfxFont,			    double m11, double m12, double m21, double m22);  XOutputFont *tryGetFTFontFromFile(XRef *xref, GString *fileName,				    GBool deleteFile, GfxFont *gfxFont,				    double m11Orig, double m12Orig,				    double m21Orig, double m22Orig,				    double m11, double m12,				    double m21, double m22, GBool subst);#endif#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H)  XOutputFont *tryGetTTFont(XRef *xref, GfxFont *gfxFont,			    double m11, double m12, double m21, double m22);  XOutputFont *tryGetTTFontFromFile(XRef *xref, GString *fileName,				    GBool deleteFile, GfxFont *gfxFont,				    double m11Orig, double m12Orig,				    double m21Orig, double m22Orig,				    double m11, double m12,				    double m21, double m22, GBool subst);#endif  XOutputFont *tryGetServerFont(GString *xlfd, GString *encodingName,				GfxFont *gfxFont,				double m11Orig, double m12Orig,				double m21Orig, double m22Orig,				double m11, double m12,				double m21, double m22);  Display *display;		// X display pointer  XOutputDev *xOut;  Guint depth;			// pixmap depth  XOutputFont *    fonts[xOutFontCacheSize];  int nFonts;#if HAVE_T1LIB_H  FontRastControl t1libControl;	// t1lib settings  T1FontEngine *t1Engine;	// Type 1 font engine  GList *t1FontFiles;		// list of Type 1 font files				//   [XOutputT1FontFile]#endif#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H  FontRastControl		// FreeType settings    freetypeControl;#endif#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H)  FTFontEngine *ftEngine;	// FreeType font engine  GList *ftFontFiles;		// list of FreeType font files				//   [XOutputFTFontFile]#endif#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H)  TTFontEngine *ttEngine;	// TrueType font engine  GList *ttFontFiles;		// list of TrueType font files				//   [XOutputTTFontFile]#endif};//------------------------------------------------------------------------// XOutputState//------------------------------------------------------------------------struct XOutputState {  GC strokeGC;  GC fillGC;  Region clipRegion;  XOutputState *next;};//------------------------------------------------------------------------// XOutputDev//------------------------------------------------------------------------class XOutputDev: public OutputDev {public:  // Constructor.  XOutputDev(Display *displayA, int screenNumA,	     Visual *visualA, Colormap colormapA,	     GBool reverseVideoA, unsigned long paperColorA,	     GBool installCmap, int rgbCubeSize,	     int forceDepth = 0);  // Destructor.  virtual ~XOutputDev();  //---- get info about output device  // Does this device use upside-down coordinates?  // (Upside-down means (0,0) is the top left corner of the page.)  virtual GBool upsideDown() { return gTrue; }  // Does this device use drawChar() or drawString()?  virtual GBool useDrawChar() { return gTrue; }  // Does this device use beginType3Char/endType3Char?  Otherwise,  // text in Type 3 fonts will be drawn with drawChar/drawString.  virtual GBool interpretType3Chars() { return gTrue; }  //----- initialization and control  // Start a page.  virtual void startPage(int pageNum, GfxState *state);  // End a page.  virtual void endPage();  //----- link borders  virtual void drawLink(Link *link, Catalog *catalog);  //----- save/restore graphics state  virtual void saveState(GfxState *state);  virtual void restoreState(GfxState *state);  //----- update graphics state  virtual void updateAll(GfxState *state);  virtual void updateCTM(GfxState *state, double m11, double m12,			 double m21, double m22, double m31, double m32);  virtual void updateLineDash(GfxState *state);  virtual void updateFlatness(GfxState *state);  virtual void updateLineJoin(GfxState *state);  virtual void updateLineCap(GfxState *state);  virtual void updateMiterLimit(GfxState *state);  virtual void updateLineWidth(GfxState *state);  virtual void updateFillColor(GfxState *state);  virtual void updateStrokeColor(GfxState *state);  //----- update text state  virtual void updateFont(GfxState *state);  //----- path painting  virtual void stroke(GfxState *state);  virtual void fill(GfxState *state);  virtual void eoFill(GfxState *state);  //----- path clipping  virtual void clip(GfxState *state);  virtual void eoClip(GfxState *state);  //----- text drawing  virtual void beginString(GfxState *state, GString *s);  virtual void endString(GfxState *state);  virtual void drawChar(GfxState *state, double x, double y,			double dx, double dy,			double originX, double originY,			CharCode code, Unicode *u, int uLen);  virtual GBool beginType3Char(GfxState *state,			       CharCode code, Unicode *u, int uLen);  virtual void endType3Char(GfxState *state);  //----- image drawing  virtual void drawImageMask(GfxState *state, Object *ref, Stream *str,			     int width, int height, GBool invert,			     GBool inlineImg);  virtual void drawImage(GfxState *state, Object *ref, Stream *str,			 int width, int height, GfxImageColorMap *colorMap,			 int *maskColors, GBool inlineImg);  //----- Type 3 font operators  virtual void type3D0(GfxState *state, double wx, double wy);  virtual void type3D1(GfxState *state, double wx, double wy,		       double llx, double lly, double urx, double ury);  //----- special access  // Called to indicate that a new PDF document has been loaded.  void startDoc(XRef *xrefA);  // Find a string.  If <top> is true, starts looking at <xMin>,<yMin>;  // otherwise starts looking at top of page.  If <bottom> is true,  // stops looking at <xMax>,<yMax>; otherwise stops looking at bottom  // of page.  If found, sets the text bounding rectange and returns  // true; otherwise returns false.  GBool findText(Unicode *s, int len, GBool top, GBool bottom,		 int *xMin, int *yMin, int *xMax, int *yMax);  // Get the text which is inside the specified rectangle.  GString *getText(int xMin, int yMin, int xMax, int yMax);  GBool isReverseVideo() { return reverseVideo; }  // Update pixmap ID after a page change.  void setPixmap(Pixmap pixmapA, int pixmapWA, int pixmapHA)    { pixmap = pixmapA; pixmapW = pixmapWA; pixmapH = pixmapHA; }  // Get the off-screen pixmap, its size, various display info.  Pixmap getPixmap() { return pixmap; }  int getPixmapWidth() { return pixmapW; }  int getPixmapHeight() { return pixmapH; }  Display *getDisplay() { return display; }  Guint getDepth() { return depth; }  Gulong findColor(GfxRGB *rgb);private:  XRef *xref;			// the xref table for this PDF file  Display *display;		// X display pointer  int screenNum;		// X screen number  Pixmap pixmap;		// pixmap to draw into  int pixmapW, pixmapH;		// size of pixmap  Guint depth;			// pixmap depth  Visual *visual;		// X visual  Colormap colormap;		// X colormap  int flatness;			// line flatness  GC paperGC;			// GC for background  GC strokeGC;			// GC with stroke color  GC fillGC;			// GC with fill color  Region clipRegion;		// clipping region  GBool trueColor;		// set if using a TrueColor visual  int rMul, gMul, bMul;		// RGB multipliers (for TrueColor)  int rShift, gShift, bShift;	// RGB shifts (for TrueColor)  Gulong			// color cube    colors[maxRGBCube * maxRGBCube * maxRGBCube];  unsigned long paperColor;	// paper color (pixel value)  int numColors;		// size of color cube  double redMap[256];		// map pixel (from color cube) to red value  GBool reverseVideo;		// reverse video mode  XPoint			// temporary points array    tmpPoints[numTmpPoints];  int				// temporary arrays for fill/clip    tmpLengths[numTmpSubpaths];  BoundingRect    tmpRects[numTmpSubpaths];  GfxFont *gfxFont;		// current PDF font  XOutputFont *font;		// current font  XOutputFontCache *fontCache;	// font cache  T3FontCache *			// Type 3 font cache    t3FontCache[xOutT3FontCacheSize];  int nT3Fonts;			// number of valid entries in t3FontCache  T3GlyphStack *t3GlyphStack;	// Type 3 glyph context stack  XOutputState *save;		// stack of saved states  TextPage *text;		// text from the current page  void updateLineAttrs(GfxState *state, GBool updateDash);  void doFill(GfxState *state, int rule);  void doClip(GfxState *state, int rule);  int convertPath(GfxState *state, XPoint **points, int *size,		  int *numPoints, int **lengths, GBool fillHack);  void convertSubpath(GfxState *state, GfxSubpath *subpath,		      XPoint **points, int *size, int *n);  void doCurve(XPoint **points, int *size, int *k,	       double x0, double y0, double x1, double y1,	       double x2, double y2, double x3, double y3);  void addPoint(XPoint **points, int *size, int *k, int x, int y);  void drawType3Glyph(T3FontCache *t3Font,		      T3FontCacheTag *tag, Guchar *data,		      double x, double y, GfxRGB *color);  Gulong findColor(GfxRGB *x, GfxRGB *err);};#endif

⌨️ 快捷键说明

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