1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
From 3c29b709cd2b5b18776b3c15638b66bd8a7dcb07 Mon Sep 17 00:00:00 2001
From: Xisco Fauli <xiscofauli@libreoffice.org>
Date: Fri, 6 Feb 2026 00:53:12 +0100
Subject: [PATCH] poppler: upgrade to 26.02.0
stripped of all the bundled update stuff ...
---
.../pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx | 22 +++++++++-
.../pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx | 21 +++++++++-
2 files changed, 41 insertions(+), 2 deletions(-)
diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
index 6b9184809803d..f1487453eb503 100644
--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
@@ -711,13 +711,17 @@ void PDFOutDev::restoreState(GfxState*)
printf( "restoreState\n" );
}
-#if POPPLER_CHECK_VERSION(0, 71, 0)
+#if POPPLER_CHECK_VERSION(26, 2, 0)
+void PDFOutDev::setDefaultCTM(const std::array<double, 6> &pMat)
+#elif POPPLER_CHECK_VERSION(0, 71, 0)
void PDFOutDev::setDefaultCTM(const double *pMat)
#else
void PDFOutDev::setDefaultCTM(double *pMat)
#endif
{
+#if !POPPLER_CHECK_VERSION(26, 2, 0)
assert(pMat);
+#endif
OutputDev::setDefaultCTM(pMat);
@@ -737,8 +741,12 @@ void PDFOutDev::updateCTM(GfxState* state,
{
assert(state);
+#if POPPLER_CHECK_VERSION(26, 2, 0)
+ const std::array<double, 6> pMat = state->getCTM();
+#else
const double* const pMat = state->getCTM();
assert(pMat);
+#endif
printf( "updateCtm %f %f %f %f %f %f\n",
normalize(pMat[0]),
@@ -1044,7 +1052,11 @@ void PDFOutDev::drawChar(GfxState *state, double x, double y,
double csdx = 0.0;
double csdy = 0.0;
+#if POPPLER_CHECK_VERSION(26, 2, 0)
+ if (!state->getFont() || GfxFont::WritingMode::Horizontal == state->getFont()->getWMode())
+#else
if (!state->getFont() || !state->getFont()->getWMode())
+#endif
{
csdx = state->getCharSpace();
if (*u == ' ')
@@ -1067,7 +1079,11 @@ void PDFOutDev::drawChar(GfxState *state, double x, double y,
const double aPositionX(x-originX);
const double aPositionY(y-originY);
+#if POPPLER_CHECK_VERSION(26, 2, 0)
+ const std::array<double, 6> pTextMat=state->getTextMat();
+#else
const double* pTextMat=state->getTextMat();
+#endif
printf( "drawChar %f %f %f %f %f %f %f %f %f ",
normalize(aPositionX),
normalize(aPositionY),
@@ -1348,7 +1364,11 @@ poppler_bool PDFOutDev::tilingPatternFill(GfxState *state, Gfx *, Catalog *,
const int nDPI = 72; // GfxState seems to have 72.0 as magic for some reason
auto pSplashGfxState = new GfxState(nDPI, nDPI, &aBox, 0, false);
+#if POPPLER_CHECK_VERSION(26, 2, 0)
+ auto pSplashOut = new SplashOutputDev(splashModeRGB8, 1, nullptr);
+#else
auto pSplashOut = new SplashOutputDev(splashModeRGB8, 1, false, nullptr);
+#endif
pSplashOut->setEnableFreeType(false);
pSplashOut->startDoc(m_pDoc);
pSplashOut->startPage(0 /* pageNum */, pSplashGfxState, nullptr /* xref */);
diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx
index b7bd912406b58..da587b1522d61 100644
--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx
+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx
@@ -85,13 +85,21 @@ namespace pdfi
isUnderline(rSrc.isUnderline),
size(rSrc.size)
{
+#if POPPLER_CHECK_VERSION(26, 2, 0)
+ familyName.append(rSrc.getFamilyName());
+#else
familyName.append(&rSrc.getFamilyName());
+#endif
}
FontAttributes& operator=( const FontAttributes& rSrc )
{
familyName.clear();
+#if POPPLER_CHECK_VERSION(26, 2, 0)
+ familyName.append(rSrc.getFamilyName());
+#else
familyName.append(&rSrc.getFamilyName());
+#endif
isEmbedded = rSrc.isEmbedded;
maFontWeight= rSrc.maFontWeight;
@@ -104,12 +112,21 @@ namespace pdfi
bool operator==(const FontAttributes& rFont) const
{
+#if POPPLER_CHECK_VERSION(26, 2, 0)
+ return getFamilyName().compare(rFont.getFamilyName())==0 &&
+ isEmbedded == rFont.isEmbedded &&
+ maFontWeight == rFont.maFontWeight &&
+ isItalic == rFont.isItalic &&
+ isUnderline == rFont.isUnderline &&
+ size == rFont.size;
+#else
return getFamilyName().cmp(&rFont.getFamilyName())==0 &&
isEmbedded == rFont.isEmbedded &&
maFontWeight == rFont.maFontWeight &&
isItalic == rFont.isItalic &&
isUnderline == rFont.isUnderline &&
size == rFont.size;
+#endif
}
GooString familyName;
@@ -172,7 +189,9 @@ namespace pdfi
//----- initialization and control
// Set default transform matrix.
-#if POPPLER_CHECK_VERSION(0, 71, 0)
+#if POPPLER_CHECK_VERSION(26, 2, 0)
+void setDefaultCTM(const std::array<double, 6> &pMat) override;
+#elif POPPLER_CHECK_VERSION(0, 71, 0)
virtual void setDefaultCTM(const double *ctm) override;
#else
virtual void setDefaultCTM(double *ctm) override;
|