summarylogtreecommitdiffstats
path: root/poppler0.58.patch
diff options
context:
space:
mode:
Diffstat (limited to 'poppler0.58.patch')
-rw-r--r--poppler0.58.patch195
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;
+ }