X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fpdf%2FGFXOutputDev.h;h=0f41f75bb953edca2547cd3aae3e8e466c007e8f;hp=a1fb83d6829d8e679e8c343cd8b5060ffedf449f;hb=cbcb36e38ef35e0a1b950fa8cfa3d90e5aeaa19b;hpb=f0a09477923d23dbdd74d00209d0247ae09e7ec9 diff --git a/lib/pdf/GFXOutputDev.h b/lib/pdf/GFXOutputDev.h index a1fb83d..0f41f75 100644 --- a/lib/pdf/GFXOutputDev.h +++ b/lib/pdf/GFXOutputDev.h @@ -3,17 +3,13 @@ #include "../gfxdevice.h" #include "../gfxsource.h" +#include "../gfxtools.h" #include "config.h" #include "InfoOutputDev.h" #include "PDFDoc.h" - -typedef struct _fontlist -{ - char*filename; - gfxfont_t*font; - _fontlist*next; -} fontlist_t; +#include "GlobalParams.h" +#include "CommonOutputDev.h" class GFXOutputState { public: @@ -44,29 +40,21 @@ void addGlobalFont(const char*filename); void addGlobalLanguageDir(const char*dir); void addGlobalFontDir(const char*dirname); -class GFXOutputDev: public OutputDev { +class GFXOutputDev: public CommonOutputDev { public: gfxdevice_t* device; - // Constructor. - GFXOutputDev(parameter_t*p); - void setDevice(gfxdevice_t*dev); - - // Destructor. + GFXOutputDev(InfoOutputDev*info, PDFDoc*doc); virtual ~GFXOutputDev() ; - void setMove(int x,int y); - void setClip(int x1,int y1,int x2,int y2); - void setParameter(const char*key, const char*value); - - void setInfo(InfoOutputDev*info) {this->info = info;} + virtual void setDevice(gfxdevice_t*dev); + virtual void setMove(int x,int y); + virtual void setClip(int x1,int y1,int x2,int y2); + virtual void setParameter(const char*key, const char*value); // Start a page. - void startFrame(int width, int height); - virtual void startPage(int pageNum, GfxState *state, double x1, double y1, double x2, double y2) ; - - void endframe(); + virtual void endPage(); //----- get info about output device @@ -81,10 +69,6 @@ public: //virtual GBool useShadedFills() { return gTrue; } - //----- initialization and control - - void setXRef(PDFDoc*doc, XRef *xref); - //----- link borders virtual void processLink(Link *link, Catalog *catalog); @@ -95,6 +79,7 @@ public: //----- update graphics state virtual void updateFont(GfxState *state); + virtual void updateFontMatrix(GfxState *state); virtual void updateFillColor(GfxState *state); virtual void updateStrokeColor(GfxState *state); virtual void updateLineWidth(GfxState *state); @@ -187,7 +172,7 @@ public: 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); - void preparePage(int pdfpage, int outputpage); + virtual void preparePage(int pdfpage, int outputpage); char* searchForSuitableFont(GfxFont*gfxFont); @@ -196,7 +181,6 @@ public: virtual GBool useDrawForm(); virtual void drawForm(Ref id); virtual GBool needNonText(); - virtual void endPage(); //virtual void dump(); //virtual void beginStringOp(GfxState *state); @@ -211,7 +195,7 @@ public: int width, int height, GfxImageColorMap*colorMap, GBool invert, GBool inlineImg, int mask, int *maskColors, Stream *maskStr, int maskWidth, int maskHeight, GBool maskInvert, GfxImageColorMap*maskColorMap); - int setGfxFont(char*id, char*name, char*filename, double quality); + int setGfxFont(char*id, char*name, char*filename, double maxSize, CharCodeToUnicode*ctu); void strokeGfxline(GfxState *state, gfxline_t*line, int flags); void clipToGfxLine(GfxState *state, gfxline_t*line); void fillGfxLine(GfxState *state, gfxline_t*line); @@ -221,7 +205,9 @@ public: void infofeature(const char*feature); char outer_clip_box; //whether the page clip box is still on - + + gfxfontlist_t*gfxfontlist; + GBool do_interpretType3Chars; InfoOutputDev*info; @@ -261,16 +247,13 @@ public: int clipmovex; int clipmovey; - double width,height; - gfxline_t* current_text_stroke; gfxline_t* current_text_clip; char* current_font_id; gfxfont_t* current_gfxfont; + FontInfo*current_fontinfo; gfxmatrix_t current_font_matrix; - fontlist_t* fontlist; - int*pages; int pagebuflen; int pagepos; @@ -278,8 +261,18 @@ public: /* config */ int config_use_fontconfig; int config_break_on_warning; + int config_remapunicode; + int config_transparent; + int config_extrafontdata; parameter_t*parameters; }; +class GFXGlobalParams: public GlobalParams { + public: + GFXGlobalParams(); + ~GFXGlobalParams(); + virtual DisplayFontParam *getDisplayFont(GString *fontName); +}; + #endif //__gfxoutputdev_h__