File indexing completed on 2024-05-12 16:06:48

0001 /*
0002     SPDX-FileCopyrightText: 2006 Pino Toscano <toscano.pino@tiscali.it>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef _OKULAR_GENERATOR_TIFF_H_
0008 #define _OKULAR_GENERATOR_TIFF_H_
0009 
0010 #include <core/generator.h>
0011 
0012 #include <QHash>
0013 #include <QLoggingCategory>
0014 
0015 class TIFFGenerator : public Okular::Generator
0016 {
0017     Q_OBJECT
0018     Q_INTERFACES(Okular::Generator)
0019 public:
0020     TIFFGenerator(QObject *parent, const QVariantList &args);
0021     ~TIFFGenerator() override;
0022 
0023     bool loadDocument(const QString &fileName, QVector<Okular::Page *> &pagesVector) override;
0024     bool loadDocumentFromData(const QByteArray &fileData, QVector<Okular::Page *> &pagesVector) override;
0025 
0026     Okular::DocumentInfo generateDocumentInfo(const QSet<Okular::DocumentInfo::Key> &keys) const override;
0027 
0028     Okular::Document::PrintError print(QPrinter &printer) override;
0029 
0030 protected:
0031     bool doCloseDocument() override;
0032     QImage image(Okular::PixmapRequest *request) override;
0033 
0034 private:
0035     class Private;
0036     Private *const d;
0037 
0038     bool loadTiff(QVector<Okular::Page *> &pagesVector, const char *name);
0039     void loadPages(QVector<Okular::Page *> &pagesVector);
0040     int mapPage(int page) const;
0041 
0042     QHash<int, int> m_pageMapping;
0043 };
0044 
0045 Q_DECLARE_LOGGING_CATEGORY(OkularTiffDebug)
0046 
0047 #endif