#pragma once #include #include #include #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 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; }; }