#include "../gfxdevice.h"
#include "../gfxsource.h"
+#include "config.h"
#include "InfoOutputDev.h"
#include "PDFDoc.h"
int textRender;
char createsoftmask;
char transparencygroup;
+ char softmask;
+ char softmask_alpha;
+ char isolated;
+
GFXOutputState();
+
+ gfxresult_t* grouprecording; // for transparency groups
+ gfxresult_t* softmaskrecording; // for soft masks
+
+ gfxdevice_t* olddevice;
};
typedef struct _parameter
void setXRef(PDFDoc*doc, XRef *xref);
//----- link borders
- virtual void drawLink(Link *link, Catalog *catalog) ;
+ virtual void processLink(Link *link, Catalog *catalog);
//----- save/restore graphics state
virtual void saveState(GfxState *state) ;
virtual void updateLineJoin(GfxState *state);
virtual void updateLineCap(GfxState *state);
virtual void updateFillOpacity(GfxState *state);
-
+ virtual void updateStrokeOpacity(GfxState *state);
+ virtual void updateFillOverprint(GfxState *state);
+ virtual void updateStrokeOverprint(GfxState *state);
+ virtual void updateTransfer(GfxState *state);
virtual void updateAll(GfxState *state)
{
//----- path clipping
virtual void clip(GfxState *state) ;
virtual void eoClip(GfxState *state) ;
+
+ //----- shaded fills
+ virtual GBool useTilingPatternFill();
+ virtual GBool useShadedFills();
+
+ /*
+ virtual void tilingPatternFill(GfxState *state, Object *str,
+ int paintType, Dict *resDict,
+ double *mat, double *bbox,
+ int x0, int y0, int x1, int y1,
+ double xStep, double yStep) {}
+ virtual void functionShadedFill(GfxState *state,
+ GfxFunctionShading *shading) {}
+ virtual void axialShadedFill(GfxState *state, GfxAxialShading *shading) {}
+ virtual void radialShadedFill(GfxState *state, GfxRadialShading *shading) {}
+ */
//----- text drawing
virtual void beginString(GfxState *state, GString *s) ;
GfxImageColorMap *maskColorMap);
//----- transparency groups and soft masks (xpdf >= ~ 3.01.16)
-#if xpdfUpdateVersion >= 16
virtual void beginTransparencyGroup(GfxState *state, double *bbox,
GfxColorSpace *blendingColorSpace,
GBool isolated, GBool knockout,
virtual void paintTransparencyGroup(GfxState *state, double *bbox);
virtual void setSoftMask(GfxState *state, double *bbox, GBool alpha, Function *transferFunc, GfxColor *backdropColor);
virtual void clearSoftMask(GfxState *state);
-#endif
//----- type 3 chars
virtual GBool beginType3Char(GfxState *state, double x, double y, double dx, double dy, CharCode code, Unicode *u, int uLen);
void clipToGfxLine(GfxState *state, gfxline_t*line);
void fillGfxLine(GfxState *state, gfxline_t*line);
+ void showfeature(char*feature,char fully, char warn);
+ void warnfeature(char*feature,char fully);
+ void infofeature(char*feature);
+
char outer_clip_box; //whether the page clip box is still on
InfoOutputDev*info;
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 ttfinfo; // did we write "File contains TrueType Fonts" yet?
- int gradientinfo; // did we write "File contains Gradients yet?
int type3active; // are we between beginType3()/endType3()?
char* substitutesource[256];
int substitutepos;
+ int user_movex,user_movey;
+ int user_clipx1,user_clipx2,user_clipy1,user_clipy2;
+
/* upper left corner of clipping rectangle (cropbox)- needs to be
added to all drawing coordinates to give the impression that all
pages start at (0,0)*/
- int clipmovex,clipmovey;
+ int clipmovex;
+ int clipmovey;
- int user_movex,user_movey;
- int user_clipx1,user_clipx2,user_clipy1,user_clipy2;
+ double width,height;
gfxline_t* current_text_stroke;
gfxline_t* current_text_clip;
int pagepos;
/* config */
- int forceType0Fonts;
int config_use_fontconfig;
+ int config_break_on_warning;
parameter_t*parameters;
};