727c7aa
diff -up gambas3-3.1.1/gb.pdf/configure.ac.poppler20 gambas3-3.1.1/gb.pdf/configure.ac
727c7aa
--- gambas3-3.1.1/gb.pdf/configure.ac.poppler20	2012-05-29 10:59:35.738878376 -0400
727c7aa
+++ gambas3-3.1.1/gb.pdf/configure.ac	2012-05-29 11:02:55.966216806 -0400
727c7aa
@@ -24,6 +24,8 @@ if test "$have_poppler" = "yes"; then
727c7aa
   AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_11_3, $((1-$?)), Poppler version >= 0.11.3)
727c7aa
   pkg-config --atleast-version=0.17.0 poppler
727c7aa
   AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_17, $((1-$?)), Poppler version >= 0.17)
727c7aa
+  pkg-config --atleast-version=0.20.0 poppler
727c7aa
+  AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_20, $((1-$?)), Poppler version >= 0.20)
727c7aa
 fi
727c7aa
 
727c7aa
 AC_OUTPUT( \
727c7aa
--- gambas-3.1.1/gb.pdf/src/CPdfDocument.cpp	2012-05-29 01:22:45	4729
727c7aa
+++ gambas-3.1.1/gb.pdf/src/CPdfDocument.cpp	2012-05-29 07:32:03	4730
727c7aa
@@ -449,9 +449,13 @@
727c7aa
 
727c7aa
 	white[0] = 0xFF; white[1] = 0xFF; white[2] = 0xFF;
727c7aa
 	THIS->dev=new SplashOutputDev(splashModeRGB8, 3, gFalse, white);
727c7aa
-		
727c7aa
-	THIS->dev->startDoc(THIS->doc->getXRef ());
727c7aa
 
727c7aa
+	#if POPPLER_VERSION_0_20
727c7aa
+	THIS->dev->startDoc(THIS->doc);
727c7aa
+	#else
727c7aa
+	THIS->dev->startDoc(THIS->doc->getXRef ());
727c7aa
+	#endif
727c7aa
+	
727c7aa
 	outline=THIS->doc->getOutline();
727c7aa
 	if (outline) THIS->index=outline->getItems();
727c7aa
 	
727c7aa
@@ -875,6 +879,14 @@
727c7aa
 
727c7aa
 	if ( (w<0) || (h<0) ) return NULL;
727c7aa
 
727c7aa
+	#if POPPLER_VERSION_0_20
727c7aa
+	THIS->page->displaySlice(THIS->dev,72.0*scale,72.0*scale,
727c7aa
+			   rotation,
727c7aa
+			   gFalse,
727c7aa
+			   gTrue,
727c7aa
+			   x,y,w,h,
727c7aa
+			   gFalse);
727c7aa
+	#else
727c7aa
 	THIS->page->displaySlice(THIS->dev,72.0*scale,72.0*scale,
727c7aa
 			   rotation,
727c7aa
 			   gFalse,
727c7aa
@@ -882,7 +894,8 @@
727c7aa
 			   x,y,w,h,
727c7aa
 			   gFalse,
727c7aa
 			   THIS->doc->getCatalog ());
727c7aa
-
727c7aa
+	#endif
727c7aa
+	
727c7aa
 	map=THIS->dev->getBitmap();
727c7aa
 	
727c7aa
 	data=(uint32_t*)map->getDataPtr();
727c7aa
@@ -940,9 +953,14 @@
727c7aa
 	w = VARGOPT(W, (int32_t)THIS->page->getMediaWidth());
727c7aa
 	h = VARGOPT(H, (int32_t)THIS->page->getMediaHeight());
727c7aa
 
727c7aa
+	#if POPPLER_VERSION_0_20
727c7aa
+	dev = new TextOutputDev (NULL, gTrue, 0, gFalse, gFalse);
b8a9752
+	gfx = THIS->page->createGfx(dev,72.0,72.0,0,gFalse,gTrue,-1, -1, -1, -1, gFalse, NULL, NULL);
727c7aa
+	#else
727c7aa
 	dev = new TextOutputDev (NULL, gTrue, gFalse, gFalse);
727c7aa
 	gfx = THIS->page->createGfx(dev,72.0,72.0,0,gFalse,gTrue,-1, -1, -1, -1, gFalse,THIS->doc->getCatalog (),NULL, NULL, NULL, NULL);
727c7aa
-	
727c7aa
+	#endif
727c7aa
+
727c7aa
 	THIS->page->display(gfx);
727c7aa
 	dev->endPage();
727c7aa
 
727c7aa
@@ -970,7 +988,9 @@
727c7aa
 
727c7aa
 void aux_fill_links(void *_object)
727c7aa
 {
727c7aa
-	#if POPPLER_VERSION_0_17
727c7aa
+	#if POPPLER_VERSION_0_20
1fb9ccd
+	THIS->links = new Links (THIS->page->getAnnots ());
727c7aa
+	#elif POPPLER_VERSION_0_17
727c7aa
 	THIS->links = new Links (THIS->page->getAnnots (THIS->doc->getCatalog()));
727c7aa
 	#else
727c7aa
 	Object obj;
727c7aa
@@ -1152,13 +1172,22 @@
727c7aa
 
727c7aa
 	if (!MISSING(Sensitive)) sensitive=VARG(Sensitive);
727c7aa
 
727c7aa
+	#if POPPLER_VERSION_0_20
727c7aa
+	textdev = new TextOutputDev (NULL, true, 0, false, false);
727c7aa
+	THIS->page->display (textdev, 72, 72, 0, false, false, false);
727c7aa
+	#else
727c7aa
 	textdev = new TextOutputDev (NULL, true, false, false);
727c7aa
 	THIS->page->display (textdev, 72, 72, 0, false, false, false, THIS->doc->getCatalog());
727c7aa
+	#endif
727c7aa
 
727c7aa
 	if (THIS->Found) { GB.FreeArray(POINTER(&THIS->Found)); THIS->Found=NULL; }
727c7aa
 
727c7aa
 	count = 0;
727c7aa
+	#if POPPLER_VERSION_0_20
727c7aa
+	while (textdev->findText (block,nlen,gFalse,gTrue,gTrue,gFalse,sensitive,gFalse,gFalse,&x0,&y0,&x1,&y1))
727c7aa
+	#else
727c7aa
 	while (textdev->findText (block,nlen,gFalse,gTrue,gTrue,gFalse,sensitive,gFalse,&x0,&y0,&x1,&y1))
727c7aa
+	#endif
727c7aa
 	{
727c7aa
 		if (!THIS->Found)
727c7aa
 			GB.NewArray(POINTER(&THIS->Found),sizeof(CPDFFIND),1);