I am running 18.04 and trying to use version 2.1 of the R package pdftools. Some functionality requires poppler >= 0.73. (A poppler version requirement is documented in ?pdftools::pdf_data.)

I obtained poppler-0.73.0.tar.xz and poppler-data-0.4.9.tar.gz from https://poppler.freedesktop.org/. I extracted, followed the INSTALL instructions, and all seemed to work. I can verify that /usr/lib/x86_64-linux-gnu/libpoppler.so points to /usr/lib/x86_64-linux-gnu/libpoppler.so.73. I'm not sure what else to look for or whether update-alternatives would be helpful.

In R, when I run pdftools::pdf_data this happens:

> pdf_data(fn)
Error in poppler_pdf_data(loadfile(pdf), opw, upw) : 
  pdf_data() requires poppler >= 0.73. You have 0.62.0

Other functions in pdftools work, but pdf_data is documented to required poppler >= 0.73. I'm wondering what else I need to do to have 0.73 recognized.

EDIT: Following helpful suggestions at Installing poppler-0.62.0 on ubuntu 16.04, I ran apt-cache policy poppler-0.73 and got:

  Installed: 20190125-0.73
  Candidate: 20190125-0.73
  Version table:
 *** 20190125-0.73 100
        100 /var/lib/dpkg/status

This seems to suggest that 0.73 is installed.

The output of apt-cache policy r-base-core is

  Installed: 3.5.2-1bionic
  Candidate: 3.5.2-1bionic
  Version table:
 *** 3.5.2-1bionic 500
        500 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ Packages
        100 /var/lib/dpkg/status
     3.5.1-2bionic 500
        500 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ Packages
     3.5.1-1bionic 500
        500 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ Packages
     3.5.0-1bionic 500
        500 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ Packages
     3.4.4-1ubuntu1 500
        500 http://ubuntu.osuosl.org/ubuntu bionic/universe amd64 Packages
  • Which version of R do you use? Please add output of apt-cache policy r-base-core to the question. I have successfully installed pdftools it with R 3.4 from official Ubuntu 18.04 LTS repositories. I have installed Poppler with sudo apt install libpoppler-cpp-dev. – N0rbert Jan 25 at 20:11
  • @N0rbert I have edited the question both to add the apt-cache policy output, and to clarify that pdftools mostly works, but pdf_data does not. It works as documented. My guess is that pdf_data will not work for you either. – Robert McDonald Jan 25 at 20:20
  • I do not see the pdf_data in the list of R-CRAN packages. What is exact name of it? – N0rbert Jan 25 at 20:29
  • @N0rbert pdf_data is a function in pdftools. See the third paragraph of my post, pdftools::pdf_data – Robert McDonald Jan 25 at 21:22
  • Solved. See my answer below. – N0rbert Jan 26 at 16:33

To make it working we need to do the following:

  1. Uninstall the libpoppler-cpp-dev package

    sudo apt purge libpoppler-cpp-dev
  2. Compile and install Poppler 0.73 with checkinstall (as you already did) to the /usr/local:

    sudo apt-get install libopenjp2-7-dev libgdk-pixbuf2.0-dev cmake checkinstall
    sudo apt-get build-dep libpoppler-cpp-dev
    cd ~/Downloads
    wget https://poppler.freedesktop.org/poppler-0.73.0.tar.xz
    tar -xf poppler-0.73.0.tar.xz
    cd poppler-0.73.0
    mkdir build
    cd build
    cmake ..
    sudo checkinstall make install
  3. Define the environment variable R_LD_LIBRARY_PATH to inform R about the Poppler libraries in /usr/local/lib:

    echo "export R_LD_LIBRARY_PATH=\$R_LD_LIBRARY_PATH:/usr/local/lib" >> .bashrc
  4. Compile the pdftools R-package inside R-shell:

  5. Test it from R-shell with any pdf-file

    > pdftools::pdf_data(pdf="/usr/share/cups/data/default.pdf")
    [1] width  height x      y      space  text  
    <0 rows> (or 0-length row.names)

Note: I tested this method on my clean Ubuntu 18.04 LTS VM with both R 3.4 and 3.5.2 from R-shell and from RStudio.

  • 1
    Awesome, thank you! Excellent instructions. In my case the missing step was setting R_LD_LIBRARY_PATH and then reinstalling pdftools. – Robert McDonald Jan 26 at 17:04

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.