Skip to content

Instantly share code, notes, and snippets.

@Cogitri
Created October 26, 2019 14:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Cogitri/0d83b0becba60474b86ca92e81b499f9 to your computer and use it in GitHub Desktop.
Save Cogitri/0d83b0becba60474b86ca92e81b499f9 to your computer and use it in GitHub Desktop.
0001-Fix-build-with-poppler-0.82.patch
From 142e03e329bbd6cd2d37cb24ed18c2538eb20daa Mon Sep 17 00:00:00 2001
From: Rasmus Thomsen <oss@cogitri.dev>
Date: Sat, 26 Oct 2019 14:11:35 +0200
Subject: [PATCH] Fix build with poppler-0.82
Change-Id: I3b6b3faea7986f3e5a6ae4790580d03bc9c955fc
---
.../pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx | 25 +++++++++++++++++++
.../pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx | 16 +++++++++++-
2 files changed, 40 insertions(+), 1 deletion(-)
diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
index ce32a4139..3ae3bdc50 100644
--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
@@ -863,11 +863,20 @@ void PDFOutDev::eoClip(GfxState *state)
local offset of character (zero for horizontal writing mode). not
taken into account for output pos updates. Used for vertical writing.
*/
+
+#if POPPLER_CHECK_VERSION(0, 82, 0)
+void PDFOutDev::drawChar(GfxState *state, double x, double y,
+ double dx, double dy,
+ double originX, double originY,
+ CharCode, int /*nBytes*/, const Unicode *u, int uLen)
+{
+#else
void PDFOutDev::drawChar(GfxState *state, double x, double y,
double dx, double dy,
double originX, double originY,
CharCode, int /*nBytes*/, Unicode *u, int uLen)
{
+#endif
assert(state);
if( u == nullptr )
@@ -979,11 +988,19 @@ void PDFOutDev::drawImageMask(GfxState* pState, Object*, Stream* str,
writeBinaryBuffer(aBuf);
}
+#if POPPLER_CHECK_VERSION(0, 82, 0)
+void PDFOutDev::drawImage(GfxState*, Object*, Stream* str,
+ int width, int height, GfxImageColorMap* colorMap,
+ poppler_bool /*interpolate*/,
+ const int* maskColors, poppler_bool /*inlineImg*/ )
+{
+#else
void PDFOutDev::drawImage(GfxState*, Object*, Stream* str,
int width, int height, GfxImageColorMap* colorMap,
poppler_bool /*interpolate*/,
int* maskColors, poppler_bool /*inlineImg*/ )
{
+#endif
if (m_bSkipImages)
return;
OutputBuffer aBuf; initBuf(aBuf);
@@ -1004,12 +1021,20 @@ void PDFOutDev::drawImage(GfxState*, Object*, Stream* str,
{
GfxRGB aMinRGB;
colorMap->getColorSpace()->getRGB(
+#if POPPLER_CHECK_VERSION(0, 82, 0)
+ reinterpret_cast<const GfxColor*>(maskColors),
+#else
reinterpret_cast<GfxColor*>(maskColors),
+#endif
&aMinRGB );
GfxRGB aMaxRGB;
colorMap->getColorSpace()->getRGB(
+#if POPPLER_CHECK_VERSION(0, 82, 0)
+ reinterpret_cast<const GfxColor*>(maskColors)+gfxColorMaxComps,
+#else
reinterpret_cast<GfxColor*>(maskColors)+gfxColorMaxComps,
+#endif
&aMaxRGB );
aMaskBuf.push_back( colToByte(aMinRGB.r) );
diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx
index 1a0c3f0ca..02f6b59f6 100644
--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx
+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx
@@ -232,10 +232,17 @@ namespace pdfi
virtual void eoClip(GfxState *state) override;
//----- text drawing
+#if POPPLER_CHECK_VERSION(0, 82, 0)
+ virtual void drawChar(GfxState *state, double x, double y,
+ double dx, double dy,
+ double originX, double originY,
+ CharCode code, int nBytes, const Unicode *u, int uLen) override;
+#else
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;
+#endif
#if POPPLER_CHECK_VERSION(0, 64, 0)
virtual void drawString(GfxState *state, const GooString *s) override;
#else
@@ -248,10 +255,17 @@ namespace pdfi
int width, int height, poppler_bool invert,
poppler_bool interpolate,
poppler_bool inlineImg) override;
+#if POPPLER_CHECK_VERSION(0, 82, 0)
virtual void drawImage(GfxState *state, Object *ref, Stream *str,
int width, int height, GfxImageColorMap *colorMap,
poppler_bool interpolate,
- int* maskColors, poppler_bool inlineImg) override;
+ const int* maskColors, poppler_bool inlineImg) override;
+#else
+ virtual void drawImage(GfxState *state, Object *ref, Stream *str,
+ int width, int height, GfxImageColorMap *colorMap,
+ poppler_bool interpolate,
+ int* maskColors, poppler_bool inlineImg) override;
+#endif
virtual void drawMaskedImage(GfxState *state, Object *ref, Stream *str,
int width, int height,
GfxImageColorMap *colorMap,
--
2.23.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment