diff options
Diffstat (limited to 'poppler0.58.patch')
-rw-r--r-- | poppler0.58.patch | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/poppler0.58.patch b/poppler0.58.patch new file mode 100644 index 000000000000..85df3b22c601 --- /dev/null +++ b/poppler0.58.patch @@ -0,0 +1,195 @@ +From bee6187c7d70ea3e66b5428433b15ddb9e849200 Mon Sep 17 00:00:00 2001 +From: David Tardon <dtardon@redhat.com> +Date: Tue, 5 Sep 2017 17:23:29 +0200 +Subject: [PATCH] adapt to poppler 0.58 + +--- + gui/kernel/boomagapoppler.cpp | 16 ++++++++++++++++ + gui/pdfmerger/pdfmerger.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 59 insertions(+) + +diff --git a/gui/kernel/boomagapoppler.cpp b/gui/kernel/boomagapoppler.cpp +index 0a9d8c7..f975a94 100644 +--- a/gui/kernel/boomagapoppler.cpp ++++ b/gui/kernel/boomagapoppler.cpp +@@ -134,7 +134,11 @@ class PJLFileStream: protected PJLFileStreamData, public FileStream + public: + PJLFileStream(const QString &fileName, qint64 startPos, qint64 endPos): + PJLFileStreamData(fileName, startPos, endPos), ++#if POPPLER_VERSION < 5800 + FileStream(mFile, mStartPos, true, mLength, new Object()) ++#else ++ FileStream(mFile, mStartPos, true, mLength, Object()) ++#endif + { + } + +@@ -189,12 +193,20 @@ QString BoomagaPDFDoc::getMetaInfo(const char *tag) + QString result; + Object docInfo; + ++#if POPPLER_VERSION < 5800 + getDocInfo(&docInfo); ++#else ++ docInfo = getDocInfo(); ++#endif + if (docInfo.isDict()) + { + Dict *dict = docInfo.getDict(); + Object obj; ++#if POPPLER_VERSION < 5800 + dict->lookup((char*)tag, &obj); ++#else ++ obj = dict->lookup((char*)tag); ++#endif + + if (obj.isString()) + { +@@ -211,10 +223,14 @@ QString BoomagaPDFDoc::getMetaInfo(const char *tag) + } + } + ++#if POPPLER_VERSION < 5800 + obj.free(); ++#endif + + } ++#if POPPLER_VERSION < 5800 + docInfo.free(); ++#endif + + return result; + } +diff --git a/gui/pdfmerger/pdfmerger.cpp b/gui/pdfmerger/pdfmerger.cpp +index 848ae09..ff85868 100644 +--- a/gui/pdfmerger/pdfmerger.cpp ++++ b/gui/pdfmerger/pdfmerger.cpp +@@ -109,11 +109,18 @@ void writeTrailer(XRef *xRef, int rootNum, OutStream* stream) + ref.num = rootNum; + ref.gen = 0; + ++#if POPPLER_VERSION < 5800 + Dict *trailerDict = PDFDoc::createTrailerDict(xRef->getNumObjects(), false, 0, &ref, xRef, + "fileName", stream->getPos()); + PDFDoc::writeXRefTableTrailer(trailerDict, xRef, false /* do not write unnecessary entries */, + uxrefOffset, stream, xRef); + delete trailerDict; ++#else ++ Object trailerDict = PDFDoc::createTrailerDict(xRef->getNumObjects(), false, 0, &ref, xRef, ++ "fileName", stream->getPos()); ++ PDFDoc::writeXRefTableTrailer(std::move(trailerDict), xRef, false /* do not write unnecessary entries */, ++ uxrefOffset, stream, xRef); ++#endif + #endif + } + +@@ -238,9 +245,15 @@ OutStream &operator<<(OutStream &stream, const int value) + OutStream &operator<<(OutStream &stream, Stream &value) + { + Object obj1; ++#if POPPLER_VERSION < 5800 + value.getDict()->lookup((char*)"Length", &obj1); ++#else ++ obj1 = value.getDict()->lookup((char*)"Length"); ++#endif + const int length = obj1.getInt(); ++#if POPPLER_VERSION < 5800 + obj1.free(); ++#endif + + value.unfilteredReset(); + +@@ -278,8 +291,10 @@ class PdfMergerPageInfo: public PdfPageInfo + + ~PdfMergerPageInfo() + { ++#if POPPLER_VERSION < 5800 + page.free(); + stream.free(); ++#endif + } + + PDFDoc *doc; +@@ -308,7 +323,11 @@ QString PdfMergerPageInfo::dump() + for (int i=0; i < array->getLength(); ++i) + { + Object o; ++#if POPPLER_VERSION < 5800 + array->get(i, &o); ++#else ++ o = array->get(i); ++#endif + res += QString(" * %1 - %2\n").arg(i).arg(o.getTypeName()); + } + } +@@ -448,7 +467,11 @@ bool PdfMerger::run(const QString &outFileName) + + pageInfo->doc = doc; + pageInfo->numOffset = numOffset; ++#if POPPLER_VERSION < 5800 + doc->getXRef()->fetch(refPage->num, refPage->gen, &(pageInfo->page)); ++#else ++ pageInfo->page = doc->getXRef()->fetch(refPage->num, refPage->gen); ++#endif + Dict *pageDict = pageInfo->page.getDict(); + + PDFRectangle *mediaBox = page->getMediaBox(); +@@ -469,7 +492,11 @@ bool PdfMerger::run(const QString &outFileName) + pageInfo->pageNum = i; + if (pageDict->hasKey((char *)"Contents")) + { ++#if POPPLER_VERSION < 5800 + pageDict->lookup((char *)"Contents", &(pageInfo->stream)); ++#else ++ pageInfo->stream = pageDict->lookup((char *)"Contents"); ++#endif + pageDict->remove((char *)"Contents"); + } + +@@ -575,11 +602,17 @@ void PdfMerger::writeStreamAsXObject(PdfMergerPageInfo *pageInfo, Stream *stream + for (int i=0; i<dict->getLength(); ++i) + { + Object value; ++#if POPPLER_VERSION < 5800 + dict->getVal(i, &value); ++#else ++ dict->getVal(i); ++#endif + *mStream << "/" << dict->getKey(i) << " "; + POPPLER_WriteObject(&value, 0, mStream, &mXRef, pageInfo->numOffset); + *mStream << "\n"; ++#if POPPLER_VERSION < 5800 + value.free(); ++#endif + } + *mStream << " >>\n"; + +@@ -617,7 +650,11 @@ bool PdfMerger::writePageAsXObject(PdfMergerPageInfo *pageInfo) + for (int i=0; i < array->getLength(); ++i) + { + Object o; ++#if POPPLER_VERSION < 5800 + array->get(i, &o); ++#else ++ o = array->get(i); ++#endif + if (!o.isStream()) + { + warning("Page content is array with incorrect item type:\n" + pageInfo->dump() + "\n"); +@@ -643,10 +680,16 @@ bool PdfMerger::writeDictValue(Dict *dict, const char *key, Guint numOffset) + return false; + + Object value; ++#if POPPLER_VERSION < 5800 + dict->lookupNF((char*)key, &value); ++#else ++ value = dict->lookupNF((char*)key); ++#endif + *mStream << "/" << key << " "; + POPPLER_WriteObject(&value, 0, mStream, &mXRef, numOffset); + *mStream << "\n"; ++#if POPPLER_VERSION < 5800 + value.free(); ++#endif + return true; + } |