]> www.fi.muni.cz Git - evince.git/blobdiff - pdf/xpdf/PSOutputDev.h
Synched with Xpdf 0.92
[evince.git] / pdf / xpdf / PSOutputDev.h
index 603cc08afcac4d6ec58f104ab48c9c5810740c13..d23d19eeb785cfd8fc8cd0d20b45536cbcb817dd 100644 (file)
@@ -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?
 };