/*************************************************************************** * Copyright (C) 2006 by Pino Toscano * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * ***************************************************************************/ #ifndef _GENERATOR_DJVU_H_ #define _GENERATOR_DJVU_H_ #include #include #include "kdjvu.h" namespace Okular { class Annotation; class ObjectRect; } class DjVuGenerator : public Okular::Generator { Q_OBJECT public: DjVuGenerator( QObject *parent, const QVariantList &args ); ~DjVuGenerator(); bool loadDocument( const QString & fileName, QVector & pagesVector ); // document information const Okular::DocumentInfo * generateDocumentInfo(); const Okular::DocumentSynopsis * generateDocumentSynopsis(); QVariant metaData( const QString & key, const QVariant & option ) const; // export as PostScript Okular::ExportFormat::List exportFormats() const; bool exportTo( const QString &fileName, const Okular::ExportFormat &format ); protected: bool doCloseDocument(); // pixmap generation QImage image( Okular::PixmapRequest *request ); Okular::TextPage* textPage( Okular::Page *page ); private: void loadPages( QVector & pagesVector, int rotation ); Okular::ObjectRect* convertKDjVuLink( int page, KDjVu::Link * link ) const; Okular::Annotation* convertKDjVuAnnotation( int w, int h, KDjVu::Annotation * ann ) const; KDjVu *m_djvu; Okular::DocumentInfo *m_docInfo; Okular::DocumentSynopsis *m_docSyn; }; #endif