Документация
ОС Аврора 5.1.5

AmberPDF

AmberPDF является оболочкой для PDFium, которая позволяет использовать PDFium в Qt. PDFium — это библиотека для создания и рендеринга PDF. PDFium не поддерживает многопоточность, и многие методы возвращают QFuture<>.

Подключение к проекту

В файле .spec должна быть указана зависимость сборки:

BuildRequires:  pkgconfig(amberpdf)

В файл .pro нужно добавить:

CONFIG += link_pkgconfig
PKGCONFIG += amberpdf

Использование PdfDocument

Подключение заголовочного файла:

#include <amberpdf/pdfdocument.h>

Создание и загрузка pdf документа и подсчет количества страниц документа:

auto documentProvider = new PdfDocument();
connect(documentProvider, &PdfDocument::statusChanged, this, [this](PdfDocument::DocumentStatus status) {
    if (status == BaseDocument::DocumentStatus::Ready) {
        // document load succesfully
    } else {
        qDebug() << "Document load error" << status;
    }
});

connect(documentProvider, &PdfDocument::pageCountChanged, this, [this](int pageCount) {
    if (status == BaseDocument::DocumentStatus::Ready)
        qDebug() << "Document have" << pageCount << "pages";
});

documentProvider->setPath("path/to/the/pdf/document.pdf");

Использование PdfPage

Подключение заголовочного файла:

#include <amberpdf/pdfpage.h>

Загрузка PdfPage, блокирующий метод:

auto pageFuture = m_document->page(m_pageIndex);
pageFuture.waitForFinished();
if (pageFuture.isFinished() && !pageFuture.isCanceled())
    qDebug() << "page load successfuly";

или, используя QFutureWatcher:

auto watcher = new QFutureWatcher<QSharedPointer<PdfPage>>();
watcher->setFuture(m_pdfiumDocument->page(1));
connect(watcher, &QFutureWatcher<QSharedPointer<PdfPage>>::finished, this, [this]() {
    auto page = watcher->result();
});

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.