Index: Scribus/scribus/plugins/import/pdf/importpdf.cpp =================================================================== --- Scribus/scribus/plugins/import/pdf/importpdf.cpp (revision 26665) +++ Scribus/scribus/plugins/import/pdf/importpdf.cpp (revision 26666) @@ -416,11 +416,11 @@ if (dev->isOk()) { - OCGs* ocg = pdfDoc->getOptContentConfig(); + POPPLER_CONST_25_02 OCGs* ocg = pdfDoc->getOptContentConfig(); if (ocg && ocg->hasOCGs()) { QStringList ocgNames; - Array *order = ocg->getOrderArray(); + POPPLER_CONST_25_02 Array *order = ocg->getOrderArray(); if (order) { for (int i = 0; i < order->getLength (); ++i) Index: Scribus/scribus/plugins/import/pdf/importpdfconfig.h =================================================================== --- Scribus/scribus/plugins/import/pdf/importpdfconfig.h (revision 26665) +++ Scribus/scribus/plugins/import/pdf/importpdfconfig.h (revision 26666) @@ -15,4 +15,10 @@ + ((micro) * 1)) #define POPPLER_ENCODED_VERSION POPPLER_VERSION_ENCODE(POPPLER_VERSION_MAJOR, POPPLER_VERSION_MINOR, POPPLER_VERSION_MICRO) +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0) +#define POPPLER_CONST_25_02 const +#else +#define POPPLER_CONST_25_02 #endif + +#endif Index: Scribus/scribus/plugins/import/pdf/slaoutput.cpp =================================================================== --- Scribus/scribus/plugins/import/pdf/slaoutput.cpp (revision 26665) +++ Scribus/scribus/plugins/import/pdf/slaoutput.cpp (revision 26666) @@ -2791,7 +2791,7 @@ { if (dictRef->isNull()) return; - OCGs *contentConfig = m_catalog->getOptContentConfig(); + POPPLER_CONST_25_02 OCGs *contentConfig = m_catalog->getOptContentConfig(); OptionalContentGroup *oc; if (dictRef->isRef()) { @@ -2928,7 +2928,11 @@ SplashFontFile *fontFile; SplashFontSrc *fontsrc = nullptr; Object refObj, strObj; +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0) + std::vector codeToGID; +#else int *codeToGID = nullptr; +#endif const double *textMat = nullptr; double m11, m12, m21, m22, fontSize; SplashCoord mat[4] = { 1.0, 0.0, 0.0, 1.0 }; @@ -3055,10 +3059,20 @@ } else { +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0) + codeToGID.clear(); +#else codeToGID = nullptr; +#endif n = 0; } -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0) + if (!(fontFile = m_fontEngine->loadTrueTypeFont(std::move(id), fontsrc, std::move(codeToGID), fontLoc->fontNum))) + { + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } +#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) if (!(fontFile = m_fontEngine->loadTrueTypeFont(std::move(id), fontsrc, codeToGID, n, fontLoc->fontNum))) { error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); @@ -3089,6 +3103,18 @@ #endif break; case fontCIDType0COT: +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0) + if (((GfxCIDFont*) gfxFont)->getCIDToGIDLen() > 0) + { + codeToGID = ((GfxCIDFont*) gfxFont)->getCIDToGID(); + n = codeToGID.size(); + } + else + { + codeToGID.clear(); + n = 0; + } +#else if (((GfxCIDFont *) gfxFont)->getCIDToGID()) { n = ((GfxCIDFont *) gfxFont)->getCIDToGIDLen(); @@ -3100,7 +3126,15 @@ codeToGID = nullptr; n = 0; } -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) +#endif +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0) + if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(std::move(id), fontsrc, std::move(codeToGID), fontLoc->fontNum))) + { + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", + gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } +#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(std::move(id), fontsrc, codeToGID, n, fontLoc->fontNum))) { error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", @@ -3118,6 +3152,15 @@ break; case fontCIDType2: case fontCIDType2OT: +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0) + codeToGID.clear(); + n = 0; + if (((GfxCIDFont*) gfxFont)->getCIDToGIDLen() > 0) + { + codeToGID = ((GfxCIDFont*) gfxFont)->getCIDToGID(); + n = codeToGID.size(); + } +#else codeToGID = nullptr; n = 0; if (((GfxCIDFont *) gfxFont)->getCIDToGID()) @@ -3129,6 +3172,7 @@ memcpy(codeToGID, ((GfxCIDFont *)gfxFont)->getCIDToGID(), n * sizeof(*codeToGID)); } } +#endif else { #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) @@ -3144,10 +3188,20 @@ #endif if (! ff) goto err2; +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0) + codeToGID = ((GfxCIDFont*) gfxFont)->getCodeToGIDMap(ff.get()); +#else codeToGID = ((GfxCIDFont*) gfxFont)->getCodeToGIDMap(ff.get(), &n); +#endif ff.reset(); } -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0) + if (!(fontFile = m_fontEngine->loadTrueTypeFont(std::move(id), fontsrc, std::move(codeToGID), fontLoc->fontNum))) + { + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } +#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) if (!(fontFile = m_fontEngine->loadTrueTypeFont(std::move(id), fontsrc, codeToGID, n, fontLoc->fontNum))) { error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");