diff --git a/img/about.png b/img/about.png new file mode 100644 index 0000000..766b8da Binary files /dev/null and b/img/about.png differ diff --git a/img/export.png b/img/export.png new file mode 100644 index 0000000..4bf2cba Binary files /dev/null and b/img/export.png differ diff --git a/img/exportall.png b/img/exportall.png new file mode 100644 index 0000000..50011dd Binary files /dev/null and b/img/exportall.png differ diff --git a/img/hpdf.png b/img/hpdf.png new file mode 100644 index 0000000..bdf001a Binary files /dev/null and b/img/hpdf.png differ diff --git a/src/pdf_file.cpp b/src/pdf_file.cpp new file mode 100644 index 0000000..56affc5 --- /dev/null +++ b/src/pdf_file.cpp @@ -0,0 +1,29 @@ +#include <QtGlobal> +#include <QtWidgets> +#include "pdf_file.h" + +PDFFile::PDFFile(const QString& fileName) { + /* Load PDF file. */ + document = Poppler::Document::load(fileName); + if(!document || document->isLocked()) { + delete document; + } +} + +QImage* PDFFile::getPageImage(int pageNumber) { + if(document == 0) + return NULL; + + Poppler::Page* pdfPage = document->page(pageNumber); + + if(pdfPage == 0) + return NULL; + + QImage* image = new QImage(); + *image = pdfPage->renderToImage(); + + delete pdfPage; + + return image; +} + diff --git a/src/pdf_file.h b/src/pdf_file.h new file mode 100644 index 0000000..2cd240b --- /dev/null +++ b/src/pdf_file.h @@ -0,0 +1,18 @@ +#pragma once +#include <QObject> +#include <poppler-qt5.h> + +class QString; +class QImage; + +class PDFFile : public QObject { + Q_OBJECT +public: + PDFFile(const QString& fileName); + QImage* getPageImage(int pageNumber); + +private: + Poppler::Document* document; + QString fileName; +}; + diff --git a/src/pdf_page_widget.cpp b/src/pdf_page_widget.cpp new file mode 100644 index 0000000..4a09511 --- /dev/null +++ b/src/pdf_page_widget.cpp @@ -0,0 +1,20 @@ +#include <QtWidgets> +#include "pdf_page_widget.h" + +PDFPageWidget::PDFPageWidget(QWidget* parent) : + QWidget(parent) { + + this->resize(500, 600); +} + +void PDFPageWidget::setPageImage(QImage* pageImage) { + image = pageImage; + pixmap = QPixmap::fromImage(*image); + update(); +} + +void PDFPageWidget::paintEvent(QPaintEvent* event) { + QPainter painter(this); + painter.drawPixmap(QRect(0, 0, pixmap.width(), pixmap.height()), pixmap); +} + diff --git a/src/pdf_page_widget.h b/src/pdf_page_widget.h new file mode 100644 index 0000000..bb3e35d --- /dev/null +++ b/src/pdf_page_widget.h @@ -0,0 +1,21 @@ +#pragma once +#include <QWidget> + +class QImage; +class QPixmap; +class QPaintEvent; + +class PDFPageWidget : public QWidget { + Q_OBJECT +public: + PDFPageWidget(QWidget* parent = 0); + void setPageImage(QImage* pageImage); + +protected: + void paintEvent(QPaintEvent* event); + +private: + QImage* image; + QPixmap pixmap; +}; +