kviewshell
djvurenderer.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _DJVURENDERER_H_
00025 #define _DJVURENDERER_H_
00026
00027 #include <kprogress.h>
00028 #include <qpixmap.h>
00029
00030 #include "DjVuImage.h"
00031 #include "DjVuDocEditor.h"
00032 #include "DjVuText.h"
00033 #include "DjVuToPS.h"
00034 #include "ByteStream.h"
00035
00036 #include "documentRenderer.h"
00037
00038 class RenderedDocumentPage;
00039
00051 class DjVuRenderer : public DocumentRenderer
00052 {
00053 Q_OBJECT
00054
00055 public:
00060 DjVuRenderer(QWidget* parent);
00061
00068 ~DjVuRenderer();
00069
00080 virtual bool setFile(const QString& fname, const KURL &);
00081
00086 virtual void drawPage(double res, RenderedDocumentPage* page);
00087
00093 virtual void getText(RenderedDocumentPage* page);
00094
00095 virtual bool supportsTextSearch() const { return true; };
00096
00113 bool convertToPSFile( DjVuToPS &converter, QString filename, QValueList<int> &pageList );
00114
00116 void deletePages(Q_UINT16 from, Q_UINT16 to);
00117
00119 bool save(const QString &filename);
00120
00121 private:
00122
00123
00124
00125
00126 bool initializeDocument();
00127
00128 void getAnnotations(RenderedDocumentPage* page, GP<DjVuImage> djvuPage);
00129
00130 bool getPageInfo(GP<DjVuFile> file, int& width, int& height, int& dpi);
00131
00132 GP<DjVuTXT> getText(PageNumber pageNumber);
00133
00134 void fillInText(RenderedDocumentPage* page, const GP<DjVuTXT>& text, DjVuTXT::Zone& zone, QSize& djvuPageSize);
00135
00136 GP<DjVuDocEditor> document;
00137
00140 static void printerInfoCallBack(int page_num, int page_count, int tot_pages, DjVuToPS::Stage, void *);
00141
00142 QPixmap pixmap;
00143 GP<ByteStream> PPMstream;
00144 };
00145
00146 #endif