GB_COMPONENT_PKG_CONFIG(
poppler, POPPLER, gb.pdf, [src],
- 'poppler >= 0.20'
+ 'poppler >= 0.20' 'poppler < 23.0'
)
if test "$have_poppler" = "yes"; then
AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_86, $((1-$?)), Poppler version >= 0.86)
$PKG_CONFIG --atleast-version=21.06.0 poppler
AC_DEFINE_UNQUOTED(POPPLER_VERSION_21_06_0, $((1-$?)), Poppler version >= 21.06.0)
+ $PKG_CONFIG --atleast-version=22.06.0 poppler
+ AC_DEFINE_UNQUOTED(POPPLER_VERSION_22_06_0, $((1-$?)), Poppler version >= 22.06.0)
fi
AC_OUTPUT( \
if ( GB.LoadFile(sfile,lfile,&buf,&len) ) return -1;
#if POPPLER_VERSION_0_58
- stream=new MemStream(buf,0,(uint)len,std::move(obj));
+ stream = new MemStream(buf,0,(uint)len,std::move(obj));
#else
obj.initNull();
- stream=new MemStream(buf,0,(uint)len,&obj);
+ stream = new MemStream(buf,0,(uint)len,&obj);
#endif
- test=new PDFDoc (stream,0,0);
+ test = new PDFDoc(stream);
if (!test->isOk())
{
if (!THIS->links) aux_fill_links(_object);
if (!THIS->links) { GB.ReturnInteger(0); return; }
+
+#if POPPLER_VERSION_22_06_0
+ int numlinks = 0;
+ for (AnnotLink *link : THIS->links->getLinks()) {
+ numlinks++;
+ }
+ GB.ReturnInteger(numlinks);
+#else
GB.ReturnInteger(THIS->links->getNumLinks());
+#endif
END_PROPERTY
BEGIN_METHOD (PDFPAGELINKS_get,GB_INTEGER ind;)
- bool pok=true;
+#if POPPLER_VERSION_22_06_0
+
+ if (!THIS->links) aux_fill_links(_object);
+ if (THIS->links && VARG(ind)>0)
+ {
+ int i = 0;
+ for (AnnotLink *link : THIS->links->getLinks()) {
+ if (VARG(ind)==i) {
+ THIS->action=link->getAction();
+ RETURN_SELF();
+ }
+ }
+ }
+ GB.Error("Out of bounds");
+ return;
+
+#else
+
+ bool pok = true;
if (!THIS->links) aux_fill_links(_object);
if (!THIS->links) pok=false;
RETURN_SELF();
+#endif
+
END_METHOD
BEGIN_PROPERTY (PDFPAGELINKDATA_parameters)
pw=THIS->page->getMediaWidth();
ph=THIS->page->getMediaHeight();
+#if POPPLER_VERSION_22_06_0
+
+ uint i = 0;
+ l = t = w = h = 0;
+ for (AnnotLink *link : THIS->links->getLinks()) {
+ if (i == THIS->lcurrent) {
+ link->getRect(&l, &t, &w, &h);
+ break;
+ }
+ i++;
+ }
+
+#else
+
THIS->links->getLink(THIS->lcurrent)->getRect(&l, &t, &w, &h);
- w=w-l;
- h=h-t;
+
+#endif
+
+ w -= l;
+ h -= t;
switch (get_rotation(THIS))
{