Subversion Repositories Scribus

Rev

Rev 4017 | Rev 4030 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3133 fschmid 1
/***************************************************************************
2
                          pdflib.h  -  description
3
                             -------------------
4
    begin                : Sat Jan 19 2002
5
    copyright            : (C) 2002 by Franz Schmid
6
    email                : Franz.Schmid@altmuehlnet.de
7
 ***************************************************************************/
8
 
9
/***************************************************************************
10
 *                                                                         *
11
 *   This program is free software; you can redistribute it and/or modify  *
12
 *   it under the terms of the GNU General Public License as published by  *
13
 *   the Free Software Foundation; either version 2 of the License, or     *
14
 *   (at your option) any later version.                                   *
15
 *                                                                         *
16
 ***************************************************************************/
17
 
18
#ifndef PDFLIB_H
19
#define PDFLIB_H
20
 
21
#include "qvaluelist.h"
22
#include <qfile.h>
3699 cbradney 23
#include <vector>
3133 fschmid 24
 
25
class QString;
26
class QRect;
27
class QImage;
28
class QProgressBar;
29
class PageItem;
30
class BookMItem;
31
class BookMView;
32
class ScribusDoc;
33
class Page;
34
class PDFOptions;
3252 craig 35
class PrefsContext;
4028 cbradney 36
class MultiProgressDialog;
3699 cbradney 37
 
3133 fschmid 38
#include "scribusstructs.h"
39
 
40
/**
41
  *@author Franz Schmid
42
  */
43
 
44
class SCRIBUS_API PDFlib : public QObject
45
{
46
        Q_OBJECT
47
 
48
public:
3137 fschmid 49
        PDFlib(ScribusDoc *docu);
3133 fschmid 50
        ~PDFlib() {};
3829 cbradney 51
        bool doExport(const QString& fn, const QString& nam, int Components, std::vector<int> &pageNs, QMap<int,QPixmap> thumbs, QProgressBar *dia2);
52
        bool PDF_Begin_Doc(const QString& fn, PDFOptions *opts, SCFonts &AllFonts, QMap<QString,int> DocFonts, BookMView* vi);
3133 fschmid 53
        void PDF_Begin_Page(Page* pag, QPixmap pm = 0);
54
        void PDF_End_Page();
55
        void PDF_TemplatePage(Page* pag, bool clip = false);
56
        void PDF_ProcessPage(Page* pag, uint PNr, bool clip = false);
3829 cbradney 57
        void PDF_End_Doc(const QString& PrintPr = "", const QString& Name = "", int Components = 0);
4028 cbradney 58
        void closeAndCleanup();
3133 fschmid 59
        struct GlNamInd
60
        {
61
                uint Code;
62
                QString Name;
63
        };
64
        typedef QMap<uint, GlNamInd> GListeInd;
65
        QMap<QString, GListeInd> GlyphsIdxOfFont;
66
 
67
private:
68
        QString EncStream(QString *in, int ObjNum);
69
        QString EncString(QString in, int ObjNum);
70
        void CalcOwnerKey(QString Owner, QString User);
71
        void CalcUserKey(QString User, int Permission);
72
        QString FitKey(QString pass);
73
        QString FToStr(double c);
74
        QString IToStr(int c);
75
        QString setStrokeMulti(struct SingleLine *sl);
76
        QString SetClipPathArray(FPointArray *ite, bool poly = true);
77
        QString SetClipPathImage(PageItem *ite);
78
        QString SetClipPath(PageItem *ite, bool poly = true);
3829 cbradney 79
        QString SetFarbe(const QString& farbe, int Shade);
80
        QString putColor(const QString& color, int Shade, bool fill);
3133 fschmid 81
        QString PDF_ProcessItem(PageItem* ite, Page* pag, uint PNr, bool embedded = false);
82
        QString setTextSt(PageItem *ite, uint PNr, Page* pag);
83
        void setTextCh(PageItem *ite, uint PNr, uint d,  QString &tmp, QString &tmp2, struct ScText *hl, Page* pag);
84
        void PutDoc(QString in);
85
        void PutPage(QString in);
86
        void StartObj(int nr);
87
        void WritePDFStream(QString *cc);
88
        QString PDFEncode(QString in);
3829 cbradney 89
        QByteArray ComputeMD5(const QString& in);
3133 fschmid 90
        void PDF_Bookmark(int nr, double ypos);
91
        QString PDF_Gradient(PageItem *currItem);
3829 cbradney 92
        QString PDF_DoLinGradient(PageItem *currItem, QValueList<double> Stops, QValueList<double> Trans, const QStringList& Colors);
3133 fschmid 93
        QString PDF_Transparenz(PageItem *currItem);
94
        void PDF_Annotation(PageItem *ite, uint PNr);
3829 cbradney 95
        void PDF_Form(QString& im);
3133 fschmid 96
        void PDF_xForm(double w, double h, QString im);
3829 cbradney 97
        QString PDF_Image(PageItem* c, const QString& fn, double sx, double sy, double x, double y, bool fromAN = false, const QString& Profil = "", bool Embedded = false, int Intent = 1);
3133 fschmid 98
        QString Inhalt;
99
        ScribusDoc* doc;
100
        Page* ActPageP;
101
        PDFOptions* Options;
102
        BookMView* Bvie;
103
        QFile Spool;
104
        int Dokument;
105
        struct Dest
106
        {
107
                QString Name;
108
                int Seite;
109
                QString Act;
110
        };
111
        struct Cata
112
        {
113
                int Outlines;
114
                int PageTree;
115
                int Dest;
116
        }
117
        Catalog;
118
        struct PagT
119
        {
120
                QValueList<int> Kids;
121
                int Count;
122
        }
123
        PageTree;
124
        struct PagL
125
        {
126
                int ObjNum;
127
                int Thumb;
128
                QMap<QString,int> XObjects;
129
                QMap<QString,int> ImgObjects;
130
                QMap<QString,int> FObjects;
131
                QValueList<int> AObjects;
132
                QValueList<int> FormObjects;
133
        }
134
        Seite;
135
        struct OutL
136
        {
137
                int First;
138
                int Last;
139
                int Count;
140
        }
141
        Outlines;
142
        struct Bead
143
        {
144
                int Parent;
145
                int Next;
146
                int Prev;
147
                int Page;
148
                QRect Recht;
149
        };
150
        struct ICCD
151
        {
152
                int ResNum;
153
                QString ResName;
154
                QString ICCArray;
155
        };
156
        struct ShIm
157
        {
158
                int ResNum;
159
                int Width;
160
                int Height;
161
                double aufl;
162
                double sxa;
163
                double sya;
164
                double xa;
165
                double ya;
166
        };
167
        struct OCGInfo
168
        {
169
                int ObjNum;
170
                bool visible;
171
                QString Name;
172
        };
173
        struct SpotC
174
        {
175
                int ResNum;
176
                QString ResName;
177
        };
178
        QMap<QString,ShIm> SharedImages;
179
        QValueList<uint> XRef;
180
        QValueList<Dest> NamedDest;
181
        QValueList<int> Threads;
182
        QValueList<Bead> Beads;
183
        QValueList<int> CalcFields;
184
        QMap<QString,int> Shadings;
185
        QMap<QString,int> Transpar;
186
        QMap<QString,ICCD> ICCProfiles;
187
        QMap<QString, OCGInfo> OCGEntries;
188
        int ObjCounter;
189
        QString ResNam;
190
        int ResCount;
191
        QString NDnam;
192
        QString Datum;
193
        int NDnum;
194
        QMap<QString, QString> UsedFontsP;
3544 avox 195
        QMap<QString, int> RealFonts;
3133 fschmid 196
        bool CompAvail;
197
        QByteArray KeyGen;
198
        QByteArray OwnerKey;
199
        QByteArray UserKey;
200
        QByteArray FileID;
201
        QByteArray EncryKey;
202
        int Encrypt;
203
        int KeyLen;
204
        QString HTName;
205
        bool BookMinUse;
206
        ColorList colorsToUse;
207
        QMap<QString, SpotC> spotMap;
208
        QString spotNam;
209
        int spotCount;
3829 cbradney 210
        QTextStream t;
4017 fschmid 211
        QMap<QString, QString> StdFonts;
4028 cbradney 212
        MultiProgressDialog* progressDialog;
213
        bool usingGUI;
214
        bool abortExport;
215
 
216
protected slots:
217
        void cancelRequested();
3133 fschmid 218
};
219
 
220
#endif
221