new parameter addspacechars
[swftools.git] / lib / pdf / GFXOutputDev.h
index 063aff6..f06dd21 100644 (file)
@@ -29,6 +29,10 @@ class GFXOutputState {
     gfxresult_t* softmaskrecording; // for soft masks
 
     gfxdevice_t* olddevice;
+  
+    double *dashPattern;
+    int dashLength;
+    double dashStart;
 
     GfxState*state;
 };
@@ -46,14 +50,11 @@ void addGlobalFontDir(const char*dirname);
 class GFXOutputGlobals {
 public:
   feature_t*featurewarnings;
-  gfxfontlist_t*gfxfontlist;
+
   int textmodeinfo; // did we write "Text will be rendered as polygon" yet?
   int jpeginfo; // did we write "File contains jpegs" yet?
   int pbminfo; // did we write "File contains jpegs" yet?
   int linkinfo; // did we write "File contains links" yet?
-  int*pages;
-  int pagebuflen;
-  int pagepos;
 
   GFXOutputGlobals();
   ~GFXOutputGlobals();
@@ -198,8 +199,6 @@ 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);
 
-  virtual void preparePage(int pdfpage, int outputpage);
-
   char* searchForSuitableFont(GfxFont*gfxFont);
 
   void finish();
@@ -216,6 +215,8 @@ public:
   //virtual void setVectorAntialias(GBool vaa) {}
   //virtual void psXObject(Stream *psStream, Stream *level1Stream) {}
 
+  virtual void setPageMap(int*pagemap, int pagemap_len);
+
   private:
   gfxline_t* gfxPath_to_gfxline(GfxState*state, GfxPath*path, int closed, int user_movex, int user_movey);
 
@@ -227,8 +228,8 @@ public:
                                   Stream *maskStr, int maskWidth, int maskHeight, GBool maskInvert, GfxImageColorMap*maskColorMap);
 
   void strokeGfxline(GfxState *state, gfxline_t*line, int flags);
-  void clipToGfxLine(GfxState *state, gfxline_t*line);
-  void fillGfxLine(GfxState *state, gfxline_t*line);
+  void clipToGfxLine(GfxState *state, gfxline_t*line, char evenodd);
+  void fillGfxLine(GfxState *state, gfxline_t*line, char evenodd);
 
   gfxfont_t* createGfxFont(GfxFont*xpdffont, FontInfo*src);
 
@@ -240,6 +241,10 @@ public:
   char* substituteFont(GfxFont*gfxFont, char*oldname);
   char* writeEmbeddedFontToFile(XRef*ref, GfxFont*font);
 
+  /* for page mapping */
+  int* page2page;
+  int num_pages;
+
 
   int currentpage;
   char outer_clip_box; //whether the page clip box is still on
@@ -269,6 +274,12 @@ public:
   FontInfo*current_fontinfo;
   gfxmatrix_t current_font_matrix;
 
+  gfxfont_t* last_char_gfxfont;
+  int last_char;
+  double last_char_x;
+  double last_char_y;
+  char last_char_was_space;
+
   /* config */
   int config_use_fontconfig;
   int config_break_on_warning;
@@ -276,14 +287,13 @@ public:
   int config_transparent;
   int config_extrafontdata;
   int config_convertgradients;
-  int config_optimize_polygons;
+  int config_disable_polygon_conversion;
   int config_multiply;
   int config_bigchar;
+  int config_drawonlyshapes;
+  int config_detectspaces;
+  char* config_linkdatafile;
   double config_fontquality;
-    
-  double *dashPattern;
-  int dashLength;
-  double dashStart;
 };
 
 class GFXGlobalParams:  public GlobalParams {