Poppler  — библиотека для работы с PDF файлами для Linux, Windows, Mac.

Готовая к употреблению сборка здесь: http://sourceforge.net/projects/poppler-win32/

HOW-TO по компиляции.

Для начала, скачаем всё необходимое

Распаковываем архивы.

Для удобства, основной путь у меня такой: C:\Qt\Projects\poppler  и в дальнейшем я отталкиваюсь именно от этой папки.

Архивы распаковываем в папку tools, каждый в отдельную папочку.

Так же для компиляции нам понадобится CMake, MinGW  устанавливать «по умолчанию»

MinGW можно использовать тот, что идёт вместе с QT либо ту же версию, что и при ручной сборке QT.

Так же потребуются исходники QT (Отмечать галку при установке)

Возьмём с Гита сам poppler:

Открываем консольку и переходим в директорию для загрузки.

[cce lang=»bash»] cd C:\Qt\Projects\poppler
git clone git://anongit.freedesktop.org/poppler/poppler
[/cce]

Ждём окончания загрузки.

Добавим необходимые пути в PATH

[cce lang=»bash»] set PATH=C:\MinGw\bin\;%PATH%
set PATH=C:\Qt\Qt5.1.0\qt5\qtbase\bin;%PATH%
[/cce]

Cкомпилируем сначала OpenJpeg     Если Вы качали по ссылке выше, то в архиве уже скомпилированная версия.

[cce lang=»bash»] cd  C:\Qt\Projects\poppler\tools\openjpeg
cmake -G «MinGW Makefiles»  C:\Qt\Projects\poppler\tools\openjpeg
mingw32-make
[/cce]

Дальше создадим файлик c переменными, чтобы cmake знал где искать библиотеки.

Файл c:\Qt\projects\poppler\init.txt

[cce lang=»bash»]

##############################################################################
SET(FREETYPE_LIBRARY «C:\Qt\Projects\poppler\tools\freetype\lib\freetype.lib» CACHE PATH «» FORCE)
SET(FREETYPE_INCLUDE_DIR_ft2build «C:\Qt\Projects\poppler\tools\freetype\include» CACHE PATH «» FORCE)
SET(FREETYPE_INCLUDE_DIR_freetype2 «C:\Qt\Projects\poppler\tools\freetype\include\freetype2» CACHE PATH «» FORCE)
SET(FREETYPE_INCLUDE_DIRS «C:\Qt\Projects\poppler\tools\freetype\include» CACHE PATH «» FORCE)

SET(CAIRO_INCLUDE_DIRS «C:\Qt\Projects\poppler\tools\cairo\include\cairo» CACHE PATH «» FORCE)
SET(CAIRO_LIBRARIES «C:\Qt\Projects\poppler\tools\cairo\lib\cairo.lib» CACHE PATH «» FORCE)

SET(LIBOPENJPEG_INCLUDE_DIR «C:\Qt\Projects\poppler\tools\openjpeg\include\openjpeg-1.5» CACHE PATH «» FORCE)
SET(LIBOPENJPEG_LIBRARIES «C:\Qt\Projects\poppler\tools\openjpeg\lib\openjpeg.lib» CACHE PATH «» FORCE)
SET(ZLIB_INCLUDE_DIR «C:\Qt\Projects\poppler\tools\zlib\include» CACHE PATH «» FORCE)
SET(ZLIB_LIBRARY «C:\Qt\Projects\poppler\tools\zlib\lib\zdll.lib» CACHE PATH «» FORCE)

SET(WITH_Iconv OFF CACHE BOOl «» FORCE)
SET(WITH_PNG OFF CACHE BOOl «» FORCE)
SET(WITH_GLIB OFF CACHE BOOl «» FORCE)

[/cce]

Ну и скомпилируем сам Poppler

[cce lang=»bash»] cd  C:\Qt\Projects\poppler\poppler\
cmake  -C «C:\Qt\Projects\poppler\init.txt» -G «MinGW Makefiles»  c:\Qt\projects\poppler\poppler
mingw32-make
[/cce]

Должно всё пройти нормально…

Подключение: 

В файле .pro проекта прописать

[cce lang=»c++»] INCLUDEPATH += C:/Qt/Projects/poppler/poppler/qt5/src/
>LIBS += -LC:/Qt/Projects/poppler/poppler/qt5/src/ -llibpoppler-qt5
[/cce] Ну и в коде не забыть

[cce lang=»c++»] #include <poppler-qt5.h>
[/cce]

Кстати, библиотеку libpoppler.dll и libpoppler-qt5.dll надо кинуть к экзешнику проги.

Примеры будут позже отдельным топиком.

 

Может ругаться на файл  gfile.cc,  строку 603 и еще парочку (LARGE_INTEGER), надо просто обернуть значение в {фигурные скобки}

Так же ругнётся на «Нет декларации GetFileSizeEx«, в верху файла, после комментов вписать:

#define _WIN32_WINNT 0x0501
#include <windows.h>

Не может найти fontconfig.h ?

Качаем Fontconfig открываем архив и копируем папку include/fontconfig   в   C:\Qt\Projects\poppler\tools\cairo\include\cairo\

Будет ругаться «нет декларации в этой области видимости <sleep>» заменить на MyThread::msleep и выше функции прописать struct MyThread : public QThread { using QThread::msleep;};