50 lines
1.0 KiB
C++
Executable File
50 lines
1.0 KiB
C++
Executable File
|
|
|
|
#pragma once
|
|
#include <QWidget>
|
|
#include <memory>
|
|
#include <poppler/qt6/poppler-qt6.h>
|
|
|
|
#include "nglwidgets_export.h"
|
|
|
|
class QUrl;
|
|
namespace Ui
|
|
{
|
|
class pdfWidget;
|
|
}
|
|
|
|
namespace NGL
|
|
{
|
|
class NGLWIDGETS_EXPORT PDFWidget : public QWidget
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit PDFWidget(QWidget *parent = nullptr);
|
|
~PDFWidget();
|
|
|
|
bool showPDF(const QUrl &pdf);
|
|
bool showPDF(const QByteArray &pdf);
|
|
void setZoomFactor(double newZoomFactor);
|
|
void setRotation(Poppler::Page::Rotation rot);
|
|
bool setPage(int newPage);
|
|
QVector<QImage> getPrintableImages(int resolution = 300) const;
|
|
void resizePdfToWidth();
|
|
int numPages() const;
|
|
int curPage() const;
|
|
|
|
Q_SIGNALS:
|
|
void currentPageChanged(int cur, int max);
|
|
void rotationChanged(Poppler::Page::Rotation newRotation);
|
|
protected Q_SLOTS:
|
|
void pageChanged(int cur, int max);
|
|
void rotate();
|
|
void onZoomDefault();
|
|
void onZoomFull();
|
|
void onZoomMinus();
|
|
void onZoomPlus();
|
|
protected:
|
|
double m_zoomFactor{1.0};
|
|
std::unique_ptr<Ui::pdfWidget> ui;
|
|
};
|
|
}
|