Subversion Repositories Scribus

Rev

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