#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:
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
//virtual GBool useShadedFills() { return gTrue; }
- //----- initialization and control
-
- void setXRef(PDFDoc*doc, XRef *xref);
-
//----- link borders
virtual void processLink(Link *link, Catalog *catalog);
//----- 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);
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);
virtual GBool useDrawForm();
virtual void drawForm(Ref id);
virtual GBool needNonText();
- virtual void endPage();
//virtual void dump();
//virtual void beginStringOp(GfxState *state);
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;
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;
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__