20 #ifndef INCLUDED_SDEXT_SOURCE_PDFIMPORT_XPDFWRAPPER_PDFIOUTDEV_GPL_HXX
21 #define INCLUDED_SDEXT_SOURCE_PDFIMPORT_XPDFWRAPPER_PDFIOUTDEV_GPL_HXX
24 #include <config_poppler.h>
26 #if defined __GNUC__ || defined __clang__
27 # pragma GCC diagnostic push
28 # pragma GCC diagnostic ignored "-Wundef"
29 # pragma GCC diagnostic ignored "-Wunused-parameter"
30 #elif defined _MSC_VER
32 #pragma warning(disable : 4100) // unreferenced formal parameter
33 #pragma warning(disable : 4310) // cast truncates constant value
38 #include <UnicodeMap.h>
41 #include <OutputDev.h>
42 #include <GlobalParams.h>
45 #if defined __GNUC__ || defined __clang__
46 # pragma GCC diagnostic pop
47 #elif defined _MSC_VER
51 #include <unordered_map>
58 #if HAVE_POPPLER_VERSION_H
59 #include <cpp/poppler-version.h>
61 #define POPPLER_VERSION "0.12.3"
62 #define POPPLER_VERSION_MAJOR 0
63 #define POPPLER_VERSION_MINOR 12
64 #define POPPLER_VERSION_MICRO 3
66 #define POPPLER_CHECK_VERSION(major,minor,micro) \
67 (POPPLER_VERSION_MAJOR > (major) || \
68 (POPPLER_VERSION_MAJOR == (major) && POPPLER_VERSION_MINOR > (minor)) || \
69 (POPPLER_VERSION_MAJOR == (major) && POPPLER_VERSION_MINOR == (minor) && POPPLER_VERSION_MICRO >= (micro)))
131 {
return const_cast<GooString &
>(
familyName); }
135 #if POPPLER_VERSION_MAJOR == 0 && POPPLER_VERSION_MINOR < 71
145 mutable std::unordered_map<
long long,
150 int parseFont(
long long nNewId, GfxFont* pFont, GfxState* state )
const;
152 #if POPPLER_CHECK_VERSION(0, 83, 0)
153 static void printPath(
const GfxPath* pPath );
181 #if POPPLER_CHECK_VERSION(0, 71, 0)
188 virtual void startPage(
int pageNum, GfxState *state
195 virtual void endPage()
override;
198 #if POPPLER_CHECK_VERSION(0, 19, 0)
199 virtual void processLink(AnnotLink *link)
override;
200 #elif POPPLER_CHECK_VERSION(0, 17, 0)
201 virtual void processLink(AnnotLink *link, Catalog *catalog)
override;
207 virtual void saveState(GfxState *state)
override;
211 virtual void updateCTM(GfxState *state,
double m11,
double m12,
212 double m21,
double m22,
double m31,
double m32)
override;
226 virtual void updateFont(GfxState *state)
override;
230 virtual void stroke(GfxState *state)
override;
231 virtual void fill(GfxState *state)
override;
232 virtual void eoFill(GfxState *state)
override;
235 virtual void clip(GfxState *state)
override;
236 virtual void eoClip(GfxState *state)
override;
239 #if POPPLER_CHECK_VERSION(0, 82, 0)
240 virtual void drawChar(GfxState *state,
double x,
double y,
241 double dx,
double dy,
242 double originX,
double originY,
243 CharCode code,
int nBytes,
const Unicode *u,
int uLen)
override;
245 virtual void drawChar(GfxState *state,
double x,
double y,
246 double dx,
double dy,
247 double originX,
double originY,
248 CharCode code,
int nBytes, Unicode *u,
int uLen)
override;
250 #if POPPLER_CHECK_VERSION(0, 64, 0)
251 virtual void drawString(GfxState *state,
const GooString *s)
override;
253 virtual void drawString(GfxState *state, GooString *s)
override;
258 virtual void drawImageMask(GfxState *state, Object *ref, Stream *str,
259 int width,
int height, poppler_bool invert,
260 poppler_bool interpolate,
261 poppler_bool inlineImg)
override;
262 #if POPPLER_CHECK_VERSION(0, 82, 0)
263 virtual void drawImage(GfxState *state, Object *ref, Stream *str,
264 int width,
int height, GfxImageColorMap *colorMap,
265 poppler_bool interpolate,
266 const int* maskColors, poppler_bool inlineImg)
override;
268 virtual void drawImage(GfxState *state, Object *ref, Stream *str,
269 int width,
int height, GfxImageColorMap *colorMap,
270 poppler_bool interpolate,
271 int* maskColors, poppler_bool inlineImg)
override;
273 virtual void drawMaskedImage(GfxState *state, Object *ref, Stream *str,
274 int width,
int height,
275 GfxImageColorMap *colorMap,
276 poppler_bool interpolate,
277 Stream *maskStr,
int maskWidth,
int maskHeight,
278 poppler_bool maskInvert,
279 poppler_bool maskInterpolate
282 int width,
int height,
283 GfxImageColorMap *colorMap,
284 poppler_bool interpolate,
286 int maskWidth,
int maskHeight,
287 GfxImageColorMap *maskColorMap
288 , poppler_bool maskInterpolate
303 #if !POPPLER_CHECK_VERSION(0, 73, 0)
304 static_assert(std::is_same_v<Guchar, unsigned char>,
"unexpected typedef");
307 #endif // INCLUDED_SDEXT_SOURCE_PDFIMPORT_XPDFWRAPPER_PDFIOUTDEV_GPL_HXX
virtual void updateLineCap(GfxState *state) override
virtual void updateCTM(GfxState *state, double m11, double m12, double m21, double m22, double m31, double m32) override
virtual void setDefaultCTM(double *ctm) override
virtual void updateLineDash(GfxState *state) override
virtual void updateFillColor(GfxState *state) override
virtual void startPage(int pageNum, GfxState *state) override
virtual void clip(GfxState *state) override
virtual ~PDFOutDev() override
virtual poppler_bool useDrawChar() override
std::unordered_map< long long, FontAttributes > m_aFontMap
virtual void updateMiterLimit(GfxState *state) override
virtual void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, poppler_bool interpolate, int *maskColors, poppler_bool inlineImg) override
virtual poppler_bool interpretType3Chars() override
virtual void eoFill(GfxState *state) override
FontAttributes & operator=(const FontAttributes &rSrc)
virtual void drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, poppler_bool interpolate, Stream *maskStr, int maskWidth, int maskHeight, GfxImageColorMap *maskColorMap, poppler_bool maskInterpolate) override
virtual void drawChar(GfxState *state, double x, double y, double dx, double dy, double originX, double originY, CharCode code, int nBytes, Unicode *u, int uLen) override
Output one glyph.
static void setPageNum(int nNumPages)
virtual void stroke(GfxState *state) override
virtual void eoClip(GfxState *state) override
virtual poppler_bool upsideDown() override
FontAttributes(const FontAttributes &rSrc)
virtual void updateFlatness(GfxState *state) override
virtual void fill(GfxState *state) override
virtual void updateStrokeColor(GfxState *state) override
static void printPath(GfxPath *pPath)
virtual void processLink(Link *link, Catalog *catalog) override
virtual void restoreState(GfxState *state) override
virtual void drawString(GfxState *state, GooString *s) override
virtual void updateLineJoin(GfxState *state) override
virtual void updateFont(GfxState *state) override
std::vector< Output_t > OutputBuffer
void setSkipImages(bool bSkipImages)
virtual void drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, poppler_bool invert, poppler_bool interpolate, poppler_bool inlineImg) override
GooString & getFamilyName() const
virtual void drawMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, poppler_bool interpolate, Stream *maskStr, int maskWidth, int maskHeight, poppler_bool maskInvert, poppler_bool maskInterpolate) override
#define POPPLER_CHECK_VERSION(major, minor, micro)
virtual void updateStrokeOpacity(GfxState *state) override
bool operator==(const FontAttributes &rFont) const
virtual void updateBlendMode(GfxState *state) override
virtual poppler_bool needNonText() override
virtual void endPage() override
virtual void endTextObject(GfxState *state) override
void writeFontFile(GfxFont *gfxFont) const
virtual void updateLineWidth(GfxState *state) override
virtual void updateFillOpacity(GfxState *state) override
std::unique_ptr< UnicodeMap > m_pUtf8Map
virtual void updateRender(GfxState *state) override
virtual void saveState(GfxState *state) override
int parseFont(long long nNewId, GfxFont *pFont, GfxState *state) const