commit 2626cb36cc53e2f40db0f4735e929ffb679367ae
Author: Jakub Bogusz <[email protected]>
Date:   Mon Apr 18 07:38:00 2022 +0200

    - added poppler patch (fixes for poppler up to 22.04 taken from svn/git 
mirror)

 scribus-poppler.patch | 1031 +++++++++++++++++++++++++++++++++++++++++++++++++
 scribus.spec          |    6 +-
 2 files changed, 1035 insertions(+), 2 deletions(-)
---
diff --git a/scribus.spec b/scribus.spec
index 99b89dc..69b74c2 100644
--- a/scribus.spec
+++ b/scribus.spec
@@ -17,6 +17,7 @@ Group:                X11/Applications/Publishing
 Source0:       
https://downloads.sourceforge.net/scribus/%{name}-%{version}.tar.xz
 # Source0-md5: ff9e966a2251a6c8800bb26fcb4b7c59
 Patch0:                %{name}-docs.patch
+Patch1:                %{name}-poppler.patch
 URL:           https://www.scribus.net/
 BuildRequires: GraphicsMagick-devel
 BuildRequires: Qt5Core-devel >= %{qt_ver}
@@ -59,8 +60,8 @@ BuildRequires:        libzmf-devel
 BuildRequires: openssl-devel
 BuildRequires: pkgconfig
 BuildRequires: podofo-devel
-BuildRequires: poppler-cpp-devel >= 0.58.0
-BuildRequires: poppler-devel >= 0.58.0
+BuildRequires: poppler-cpp-devel >= 0.86.0
+BuildRequires: poppler-devel >= 0.86.0
 BuildRequires: python3-devel
 BuildRequires: python3-modules
 BuildRequires: qt5-build >= %{qt_ver}
@@ -160,6 +161,7 @@ Domyślne szablony dokumentów dostarczane wraz ze Scribusem.
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 %build
 mkdir -p build
diff --git a/scribus-poppler.patch b/scribus-poppler.patch
new file mode 100644
index 0000000..73ea74c
--- /dev/null
+++ b/scribus-poppler.patch
@@ -0,0 +1,1031 @@
+From 85c0dff3422fa3c26fbc2e8d8561f597ec24bd92 Mon Sep 17 00:00:00 2001
+From: Jean Ghali <[email protected]>
+Date: Wed, 2 Feb 2022 23:12:52 +0000
+Subject: [PATCH] #16734: Build break with poppler 22.2.0
+
+git-svn-id: svn://scribus.net/trunk/Scribus@24884 
11d20701-8431-0410-a711-e3c959e3b870
+---
+ scribus/plugins/import/pdf/slaoutput.cpp | 47 +++++++++++++++++++-----
+ 1 file changed, 37 insertions(+), 10 deletions(-)
+
+diff --git a/scribus/plugins/import/pdf/slaoutput.cpp 
b/scribus/plugins/import/pdf/slaoutput.cpp
+index 5894bf2ad6..3650c96f52 100644
+--- a/scribus/plugins/import/pdf/slaoutput.cpp
++++ b/scribus/plugins/import/pdf/slaoutput.cpp
+@@ -7,6 +7,11 @@ for which a new license (GPL+exception) is in place.
+ 
+ #include "slaoutput.h"
+ 
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
++#include <memory>
++#include <optional>
++#endif
++
+ #include <poppler/GlobalParams.h>
+ #include <poppler/poppler-config.h>
+ #include <poppler/FileSpec.h>
+@@ -3027,18 +3032,24 @@ void SlaOutputDev::markPoint(POPPLER_CONST char *name, 
Dict *properties)
+ void SlaOutputDev::updateFont(GfxState *state)
+ {
+       GfxFont *gfxFont;
+-      GfxFontLoc *fontLoc;
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
++      std::optional<GfxFontLoc> fontLoc;
++      const GooString * fileName = nullptr;
++      std::unique_ptr<FoFiTrueType> ff;
++#else
++      GfxFontLoc * fontLoc = nullptr;
++      GooString * fileName = nullptr;
++      FoFiTrueType * ff = nullptr;
++#endif
+       GfxFontType fontType;
+       SlaOutFontFileID *id;
+       SplashFontFile *fontFile;
+       SplashFontSrc *fontsrc = nullptr;
+-      FoFiTrueType *ff;
+       Object refObj, strObj;
+-      GooString *fileName;
+-      char *tmpBuf;
++      char *tmpBuf = nullptr;
+       int tmpBufLen = 0;
+-      int *codeToGID;
+-      const double *textMat;
++      int *codeToGID = nullptr;
++      const double *textMat = nullptr;
+       double m11, m12, m21, m22, fontSize;
+       SplashCoord mat[4];
+       int n = 0;
+@@ -3046,9 +3057,6 @@ void SlaOutputDev::updateFont(GfxState *state)
+       SplashCoord matrix[6];
+ 
+       m_font = nullptr;
+-      fileName = nullptr;
+-      tmpBuf = nullptr;
+-      fontLoc = nullptr;
+ 
+       gfxFont = state->getFont();
+       if (!gfxFont)
+@@ -3083,7 +3091,11 @@ void SlaOutputDev::updateFont(GfxState *state)
+               }
+               else
+               { // gfxFontLocExternal
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
++                      fileName = fontLoc->pathAsGooString();
++#else
+                       fileName = fontLoc->path;
++#endif
+                       fontType = fontLoc->fontType;
+               }
+ 
+@@ -3136,9 +3148,14 @@ void SlaOutputDev::updateFont(GfxState *state)
+                               ff = FoFiTrueType::make(tmpBuf, tmpBufLen);
+                       if (ff)
+                       {
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
++                              codeToGID = ((Gfx8BitFont*) 
gfxFont)->getCodeToGIDMap(ff.get());
++                              ff.reset();
++#else
+                               codeToGID = ((Gfx8BitFont 
*)gfxFont)->getCodeToGIDMap(ff);
+-                              n = 256;
+                               delete ff;
++#endif
++                              n = 256;
+                       }
+                       else
+                       {
+@@ -3209,8 +3226,13 @@ void SlaOutputDev::updateFont(GfxState *state)
+                                       ff = FoFiTrueType::make(tmpBuf, 
tmpBufLen);
+                               if (! ff)
+                                       goto err2;
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
++                              codeToGID = ((GfxCIDFont*) 
gfxFont)->getCodeToGIDMap(ff.get(), &n);
++                              ff.reset();
++#else
+                               codeToGID = ((GfxCIDFont 
*)gfxFont)->getCodeToGIDMap(ff, &n);
+                               delete ff;
++#endif
+                       }
+                       if (!(fontFile = m_fontEngine->loadTrueTypeFont(
+                                                       id,
+@@ -3247,14 +3269,19 @@ void SlaOutputDev::updateFont(GfxState *state)
+       mat[3] = -m22;
+       m_font = m_fontEngine->getFont(fontFile, mat, matrix);
+ 
++#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(22, 2, 0)
+       delete fontLoc;
++#endif
+       if (fontsrc && !fontsrc->isFile)
+               fontsrc->unref();
+       return;
+ 
+ err2:
+       delete id;
++#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(22, 2, 0)
+       delete fontLoc;
++#endif
++
+ err1:
+       if (fontsrc && !fontsrc->isFile)
+               fontsrc->unref();
+From f75c1613db67f4067643d0218a2db3235e42ec9f Mon Sep 17 00:00:00 2001
+From: Jean Ghali <[email protected]>
+Date: Thu, 3 Feb 2022 19:46:13 +0000
+Subject: [PATCH] Small update vs latest code in poppler
+
+git-svn-id: svn://scribus.net/trunk/Scribus@24885 
11d20701-8431-0410-a711-e3c959e3b870
+---
+ scribus/plugins/import/pdf/slaoutput.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/scribus/plugins/import/pdf/slaoutput.cpp 
b/scribus/plugins/import/pdf/slaoutput.cpp
+index 3650c96f52..a6f4e00fa9 100644
+--- a/scribus/plugins/import/pdf/slaoutput.cpp
++++ b/scribus/plugins/import/pdf/slaoutput.cpp
+@@ -3072,10 +3072,10 @@ void SlaOutputDev::updateFont(GfxState *state)
+               delete id;
+       else
+       {
+-              if (!(fontLoc = gfxFont->locateFont(xref, nullptr)))
++              fontLoc = gfxFont->locateFont((xref) ? xref : 
pdfDoc->getXRef(), nullptr);
++              if (!fontLoc)
+               {
+-                      error(errSyntaxError, -1, "Couldn't find a font for 
'{0:s}'",
+-                      gfxFont->getName() ? gfxFont->getName()->getCString() : 
"(unnamed)");
++                      error(errSyntaxError, -1, "Couldn't find a font for 
'{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
+                       goto err2;
+               }
+ 
+From f19410ac3b27e33dd62105746784e61e85b90a1d Mon Sep 17 00:00:00 2001
+From: Jean Ghali <[email protected]>
+Date: Wed, 2 Mar 2022 22:22:53 +0000
+Subject: [PATCH] #16764: Build break with poppler 22.03.0
+
+git-svn-id: svn://scribus.net/trunk/Scribus@24982 
11d20701-8431-0410-a711-e3c959e3b870
+---
+ scribus/plugins/import/pdf/importpdf.cpp | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/scribus/plugins/import/pdf/importpdf.cpp 
b/scribus/plugins/import/pdf/importpdf.cpp
+index 154e58a3f0..392dcd9e64 100644
+--- a/scribus/plugins/import/pdf/importpdf.cpp
++++ b/scribus/plugins/import/pdf/importpdf.cpp
+@@ -89,7 +89,11 @@ QImage PdfPlug::readThumbnail(const QString& fName)
+ #endif
+       globalParams->setErrQuiet(gTrue);
+ 
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 3, 0)
++      PDFDoc pdfDoc{ std::make_unique<GooString>(fname) };
++#else
+       PDFDoc pdfDoc{fname, nullptr, nullptr, nullptr};
++#endif
+       if (!pdfDoc.isOk() || pdfDoc.getErrorCode() == errEncrypted)
+               return QImage();
+ 
+@@ -342,7 +346,11 @@ bool PdfPlug::convert(const QString& fn)
+       globalParams->setErrQuiet(gTrue);
+ //    globalParams->setPrintCommands(gTrue);
+       QList<OptionalContentGroup*> ocgGroups;
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 3, 0)
++      auto pdfDoc = 
std::make_unique<PDFDoc>(std::make_unique<GooString>(fname));
++#else
+       auto pdfDoc = std::unique_ptr<PDFDoc>(new PDFDoc(fname, nullptr, 
nullptr, nullptr));
++#endif
+       if (pdfDoc)
+       {
+               if (pdfDoc->getErrorCode() == errEncrypted)
+@@ -361,8 +369,13 @@ bool PdfPlug::convert(const QString& fn)
+ #else
+                               auto fname = new 
GooString(QFile::encodeName(fn).data());
+ #endif
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 3, 0)
++                              std::optional<GooString> userPW(std::in_place, 
text.toLocal8Bit().data());
++                              pdfDoc.reset(new 
PDFDoc(std::make_unique<GooString>(fname), userPW, userPW, nullptr));
++#else
+                               auto userPW = new 
GooString(text.toLocal8Bit().data());
+                               pdfDoc.reset(new PDFDoc(fname, userPW, userPW, 
nullptr));
++#endif
+                               
qApp->changeOverrideCursor(QCursor(Qt::WaitCursor));
+                       }
+                       if ((!pdfDoc) || (pdfDoc->getErrorCode() != errNone))
+From f2237b8f0b5cf7690e864a22ef7a63a6d769fa36 Mon Sep 17 00:00:00 2001
+From: Jean Ghali <[email protected]>
+Date: Fri, 1 Apr 2022 23:52:32 +0000
+Subject: [PATCH] Fix build with poppler 22.04.0
+
+git-svn-id: svn://scribus.net/trunk/Scribus@25074 
11d20701-8431-0410-a711-e3c959e3b870
+---
+ scribus/plugins/import/pdf/slaoutput.cpp | 123 ++++++++++++++---------
+ 1 file changed, 78 insertions(+), 45 deletions(-)
+
+From e013e8126d2100e8e56dea5b836ad43275429389 Mon Sep 17 00:00:00 2001
+From: Jean Ghali <[email protected]>
+Date: Wed, 2 Mar 2022 22:48:29 +0000
+Subject: [PATCH] Enforce poppler version >= 0.86.0
+
+git-svn-id: svn://scribus.net/trunk/Scribus@24985 
11d20701-8431-0410-a711-e3c959e3b870
+---
+ cmake/modules/Findpoppler.cmake          |   4 +-
+ scribus/plugins/import/pdf/importpdf.cpp |  65 ++-----------
+ scribus/plugins/import/pdf/slaoutput.cpp | 114 -----------------------
+ scribus/plugins/import/pdf/slaoutput.h   |   7 --
+ 4 files changed, 10 insertions(+), 180 deletions(-)
+
+diff --git a/cmake/modules/Findpoppler.cmake b/cmake/modules/Findpoppler.cmake
+index 56ce613ae9..9cab5532ab 100644
+--- a/cmake/modules/Findpoppler.cmake
++++ b/cmake/modules/Findpoppler.cmake
+@@ -1,8 +1,8 @@
+ #include(FindPkgConfig)
+ find_package(PkgConfig QUIET)
+-pkg_search_module(poppler libpoppler>=0.62.0 poppler>=0.62.0)
++pkg_search_module(poppler libpoppler>=0.86.0 poppler>=0.86.0)
+ if (poppler_FOUND)
+-      pkg_search_module(poppler_cpp REQUIRED libpoppler-cpp>=0.62.0 
poppler-cpp>=0.62.0)
++      pkg_search_module(poppler_cpp REQUIRED libpoppler-cpp>=0.86.0 
poppler-cpp>=0.86.0)
+ endif(poppler_FOUND)
+  
+ find_path(poppler_INCLUDE_DIR
+diff --git a/scribus/plugins/import/pdf/importpdf.cpp 
b/scribus/plugins/import/pdf/importpdf.cpp
+index 392dcd9e64..970a1a37ca 100644
+--- a/scribus/plugins/import/pdf/importpdf.cpp
++++ b/scribus/plugins/import/pdf/importpdf.cpp
+@@ -74,20 +74,15 @@ PdfPlug::PdfPlug(ScribusDoc* doc, int flags)
+ 
+ QImage PdfPlug::readThumbnail(const QString& fName)
+ {
+-      QString pdfFile = QDir::toNativeSeparators(fName);
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 83, 0)
+       globalParams.reset(new GlobalParams());
+-#else
+-      std::unique_ptr<GlobalParams> globalParamsPtr(new GlobalParams());
+-      globalParams = globalParamsPtr.get();
+-#endif
++      globalParams->setErrQuiet(gTrue);
+ 
+-#if defined(Q_OS_WIN32) && POPPLER_ENCODED_VERSION >= 
POPPLER_VERSION_ENCODE(0, 62, 0)
++      QString pdfFile = QDir::toNativeSeparators(fName);
++#if defined(Q_OS_WIN32)
+       auto fname = new GooString(pdfFile.toUtf8().data());
+ #else
+       auto fname = new GooString(QFile::encodeName(pdfFile).data());
+ #endif
+-      globalParams->setErrQuiet(gTrue);
+ 
+ #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 3, 0)
+       PDFDoc pdfDoc{ std::make_unique<GooString>(fname) };
+@@ -332,19 +327,15 @@ bool PdfPlug::convert(const QString& fn)
+               qApp->processEvents();
+       }
+ 
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 83, 0)
+       globalParams.reset(new GlobalParams());
+-#else
+-      std::unique_ptr<GlobalParams> globalParamsPtr(new GlobalParams());
+-      globalParams = globalParamsPtr.get();
+-#endif
+-#if defined(Q_OS_WIN32) && POPPLER_ENCODED_VERSION >= 
POPPLER_VERSION_ENCODE(0, 62, 0)
++      globalParams->setErrQuiet(gTrue);
++
++#if defined(Q_OS_WIN32)
+       auto fname = new GooString(fn.toUtf8().data());
+ #else
+       auto fname = new GooString(QFile::encodeName(fn).data());
+ #endif
+-      globalParams->setErrQuiet(gTrue);
+-//    globalParams->setPrintCommands(gTrue);
++
+       QList<OptionalContentGroup*> ocgGroups;
+ #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 3, 0)
+       auto pdfDoc = 
std::make_unique<PDFDoc>(std::make_unique<GooString>(fname));
+@@ -364,7 +355,7 @@ bool PdfPlug::convert(const QString& fn)
+                       QString text = QInputDialog::getText(mw, tr("Open 
PDF-File"), tr("Password"), QLineEdit::Normal, "", &ok);
+                       if (ok && !text.isEmpty())
+                       {
+-#if defined(Q_OS_WIN32) && POPPLER_ENCODED_VERSION >= 
POPPLER_VERSION_ENCODE(0, 62, 0)
++#if defined(Q_OS_WIN32)
+                               auto fname = new GooString(fn.toUtf8().data());
+ #else
+                               auto fname = new 
GooString(QFile::encodeName(fn).data());
+@@ -382,9 +373,6 @@ bool PdfPlug::convert(const QString& fn)
+                       {
+                               if (m_progressDialog)
+                                       m_progressDialog->close();
+-#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 83, 0)
+-                              delete globalParams;
+-#endif
+                               return false;
+                       }
+                       if (m_progressDialog)
+@@ -494,7 +482,6 @@ bool PdfPlug::convert(const QString& fn)
+                                                       }
+                                                       else
+                                                       {
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 69, 0)
+                                                               const auto& 
ocgs = ocg->getOCGs ();
+                                                               for (const 
auto& ocg : ocgs)
+                                                               {
+@@ -506,25 +493,11 @@ bool PdfPlug::convert(const QString& fn)
+                                                                               
ocgNames.append(ocgName);
+                                                                       }
+                                                               }
+-#else
+-                                                              GooList *ocgs = 
ocg->getOCGs ();
+-                                                              for (int i = 0; 
i < ocgs->getLength (); ++i)
+-                                                              {
+-                                                                      
OptionalContentGroup *oc = (OptionalContentGroup *)ocgs->get(i);
+-                                                                      QString 
ocgName = UnicodeParsedString(oc->getName());
+-                                                                      if 
(!ocgNames.contains(ocgName))
+-                                                                      {
+-                                                                              
ocgGroups.prepend(oc);
+-                                                                              
ocgNames.append(ocgName);
+-                                                                      }
+-                                                              }
+-#endif
+                                                       }
+                                               }
+                                       }
+                                       else
+                                       {
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 69, 0)
+                                               const auto& ocgs = ocg->getOCGs 
();
+                                               for (const auto& ocg : ocgs)
+                                               {
+@@ -536,19 +509,6 @@ bool PdfPlug::convert(const QString& fn)
+                                                               
ocgNames.append(ocgName);
+                                                       }
+                                               }
+-#else
+-                                              GooList *ocgs = ocg->getOCGs ();
+-                                              for (int i = 0; i < 
ocgs->getLength (); ++i)
+-                                              {
+-                                                      OptionalContentGroup 
*oc = (OptionalContentGroup *)ocgs->get(i);
+-                                                      QString ocgName = 
UnicodeParsedString(oc->getName());
+-                                                      if 
(!ocgNames.contains(ocgName))
+-                                                      {
+-                                                              
ocgGroups.prepend(oc);
+-                                                              
ocgNames.append(ocgName);
+-                                                      }
+-                                              }
+-#endif
+                                       }
+                               }
+ 
+@@ -787,13 +747,8 @@ bool PdfPlug::convert(const QString& fn)
+                                                       names = 
catDict.dictLookup("OpenAction");
+                                                       if (names.isDict())
+                                                       {
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+                                                               
std::unique_ptr<LinkAction> linkActionUPtr = LinkAction::parseAction(&names, 
pdfDoc->getCatalog()->getBaseURI());
+                                                               LinkAction 
*linkAction = linkActionUPtr.get();
+-#else
+-                                                              LinkAction 
*linkAction = nullptr;
+-                                                              linkAction = 
LinkAction::parseAction(&names, pdfDoc->getCatalog()->getBaseURI());
+-#endif
+                                                               if (linkAction 
&& (linkAction->getKind() == actionJavaScript))
+                                                               {
+                                                                       
LinkJavaScript *jsa = (LinkJavaScript*) linkAction;
+@@ -861,11 +816,7 @@ bool PdfPlug::convert(const QString& fn)
+               }
+               pdfDoc.reset();
+       }
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 83, 0)
+       globalParams.reset();
+-#else
+-      globalParams = nullptr;
+-#endif
+ 
+ //    qDebug() << "converting finished";
+ //    qDebug() << "Imported" << m_elements.count() << "Elements";
+diff --git a/scribus/plugins/import/pdf/slaoutput.cpp 
b/scribus/plugins/import/pdf/slaoutput.cpp
+index a6f4e00fa9..b6f2b8c219 100644
+--- a/scribus/plugins/import/pdf/slaoutput.cpp
++++ b/scribus/plugins/import/pdf/slaoutput.cpp
+@@ -332,15 +332,9 @@ LinkAction* SlaOutputDev::SC_getAction(AnnotWidget *ano)
+ }
+ 
+ /* Replacement for the crippled Poppler function LinkAction* 
AnnotWidget::getAdditionalAction(AdditionalActionsType type) */
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+ std::unique_ptr<LinkAction> SlaOutputDev::SC_getAdditionalAction(const char 
*key, AnnotWidget *ano)
+ {
+       std::unique_ptr<LinkAction> linkAction;
+-#else
+-LinkAction* SlaOutputDev::SC_getAdditionalAction(const char *key, AnnotWidget 
*ano)
+-{
+-      LinkAction *linkAction = nullptr;
+-#endif
+       Object obj;
+       Ref refa = ano->getRef();
+ 
+@@ -467,11 +461,7 @@ bool SlaOutputDev::handleLinkAnnot(Annot* annota, double 
xCoor, double yCoor, do
+                               if (dst->isPageRef())
+                               {
+                                       Ref dstr = dst->getPageRef();
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 76, 0)
+                                       pagNum = pdfDoc->findPage(dstr);
+-#else
+-                                      pagNum = pdfDoc->findPage(dstr.num, 
dstr.gen);
+-#endif
+                               }
+                               else
+                                       pagNum = dst->getPageNum();
+@@ -485,11 +475,7 @@ bool SlaOutputDev::handleLinkAnnot(Annot* annota, double 
xCoor, double yCoor, do
+                       POPPLER_CONST GooString *ndst = gto->getNamedDest();
+                       if (ndst)
+                       {
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+                               std::unique_ptr<LinkDest> dstn = 
pdfDoc->findDest(ndst);
+-#else
+-                              LinkDest *dstn = pdfDoc->findDest(ndst);
+-#endif
+                               if (dstn)
+                               {
+                                       if (dstn->getKind() == destXYZ)
+@@ -497,11 +483,7 @@ bool SlaOutputDev::handleLinkAnnot(Annot* annota, double 
xCoor, double yCoor, do
+                                               if (dstn->isPageRef())
+                                               {
+                                                       Ref dstr = 
dstn->getPageRef();
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 76, 0)
+                                                       pagNum = 
pdfDoc->findPage(dstr);
+-#else
+-                                                      pagNum = 
pdfDoc->findPage(dstr.num, dstr.gen);
+-#endif
+                                               }
+                                               else
+                                                       pagNum = 
dstn->getPageNum();
+@@ -533,11 +515,7 @@ bool SlaOutputDev::handleLinkAnnot(Annot* annota, double 
xCoor, double yCoor, do
+                       POPPLER_CONST GooString *ndst = gto->getNamedDest();
+                       if (ndst)
+                       {
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+                               std::unique_ptr<LinkDest> dstn = 
pdfDoc->findDest(ndst);
+-#else
+-                              LinkDest *dstn = pdfDoc->findDest(ndst);
+-#endif
+                               if (dstn)
+                               {
+                                       if (dstn->getKind() == destXYZ)
+@@ -985,11 +963,7 @@ void SlaOutputDev::handleActions(PageItem* ite, 
AnnotWidget *ano)
+                                       if (dst->isPageRef())
+                                       {
+                                               Ref dstr = dst->getPageRef();
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 76, 0)
+                                               pagNum = pdfDoc->findPage(dstr);
+-#else
+-                                              pagNum = 
pdfDoc->findPage(dstr.num, dstr.gen);
+-#endif
+                                       }
+                                       else
+                                               pagNum = dst->getPageNum();
+@@ -1005,11 +979,7 @@ void SlaOutputDev::handleActions(PageItem* ite, 
AnnotWidget *ano)
+                               POPPLER_CONST GooString *ndst = 
gto->getNamedDest();
+                               if (ndst)
+                               {
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+                                       std::unique_ptr<LinkDest> dstn = 
pdfDoc->findDest(ndst);
+-#else
+-                                      LinkDest *dstn = pdfDoc->findDest(ndst);
+-#endif
+                                       if (dstn)
+                                       {
+                                               if (dstn->getKind() == destXYZ)
+@@ -1017,11 +987,7 @@ void SlaOutputDev::handleActions(PageItem* ite, 
AnnotWidget *ano)
+                                                       if (dstn->isPageRef())
+                                                       {
+                                                               Ref dstr = 
dstn->getPageRef();
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 76, 0)
+                                                               pagNum = 
pdfDoc->findPage(dstr);
+-#else
+-                                                              pagNum = 
pdfDoc->findPage(dstr.num, dstr.gen);
+-#endif
+                                                       }
+                                                       else
+                                                               pagNum = 
dstn->getPageNum();
+@@ -1061,11 +1027,7 @@ void SlaOutputDev::handleActions(PageItem* ite, 
AnnotWidget *ano)
+                               POPPLER_CONST GooString *ndst = 
gto->getNamedDest();
+                               if (ndst)
+                               {
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+                                       std::unique_ptr<LinkDest> dstn = 
pdfDoc->findDest(ndst);
+-#else
+-                                      LinkDest *dstn = pdfDoc->findDest(ndst);
+-#endif
+                                       if (dstn)
+                                       {
+                                               if (dstn->getKind() == destXYZ)
+@@ -1139,143 +1101,91 @@ void SlaOutputDev::handleActions(PageItem* ite, 
AnnotWidget *ano)
+       {
+               if (Aact->getKind() == actionJavaScript)
+               {
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+                       LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
+-#else
+-                      LinkJavaScript *jsa = (LinkJavaScript*) Aact;
+-#endif
+                       if (jsa->isOk())
+                       {
+                               
ite->annotation().setD_act(UnicodeParsedString(jsa->getScript()));
+                               ite->annotation().setAAact(true);
+                       }
+               }
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+               Aact.reset();
+-#else
+-              Aact = nullptr;
+-#endif
+       }
+       Aact = SC_getAdditionalAction("E", ano);
+       if (Aact)
+       {
+               if (Aact->getKind() == actionJavaScript)
+               {
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+                       LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
+-#else
+-                      LinkJavaScript *jsa = (LinkJavaScript*) Aact;
+-#endif
+                       if (jsa->isOk())
+                       {
+                               
ite->annotation().setE_act(UnicodeParsedString(jsa->getScript()));
+                               ite->annotation().setAAact(true);
+                       }
+               }
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+               Aact.reset();
+-#else
+-              Aact = nullptr;
+-#endif
+       }
+       Aact = SC_getAdditionalAction("X", ano);
+       if (Aact)
+       {
+               if (Aact->getKind() == actionJavaScript)
+               {
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+                       LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
+-#else
+-                      LinkJavaScript *jsa = (LinkJavaScript*) Aact;
+-#endif
+                       if (jsa->isOk())
+                       {
+                               
ite->annotation().setX_act(UnicodeParsedString(jsa->getScript()));
+                               ite->annotation().setAAact(true);
+                       }
+               }
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+               Aact.reset();
+-#else
+-              Aact = nullptr;
+-#endif
+       }
+       Aact = SC_getAdditionalAction("Fo", ano);
+       if (Aact)
+       {
+               if (Aact->getKind() == actionJavaScript)
+               {
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+                       LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
+-#else
+-                      LinkJavaScript *jsa = (LinkJavaScript*) Aact;
+-#endif
+                       if (jsa->isOk())
+                       {
+                               
ite->annotation().setFo_act(UnicodeParsedString(jsa->getScript()));
+                               ite->annotation().setAAact(true);
+                       }
+               }
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+               Aact.reset();
+-#else
+-              Aact = nullptr;
+-#endif
+       }
+       Aact = SC_getAdditionalAction("Bl", ano);
+       if (Aact)
+       {
+               if (Aact->getKind() == actionJavaScript)
+               {
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+                       LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
+-#else
+-                      LinkJavaScript *jsa = (LinkJavaScript*) Aact;
+-#endif
+                       if (jsa->isOk())
+                       {
+                               
ite->annotation().setBl_act(UnicodeParsedString(jsa->getScript()));
+                               ite->annotation().setAAact(true);
+                       }
+               }
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+               Aact.reset();
+-#else
+-              Aact = nullptr;
+-#endif
+       }
+       Aact = SC_getAdditionalAction("C", ano);
+       if (Aact)
+       {
+               if (Aact->getKind() == actionJavaScript)
+               {
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+                       LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
+-#else
+-                      LinkJavaScript *jsa = (LinkJavaScript*) Aact;
+-#endif
+                       if (jsa->isOk())
+                       {
+                               
ite->annotation().setC_act(UnicodeParsedString(jsa->getScript()));
+                               ite->annotation().setAAact(true);
+                       }
+               }
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+               Aact.reset();
+-#else
+-              Aact = nullptr;
+-#endif
+       }
+       Aact = SC_getAdditionalAction("F", ano);
+       if (Aact)
+       {
+               if (Aact->getKind() == actionJavaScript)
+               {
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+                       LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
+-#else
+-                      LinkJavaScript *jsa = (LinkJavaScript*) Aact;
+-#endif
+                       if (jsa->isOk())
+                       {
+                               
ite->annotation().setF_act(UnicodeParsedString(jsa->getScript()));
+@@ -1283,22 +1193,14 @@ void SlaOutputDev::handleActions(PageItem* ite, 
AnnotWidget *ano)
+                               ite->annotation().setFormat(5);
+                       }
+               }
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+               Aact.reset();
+-#else
+-              Aact = nullptr;
+-#endif
+       }
+       Aact = SC_getAdditionalAction("K", ano);
+       if (Aact)
+       {
+               if (Aact->getKind() == actionJavaScript)
+               {
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+                       LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
+-#else
+-                      LinkJavaScript *jsa = (LinkJavaScript*) Aact;
+-#endif
+                       if (jsa->isOk())
+                       {
+                               
ite->annotation().setK_act(UnicodeParsedString(jsa->getScript()));
+@@ -1306,33 +1208,21 @@ void SlaOutputDev::handleActions(PageItem* ite, 
AnnotWidget *ano)
+                               ite->annotation().setFormat(5);
+                       }
+               }
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+               Aact.reset();
+-#else
+-              Aact = nullptr;
+-#endif
+       }
+       Aact = SC_getAdditionalAction("V", ano);
+       if (Aact)
+       {
+               if (Aact->getKind() == actionJavaScript)
+               {
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+                       LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
+-#else
+-                      LinkJavaScript *jsa = (LinkJavaScript*) Aact;
+-#endif
+                       if (jsa->isOk())
+                       {
+                               
ite->annotation().setV_act(UnicodeParsedString(jsa->getScript()));
+                               ite->annotation().setAAact(true);
+                       }
+               }
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+               Aact.reset();
+-#else
+-              Aact = nullptr;
+-#endif
+       }
+ }
+ 
+@@ -1342,11 +1232,7 @@ void SlaOutputDev::startDoc(PDFDoc *doc, XRef *xrefA, 
Catalog *catA)
+       catalog = catA;
+       pdfDoc = doc;
+       updateGUICounter = 0;
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 84, 0)
+       m_fontEngine = new SplashFontEngine(true, false, false, true);
+-#else
+-      m_fontEngine = new SplashFontEngine(globalParams->getEnableFreeType(), 
false, false, true);
+-#endif
+ }
+ 
+ void SlaOutputDev::startPage(int pageNum, GfxState *, XRef *)
+diff --git a/scribus/plugins/import/pdf/slaoutput.h 
b/scribus/plugins/import/pdf/slaoutput.h
+index 02e5382534..601e287451 100644
+--- a/scribus/plugins/import/pdf/slaoutput.h
++++ b/scribus/plugins/import/pdf/slaoutput.h
+@@ -30,9 +30,6 @@ for which a new license (GPL+exception) is in place.
+ #include "selection.h"
+ #include "vgradient.h"
+ 
+-#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 73, 0)
+-#include <poppler/goo/gtypes.h>
+-#endif
+ #include <poppler/Object.h>
+ #include <poppler/OutputDev.h>
+ #include <poppler/Gfx.h>
+@@ -163,11 +160,7 @@ class SlaOutputDev : public OutputDev
+       virtual ~SlaOutputDev();
+ 
+       LinkAction* SC_getAction(AnnotWidget *ano);
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
+       std::unique_ptr<LinkAction> SC_getAdditionalAction(const char *key, 
AnnotWidget *ano);
+-#else
+-      LinkAction* SC_getAdditionalAction(const char *key, AnnotWidget *ano);
+-#endif
+       static GBool annotations_callback(Annot *annota, void *user_data);
+       bool handleTextAnnot(Annot* annota, double xCoor, double yCoor, double 
width, double height);
+       bool handleLinkAnnot(Annot* annota, double xCoor, double yCoor, double 
width, double height);
+diff --git a/scribus/plugins/import/pdf/slaoutput.cpp 
b/scribus/plugins/import/pdf/slaoutput.cpp
+index e20a81f99e..5626fe3477 100644
+--- a/scribus/plugins/import/pdf/slaoutput.cpp
++++ b/scribus/plugins/import/pdf/slaoutput.cpp
+@@ -174,8 +174,13 @@ void AnoOutputDev::drawString(GfxState *state, 
POPPLER_CONST GooString *s)
+       int shade = 100;
+       currColorText = getColor(state->getFillColorSpace(), 
state->getFillColor(), &shade);
+       fontSize = state->getFontSize();
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++      if (state->getFont() && state->getFont()->getName())
++              fontName = new GooString(state->getFont()->getName().value());
++#else
+       if (state->getFont())
+               fontName = state->getFont()->getName()->copy();
++#endif
+       itemText = s->copy();
+ }
+ 
+@@ -357,7 +362,12 @@ std::unique_ptr<LinkAction> 
SlaOutputDev::SC_getAdditionalAction(const char *key
+ GBool SlaOutputDev::annotations_callback(Annot *annota, void *user_data)
+ {
+       SlaOutputDev *dev = (SlaOutputDev*)user_data;
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++      const PDFRectangle& annotRect = annota->getRect();;
++      const PDFRectangle* box = &annotRect;
++#else
+       PDFRectangle *box = annota->getRect();
++#endif
+       double xCoor = dev->m_doc->currentPage()->xOffset() + box->x1 - 
dev->cropOffsetX;
+       double yCoor = dev->m_doc->currentPage()->yOffset() + 
dev->m_doc->currentPage()->height() - box->y2 + dev->cropOffsetY;
+       double width = box->x2 - box->x1;
+@@ -684,7 +694,12 @@ bool SlaOutputDev::handleWidgetAnnot(Annot* annota, 
double xCoor, double yCoor,
+                       if (apa || !achar)
+                       {
+                               AnoOutputDev *annotOutDev = new 
AnoOutputDev(m_doc, m_importedColors);
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++                              const PDFRectangle& annotaRect = 
annota->getRect();
++                              Gfx* gfx = new Gfx(pdfDoc, annotOutDev, 
pdfDoc->getPage(m_actPage)->getResourceDict(), &annotaRect, nullptr);
++#else
+                               Gfx *gfx = new Gfx(pdfDoc, annotOutDev, 
pdfDoc->getPage(m_actPage)->getResourceDict(), annota->getRect(), nullptr);
++#endif
+                               ano->draw(gfx, false);
+                               if (!bgFound)
+                                       m_currColorFill = 
annotOutDev->currColorFill;
+@@ -2916,22 +2931,27 @@ void SlaOutputDev::markPoint(POPPLER_CONST char *name, 
Dict *properties)
+ 
+ void SlaOutputDev::updateFont(GfxState *state)
+ {
+-      GfxFont *gfxFont;
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++      std::optional<GfxFontLoc> fontLoc;
++      std::string fileName;
++      std::unique_ptr<FoFiTrueType> ff;
++      std::optional<std::vector<unsigned char>> tmpBuf;
++#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+       std::optional<GfxFontLoc> fontLoc;
+       const GooString * fileName = nullptr;
+       std::unique_ptr<FoFiTrueType> ff;
++      char* tmpBuf = nullptr;
+ #else
+       GfxFontLoc * fontLoc = nullptr;
+       GooString * fileName = nullptr;
+       FoFiTrueType * ff = nullptr;
++      char* tmpBuf = nullptr;
+ #endif
+       GfxFontType fontType;
+       SlaOutFontFileID *id;
+       SplashFontFile *fontFile;
+       SplashFontSrc *fontsrc = nullptr;
+       Object refObj, strObj;
+-      char *tmpBuf = nullptr;
+       int tmpBufLen = 0;
+       int *codeToGID = nullptr;
+       const double *textMat = nullptr;
+@@ -2943,7 +2963,11 @@ void SlaOutputDev::updateFont(GfxState *state)
+ 
+       m_font = nullptr;
+ 
+-      gfxFont = state->getFont();
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++      GfxFont* gfxFont = state->getFont().get();
++#else
++      GfxFont* gfxFont = state->getFont();
++#endif
+       if (!gfxFont)
+               goto err1;
+ 
+@@ -2968,15 +2992,23 @@ void SlaOutputDev::updateFont(GfxState *state)
+               if (fontLoc->locType == gfxFontLocEmbedded)
+               {
+                       // if there is an embedded font, read it to memory
+-                      tmpBuf = gfxFont->readEmbFontFile(xref, &tmpBufLen);
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++                      tmpBuf = gfxFont->readEmbFontFile((xref) ? xref : 
pdfDoc->getXRef());
+                       if (! tmpBuf)
+                               goto err2;
++#else
++                      tmpBuf = gfxFont->readEmbFontFile(xref, &tmpBufLen);
++                      if (!tmpBuf)
++                              goto err2;
++#endif
+ 
+                       // external font
+               }
+               else
+               { // gfxFontLocExternal
+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++                      fileName = fontLoc->path;
++#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+                       fileName = fontLoc->pathAsGooString();
+ #else
+                       fileName = fontLoc->path;
+@@ -2985,52 +3017,54 @@ void SlaOutputDev::updateFont(GfxState *state)
+               }
+ 
+               fontsrc = new SplashFontSrc;
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++              if (!fileName.empty())
++                      fontsrc->setFile(fileName);
++              else
++                      fontsrc->setBuf(std::move(tmpBuf.value()));
++#else
+               if (fileName)
+                       fontsrc->setFile(fileName, gFalse);
+               else
+                       fontsrc->setBuf(tmpBuf, tmpBufLen, gTrue);
++#endif
+ 
+               // load the font file
+               switch (fontType) {
+               case fontType1:
+-                      if (!(fontFile = m_fontEngine->loadType1Font(
+-                              id,
+-                              fontsrc,
+-                              (const char **)((Gfx8BitFont *) 
gfxFont)->getEncoding())))
++                      if (!(fontFile = m_fontEngine->loadType1Font(id, 
fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
+                       {
+-                              error(errSyntaxError, -1, "Couldn't create a 
font for '{0:s}'",
+-                              gfxFont->getName() ? 
gfxFont->getName()->getCString() : "(unnamed)");
++                              error(errSyntaxError, -1, "Couldn't create a 
font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : 
"(unnamed)");
+                               goto err2;
+                       }
+                       break;
+               case fontType1C:
+-                      if (!(fontFile = m_fontEngine->loadType1CFont(
+-                                                      id,
+-                                                      fontsrc,
+-                                                      (const char 
**)((Gfx8BitFont *) gfxFont)->getEncoding())))
++                      if (!(fontFile = m_fontEngine->loadType1CFont(id, 
fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
+                       {
+-                              error(errSyntaxError, -1, "Couldn't create a 
font for '{0:s}'",
+-                              gfxFont->getName() ? 
gfxFont->getName()->getCString() : "(unnamed)");
++                              error(errSyntaxError, -1, "Couldn't create a 
font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : 
"(unnamed)");
+                               goto err2;
+                       }
+                       break;
+               case fontType1COT:
+-                      if (!(fontFile = m_fontEngine->loadOpenTypeT1CFont(
+-                                                      id,
+-                                                      fontsrc,
+-                                                      (const char 
**)((Gfx8BitFont *) gfxFont)->getEncoding())))
++                      if (!(fontFile = m_fontEngine->loadOpenTypeT1CFont(id, 
fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
+                       {
+-                              error(errSyntaxError, -1, "Couldn't create a 
font for '{0:s}'",
+-                              gfxFont->getName() ? 
gfxFont->getName()->getCString() : "(unnamed)");
++                              error(errSyntaxError, -1, "Couldn't create a 
font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : 
"(unnamed)");
+                               goto err2;
+                       }
+                       break;
+               case fontTrueType:
+               case fontTrueTypeOT:
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++                      if (!fileName.empty())
++                              ff = FoFiTrueType::load(fileName.c_str());
++                      else
++                              ff = FoFiTrueType::make(fontsrc->buf.data(), 
fontsrc->buf.size());
++#else
+                       if (fileName)
+                               ff = FoFiTrueType::load(fileName->getCString());
+                       else
+                               ff = FoFiTrueType::make(tmpBuf, tmpBufLen);
++#endif
+                       if (ff)
+                       {
+ #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+@@ -3047,24 +3081,17 @@ void SlaOutputDev::updateFont(GfxState *state)
+                               codeToGID = nullptr;
+                               n = 0;
+                       }
+-                      if (!(fontFile = m_fontEngine->loadTrueTypeFont(
+-                                                      id,
+-                                                      fontsrc,
+-                                                      codeToGID, n)))
++                      if (!(fontFile = m_fontEngine->loadTrueTypeFont(id, 
fontsrc, codeToGID, n)))
+                       {
+-                              error(errSyntaxError, -1, "Couldn't create a 
font for '{0:s}'",
+-                              gfxFont->getName() ? 
gfxFont->getName()->getCString() : "(unnamed)");
++                              error(errSyntaxError, -1, "Couldn't create a 
font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : 
"(unnamed)");
+                               goto err2;
+                       }
+                       break;
+               case fontCIDType0:
+               case fontCIDType0C:
+-                      if (!(fontFile = m_fontEngine->loadCIDFont(
+-                                                      id,
+-                                                      fontsrc)))
++                      if (!(fontFile = m_fontEngine->loadCIDFont(id, 
fontsrc)))
+                       {
+-                              error(errSyntaxError, -1, "Couldn't create a 
font for '{0:s}'",
+-                              gfxFont->getName() ? 
gfxFont->getName()->getCString() : "(unnamed)");
++                              error(errSyntaxError, -1, "Couldn't create a 
font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : 
"(unnamed)");
+                               goto err2;
+                       }
+                       break;
+@@ -3080,10 +3107,7 @@ void SlaOutputDev::updateFont(GfxState *state)
+                               codeToGID = nullptr;
+                               n = 0;
+                       }
+-                      if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(
+-                                                      id,
+-                                                      fontsrc,
+-                                                      codeToGID, n)))
++                      if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(id, 
fontsrc, codeToGID, n)))
+                       {
+                               error(errSyntaxError, -1, "Couldn't create a 
font for '{0:s}'",
+                               gfxFont->getName() ? 
gfxFont->getName()->getCString() : "(unnamed)");
+@@ -3105,10 +3129,17 @@ void SlaOutputDev::updateFont(GfxState *state)
+                       }
+                       else
+                       {
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
++                              if (!fileName.empty())
++                                      ff = 
FoFiTrueType::load(fileName.c_str());
++                              else
++                                      ff = 
FoFiTrueType::make(fontsrc->buf.data(), fontsrc->buf.size());
++#else
+                               if (fileName)
+                                       ff = 
FoFiTrueType::load(fileName->getCString());
+                               else
+                                       ff = FoFiTrueType::make(tmpBuf, 
tmpBufLen);
++#endif
+                               if (! ff)
+                                       goto err2;
+ #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+@@ -3119,13 +3150,9 @@ void SlaOutputDev::updateFont(GfxState *state)
+                               delete ff;
+ #endif
+                       }
+-                      if (!(fontFile = m_fontEngine->loadTrueTypeFont(
+-                                                      id,
+-                                                      fontsrc,
+-                                                      codeToGID, n, 
faceIndex)))
++                      if (!(fontFile = m_fontEngine->loadTrueTypeFont(id, 
fontsrc, codeToGID, n, faceIndex)))
+                       {
+-                              error(errSyntaxError, -1, "Couldn't create a 
font for '{0:s}'",
+-                              gfxFont->getName() ? 
gfxFont->getName()->getCString() : "(unnamed)");
++                              error(errSyntaxError, -1, "Couldn't create a 
font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : 
"(unnamed)");
+                               goto err2;
+                       }
+                       break;
+@@ -3269,9 +3296,15 @@ void SlaOutputDev::drawChar(GfxState* state, double x, 
double y, double dx, doub
+ GBool SlaOutputDev::beginType3Char(GfxState *state, double x, double y, 
double dx, double dy, CharCode code, POPPLER_CONST_082 Unicode *u, int uLen)
+ {
+ //    qDebug() << "beginType3Char";
++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
+       GfxFont *gfxFont;
++      if (!(gfxFont = state->getFont().get()))
++              return gTrue;
++#else
++      GfxFont* gfxFont;
+       if (!(gfxFont = state->getFont()))
+               return gTrue;
++#endif
+       if (gfxFont->getType() != fontType3)
+               return gTrue;
+       F3Entry f3e;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/scribus.git/commitdiff/2626cb36cc53e2f40db0f4735e929ffb679367ae


_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to