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
|
diff -ur gb.pdf/configure.ac gb.pdf.fixed/configure.ac
--- gb.pdf/configure.ac 2012-05-14 08:55:02.448921378 +0200
+++ gb.pdf.fixed/configure.ac 2012-05-14 08:52:19.098596499 +0200
@@ -24,6 +24,8 @@
AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_11_3, $((1-$?)), Poppler version >= 0.11.3)
pkg-config --atleast-version=0.17.0 poppler
AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_17, $((1-$?)), Poppler version >= 0.17)
+ pkg-config --atleast-version=0.20.0 poppler
+ AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_20, $((1-$?)), Poppler version >= 0.20)
fi
AC_OUTPUT( \
diff -ur gb.pdf/src/CPdfDocument.cpp gb.pdf.fixed/src/CPdfDocument.cpp
--- gb.pdf/src/CPdfDocument.cpp 2012-05-14 08:55:02.388922483 +0200
+++ gb.pdf.fixed/src/CPdfDocument.cpp 2012-05-15 09:25:45.168457227 +0200
@@ -449,9 +449,13 @@
white[0] = 0xFF; white[1] = 0xFF; white[2] = 0xFF;
THIS->dev=new SplashOutputDev(splashModeRGB8, 3, gFalse, white);
-
- THIS->dev->startDoc(THIS->doc->getXRef ());
+ #if POPPLER_VERSION_0_20
+ THIS->dev->startDoc(THIS->doc);
+ #else
+ THIS->dev->startDoc(THIS->doc->getXRef ());
+ #endif
+
outline=THIS->doc->getOutline();
if (outline) THIS->index=outline->getItems();
@@ -875,6 +879,14 @@
if ( (w<0) || (h<0) ) return NULL;
+ #if POPPLER_VERSION_0_20
+ THIS->page->displaySlice(THIS->dev,72.0*scale,72.0*scale,
+ rotation,
+ gFalse,
+ gTrue,
+ x,y,w,h,
+ gFalse);
+ #else
THIS->page->displaySlice(THIS->dev,72.0*scale,72.0*scale,
rotation,
gFalse,
@@ -882,7 +894,8 @@
x,y,w,h,
gFalse,
THIS->doc->getCatalog ());
-
+ #endif
+
map=THIS->dev->getBitmap();
data=(uint32_t*)map->getDataPtr();
@@ -940,9 +953,14 @@
w = VARGOPT(W, (int32_t)THIS->page->getMediaWidth());
h = VARGOPT(H, (int32_t)THIS->page->getMediaHeight());
+ #if POPPLER_VERSION_0_20
+ dev = new TextOutputDev (NULL, gTrue, 0, gFalse, gFalse);
+ gfx = THIS->page->createGfx(dev,72.0,72.0,0,gFalse,gTrue,-1, -1, -1, -1, gFalse, NULL, NULL);
+ #else
dev = new TextOutputDev (NULL, gTrue, gFalse, gFalse);
gfx = THIS->page->createGfx(dev,72.0,72.0,0,gFalse,gTrue,-1, -1, -1, -1, gFalse,THIS->doc->getCatalog (),NULL, NULL, NULL, NULL);
-
+ #endif
+
THIS->page->display(gfx);
dev->endPage();
@@ -970,7 +988,9 @@
void aux_fill_links(void *_object)
{
- #if POPPLER_VERSION_0_17
+ #if POPPLER_VERSION_0_20
+ THIS->links = new Links (THIS->page->getAnnots ());
+ #elif POPPLER_VERSION_0_17
THIS->links = new Links (THIS->page->getAnnots (THIS->doc->getCatalog()));
#else
Object obj;
@@ -1152,13 +1172,22 @@
if (!MISSING(Sensitive)) sensitive=VARG(Sensitive);
+ #if POPPLER_VERSION_0_20
+ textdev = new TextOutputDev (NULL, true, 0, false, false);
+ THIS->page->display (textdev, 72, 72, 0, false, false, false);
+ #else
textdev = new TextOutputDev (NULL, true, false, false);
THIS->page->display (textdev, 72, 72, 0, false, false, false, THIS->doc->getCatalog());
+ #endif
if (THIS->Found) { GB.FreeArray(POINTER(&THIS->Found)); THIS->Found=NULL; }
count = 0;
+ #if POPPLER_VERSION_0_20
+ while (textdev->findText (block,nlen,gFalse,gTrue,gTrue,gFalse,sensitive,gFalse,gFalse,&x0,&y0,&x1,&y1))
+ #else
while (textdev->findText (block,nlen,gFalse,gTrue,gTrue,gFalse,sensitive,gFalse,&x0,&y0,&x1,&y1))
+ #endif
{
if (!THIS->Found)
GB.NewArray(POINTER(&THIS->Found),sizeof(CPDFFIND),1);
|