From 1e1a1e6fffc1805aadf75467e72af71391636075 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Fri, 6 Mar 2015 10:44:50 +0100 Subject: pdf: Add support for changes with poppler >= 0.31 With 0.31 poppler removed some parts of GlobalParams which they do not consider a public API. The antialias setting can now be done over the output device. Fixes T2184 @fix --- configure.ac | 14 ++++++++++++-- src/bin/pdf/main.cpp | 10 ++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 7e13584..1079c6e 100644 --- a/configure.ac +++ b/configure.ac @@ -73,15 +73,25 @@ if test "x${want_poppler}" = "xyes" ; then [have_poppler="no"]) if test "x${have_poppler}" = "xno" ; then - PKG_CHECK_EXISTS([poppler >= 0.20], + PKG_CHECK_EXISTS([poppler >= 0.20 poppler < 0.31], [ - poppler_pc="poppler >= 0.20" + poppler_pc="poppler >= 0.20 poppler < 0.31" AC_DEFINE(HAVE_POPPLER_020, 1, [Have poppler 0.20]) have_poppler="yes" ], [have_poppler="no"]) fi + if test "x${have_poppler}" = "xno" ; then + PKG_CHECK_EXISTS([poppler >= 0.31], + [ + poppler_pc="poppler >= 0.31" + AC_DEFINE(HAVE_POPPLER_031, 1, [Have poppler 0.31]) + have_poppler="yes" + ], + [have_poppler="no"]) + fi + if test "x${have_poppler}" = "xyes" ; then PKG_CHECK_MODULES([POPPLER], [${poppler_pc}], [have_poppler="yes"], diff --git a/src/bin/pdf/main.cpp b/src/bin/pdf/main.cpp index a68b21f..78f918e 100644 --- a/src/bin/pdf/main.cpp +++ b/src/bin/pdf/main.cpp @@ -62,10 +62,12 @@ Eina_Bool poppler_init(const char *file, int page_nbr, int size_w, int size_h) if (!eina_init()) goto del_global_param; +#ifndef HAVE_POPPLER_031 if (globalParams->getAntialias()) globalParams->setAntialias((char *)"yes"); if (globalParams->getVectorAntialias()) globalParams->setVectorAntialias((char *)"yes"); +#endif pdfdoc = new PDFDoc(new GooString(file), NULL); if (!pdfdoc) @@ -161,7 +163,7 @@ void poppler_load_image(int size_w, int size_h) if (!output_dev) return; -#ifdef HAVE_POPPLER_020 +#if defined(HAVE_POPPLER_020) || defined(HAVE_POPPLER_031) output_dev->startDoc(pdfdoc); #else output_dev->startDoc(pdfdoc->getXRef()); @@ -169,8 +171,12 @@ void poppler_load_image(int size_w, int size_h) if (dpi <= 0.0) dpi = DEF_DPI; +#ifdef HAVE_POPPLER_031 + output_dev->setFontAntialias(EINA_TRUE); + output_dev->setVectorAntialias(EINA_TRUE); +#endif -#ifdef HAVE_POPPLER_020 +#if defined(HAVE_POPPLER_020) || defined(HAVE_POPPLER_031) page->displaySlice(output_dev, dpi, dpi, 0, false, false, 0, 0, width, height, -- cgit v1.2.1