Poppler Qt5  21.12.0
The Poppler Qt5 interface library

The Poppler Qt5 interface library, libpoppler-qt5, is a library that allows Qt5 programmers to easily load and render PDF files. The Poppler Qt5 interface library uses poppler internally to do its job, but the Qt5 programmer will never have to worry about poppler internals.

Current Status

The Poppler Qt5 interface library is quite stable and working.

Example Programs

Examples programs can be found in the qt5/test directory. The Poppler Qt5 interface library is also used in the KDE's document viewer Okular. The source files for Okular's PDF plugin (Poppler-based) can be found on the git server of the KDE project, under this URL.

How to use the Poppler Qt5 interface library in three easy steps

Programmer who would like to use the Poppler Qt5 interface library simply need to add the following line to their C++ source files:

#include <poppler-qt5.h>

A PDF document can then be loaded as follows:

QString filename;
if (!document || document->isLocked()) {
// ... error message ....
delete document;
PDF document.
Definition: poppler-qt5.h:1143
bool isLocked() const
Determine if the document is locked.
static Document * load(const QString &filePath, const QByteArray &ownerPassword=QByteArray(), const QByteArray &userPassword=QByteArray())
Load the document from a file on disk.

Pages can be rendered to QImages with the following commands:

// Paranoid safety check
if (document == 0) {
// ... error message ...
// Access page of the PDF file
Poppler::Page* pdfPage = document->page(pageNumber); // Document starts at page 0
if (pdfPage == 0) {
// ... error message ...
// Generate a QImage of the rendered page
QImage image = pdfPage->renderToImage(xres, yres, x, y, width, height);
if (image.isNull()) {
// ... error message ...
// ... use image ...
// after the usage, the page must be deleted
delete pdfPage;
Page * page(int index) const
Get a specified Page.
A page in a document.
Definition: poppler-qt5.h:433
QImage renderToImage(double xres=72.0, double yres=72.0, int x=-1, int y=-1, int w=-1, int h=-1, Rotation rotate=Rotate0) const
Render the page to a QImage using the current Document renderer.

Finally, don't forget to destroy the document:

delete document;