blob: bc3becba3b2f4017cebe5cddb9217c3882433843 [file] [log] [blame]
@mainpage 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
@section help Current Status
The %Poppler Qt5 interface library is quite stable and working.
@section refimpl 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 <a href="">Okular</a>. The source files
for Okular's PDF plugin (%Poppler-based) can be found on the git server
of the KDE project, under
@section req 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>
To use the Qt5 interface on Android, there is an additional step - you must place the following font files in the assets/share/fonts directory of the Android APK:
- NimbusMonoPS-Regular.otf
- NimbusMonoPS-Bold.otf
- NimbusMonoPS-BoldItalic.otf
- NimbusMonoPS-Italic.otf
- NimbusSans-Regular.otf
- NimbusSans-Bold.otf
- NimbusSans-BoldItalic.otf
- NimbusSans-Italic.otf
- StandardSymbolsPS.otf
- NimbusRoman-Bold.otf
- imbusRoman-BoldItalic.otf
- NimbusRoman-Italic.otf
- NimbusRoman-Regular.otf
- D050000L.otf
These are used as substitute fonts for the base-14 fonts, and this step is required in order to reliably display documents with unembedded fonts. You can easily find these font files included within GhostScript.
A PDF document can then be loaded as follows:
QString filename;
Poppler::Document* document = Poppler::Document::load(filename);
if (!document || document->isLocked()) {
// ... error message ....
delete document;
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;
Finally, don't forget to destroy the document:
delete document;