X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=pdf%2Fxpdf%2FPSOutputDev.h;h=d23d19eeb785cfd8fc8cd0d20b45536cbcb817dd;hb=7aac8dc8533347e21311b15186e0af82f1b22fd6;hp=603cc08afcac4d6ec58f104ab48c9c5810740c13;hpb=d99fb4f4acd14fcdbda968abd907547dcc7af40c;p=evince.git diff --git a/pdf/xpdf/PSOutputDev.h b/pdf/xpdf/PSOutputDev.h index 603cc08a..d23d19ee 100644 --- a/pdf/xpdf/PSOutputDev.h +++ b/pdf/xpdf/PSOutputDev.h @@ -20,6 +20,7 @@ class GfxPath; class GfxFont; +class GfxColorSpace; //------------------------------------------------------------------------ // Parameters @@ -28,6 +29,17 @@ class GfxFont; // Generate Level 1 PostScript? extern GBool psOutLevel1; +// Generate Level 1 separable PostScript? +extern GBool psOutLevel1Sep; + +// Generate Encapsulated PostScript? +extern GBool psOutEPS; + +#if OPI_SUPPORT +// Generate OPI comments? +extern GBool psOutOPI; +#endif + // Paper size. extern int paperWidth; extern int paperHeight; @@ -111,30 +123,49 @@ public: //----- text drawing virtual void drawString(GfxState *state, GString *s); + virtual void drawString16(GfxState *state, GString *s); //----- image drawing - virtual void drawImageMask(GfxState *state, Stream *str, + virtual void drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, GBool invert, GBool inlineImg); - virtual void drawImage(GfxState *state, Stream *str, int width, - int height, GfxImageColorMap *colorMap, + virtual void drawImage(GfxState *state, Object *ref, Stream *str, + int width, int height, GfxImageColorMap *colorMap, GBool inlineImg); +#if OPI_SUPPORT + //----- OPI functions + virtual void opiBegin(GfxState *state, Dict *opiDict); + virtual void opiEnd(GfxState *state, Dict *opiDict); +#endif + private: + void setupResources(Dict *resDict); void setupFonts(Dict *resDict); void setupFont(GfxFont *font); - void setupEmbeddedType1Font(Ref *id); - void setupEmbeddedType1Font(char *fileName); - void setupEmbeddedType1CFont(GfxFont *font, Ref *id); + void setupEmbeddedType1Font(Ref *id, char *psName); + void setupEmbeddedType1Font(GString *fileName, char *psName); + void setupEmbeddedType1CFont(GfxFont *font, Ref *id, char *psName); + void setupImages(Dict *resDict); + void setupImage(Ref id, Stream *str); void doPath(GfxPath *path); void doImageL1(GfxImageColorMap *colorMap, GBool invert, GBool inlineImg, Stream *str, int width, int height, int len); - void doImage(GfxImageColorMap *colorMap, - GBool invert, GBool inlineImg, - Stream *str, int width, int height, int len); - void writePS(char *fmt, ...); + void doImageL1Sep(GfxImageColorMap *colorMap, + GBool invert, GBool inlineImg, + Stream *str, int width, int height, int len); + void doImageL2(Object *ref, GfxImageColorMap *colorMap, + GBool invert, GBool inlineImg, + Stream *str, int width, int height, int len); + void dumpColorSpaceL2(GfxColorSpace *colorSpace); + void opiBegin20(GfxState *state, Dict *dict); + void opiBegin13(GfxState *state, Dict *dict); + void opiTransform(GfxState *state, double x0, double y0, + double *x1, double *y1); + GBool getFileSpec(Object *fileSpec, Object *fileName); + void writePS(const char *fmt, ...); void writePSString(GString *s); GBool embedType1; // embed Type 1 fonts? @@ -150,10 +181,23 @@ private: Ref *fontFileIDs; // list of object IDs of all embedded fonts int fontFileIDLen; // number of entries in fontFileIDs array int fontFileIDSize; // size of fontFileIDs array - char **fontFileNames; // list of names of all embedded external fonts + GString **fontFileNames; // list of names of all embedded external fonts int fontFileNameLen; // number of entries in fontFileNames array int fontFileNameSize; // size of fontFileNames array + double tx, ty; // global translation + double xScale, yScale; // global scaling + GBool landscape; // true for landscape, false for portrait + + GString *embFontList; // resource comments for embedded fonts + +#if OPI_SUPPORT + int opi13Nest; // nesting level of OPI 1.3 objects + int opi20Nest; // nesting level of OPI 2.0 objects +#endif + + GBool type3Warning; // only show the Type 3 font warning once + GBool ok; // set up ok? };