A Python binding to poppler-cpp

pdf, poppler, poppler-cpp, poppler-library, pybind11, python, python-poppler
pip install python-poppler==0.4.1


Python build and tests Code style: black


python-poppler is a Python binding to the poppler-cpp library. It allows to read, render, or modify PDF documents. More specifically, it currently allows to:

  • read an modify document meta data;
  • list and read embedded documents;
  • list the fonts used by the document;
  • search or extract text on a given page of the document;
  • render a page to a raw image;
  • get info about transitions effects between the pages;
  • read the table of contents of the document.


Documentation is currently a work-in-progress. Here you will find information about installation of the package, compilation from sources, and usage.

Meanwhile, because it follows the interface of poppler-cpp, you can refer to the documentation of the C++ library.


The package is installed as poppler.


from poppler import load_from_file, PageRenderer

pdf_document = load_from_file("sample.pdf")
page_1 = pdf_document.create_page(0)
page_1_text = page_1.text()

renderer = PageRenderer()
image = renderer.render_page(page_1)
image_data =


Contributions are welcome.

Please use the GitHub issue tracker to report bugs or request features. You can also submit Pull requests.

Code is formatted using black. Ensure that everything is well formatted. You can use

tox -e lint

to lint your code.

Please ensure that all tests pass, by running tox.

Please provide unit tests covering the new feature, or proving that a bug is corrected, when possible.