Subversion Repositories Scribus

Rev

Rev 4178 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3 paul 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
#include <qstring.h>
21
#include <qrect.h>
22
#include <qvaluelist.h>
23
#include <qimage.h>
24
#include "pageitem.h"
25
#include "scribusview.h"
26
#include "bookmwin.h"
26 Franz 27
#include "scribus.h"
3 paul 28
#include <qfile.h>
29
 
30
/**
31
  *@author Franz Schmid
32
  */
33
 
26 Franz 34
class PDFlib : public QObject
35
{
296 Franz 36
        Q_OBJECT
3 paul 37
 
26 Franz 38
public:
3 paul 39
        PDFlib();
80 Franz 40
        ~PDFlib() {};
26 Franz 41
        bool PDF_Begin_Doc(QString fn, ScribusDoc *docu, ScribusView *vie, PDFOpt *opts, SCFonts &AllFonts, QMap<QString,QFont> DocFonts, BookMView* vi);
42
        void PDF_Begin_Page(Page* pag, QPixmap pm = 0);
43
        void PDF_End_Page();
469 fschmid 44
        void PDF_TemplatePage(Page* pag, bool clip = false);
45
        void PDF_ProcessPage(Page* pag, uint PNr, bool clip = false);
26 Franz 46
        void PDF_End_Doc(QString PrintPr = "", QString Name = "", int Components = 0);
296 Franz 47
        struct GlNamInd
48
        {
49
                uint Code;
50
                QString Name;
51
        };
3 paul 52
        typedef QMap<uint, GlNamInd> GListeInd;
53
        QMap<QString, GListeInd> GlyphsIdxOfFont;
296 Franz 54
 
3 paul 55
private:
26 Franz 56
        QString EncStream(QString *in, int ObjNum);
57
        QString EncString(QString in, int ObjNum);
58
        void CalcOwnerKey(QString Owner, QString User);
59
        void CalcUserKey(QString User, int Permission);
60
        QString FitKey(QString pass);
80 Franz 61
        QString FToStr(double c);
26 Franz 62
        QString IToStr(int c);
27 Franz 63
        QString setStrokeMulti(struct singleLine *sl);
243 Franz 64
        QString SetClipPath(PageItem *ite, bool poly = true);
4178 fschmid 65
        QString putColor(QString farbe, int Shade, bool fill);
4594 fschmid 66
        QString SetFarbeGrad(QString farbe, int Shade);
26 Franz 67
        QString SetFarbe(QString farbe, int Shade);
68
        QString setTextSt(PageItem *ite, uint PNr);
69
        void PutDoc(QString in);
70
        void PutPage(QString in);
71
        void StartObj(int nr);
72
        void WritePDFStream(QString *cc);
73
        QString PDFEncode(QString in);
74
        QByteArray ComputeMD5(QString in);
80 Franz 75
        void PDF_Bookmark(int nr, double ypos);
26 Franz 76
        void PDF_Gradient(PageItem *b);
308 Franz 77
        void PDF_DoLinGradient(PageItem *b, QValueList<double> Stops, QValueList<double> Trans, QStringList Colors);
26 Franz 78
        void PDF_Transparenz(PageItem *b);
666 fschmid 79
        void PDF_Annotation(PageItem *ite);
26 Franz 80
        void PDF_Form(QString im);
296 Franz 81
        void PDF_xForm(double w, double h, QString im);
80 Franz 82
        void PDF_Image(bool inver, QString fn, double sx, double sy, double x, double y, bool fromAN = false, QString Profil = "", bool Embedded = false, int Intent = 1);
3 paul 83
        QString Inhalt;
188 Franz 84
        ScribusDoc* doc;
85
        ScribusView* view;
86
        Page* ActPageP;
87
        PDFOpt* Options;
88
        BookMView* Bvie;
3 paul 89
        QFile Spool;
90
        int Dokument;
296 Franz 91
        struct Dest
92
        {
93
                QString Name;
94
                int Seite;
95
                QString Act;
96
        };
97
        struct Cata
98
        {
99
                int Outlines;
100
                int PageTree;
101
                int Dest;
102
        }
103
        Catalog;
104
        struct PagT
105
        {
106
                QValueList<int> Kids;
107
                int Count;
108
        }
109
        PageTree;
110
        struct PagL
111
        {
112
                int ObjNum;
113
                int Thumb;
114
                QMap<QString,int> XObjects;
2073 fschmid 115
                QMap<QString,int> ImgObjects;
296 Franz 116
                QMap<QString,int> FObjects;
117
                QValueList<int> AObjects;
118
                QValueList<int> FormObjects;
119
        }
120
        Seite;
121
        struct OutL
122
        {
123
                int First;
124
                int Last;
125
                int Count;
126
        }
127
        Outlines;
128
        struct Bead
129
        {
130
                int Parent;
131
                int Next;
132
                int Prev;
133
                int Page;
134
                QRect Recht;
135
        };
136
        struct ICCD
137
        {
138
                int ResNum;
139
                QString ResName;
140
                QString ICCArray;
141
        };
142
        struct ShIm
143
        {
144
                int ResNum;
145
                int Width;
146
                int Height;
147
                double aufl;
148
                double sxa;
149
                double sya;
150
                double xa;
151
                double ya;
152
        };
219 Franz 153
        QMap<QString,ShIm> SharedImages;
3 paul 154
        QValueList<uint> XRef;
155
        QValueList<Dest> NamedDest;
156
        QValueList<int> Threads;
157
        QValueList<Bead> Beads;
158
        QValueList<int> CalcFields;
159
        QMap<QString,int> Shadings;
160
        QMap<QString,int> Transpar;
161
        QMap<QString,ICCD> ICCProfiles;
162
        int ObjCounter;
163
        QString ResNam;
164
        int ResCount;
165
        QString NDnam;
166
        QString Datum;
167
        int NDnum;
168
        QMap<QString, QString> UsedFontsP;
169
        QMap<QString, QFont> RealFonts;
170
        bool CompAvail;
171
        QByteArray KeyGen;
172
        QByteArray OwnerKey;
173
        QByteArray UserKey;
174
        QByteArray FileID;
175
        QByteArray EncryKey;
176
        int Encrypt;
177
        int KeyLen;
332 Franz 178
        QString HTName;
395 Franz 179
        bool BookMinUse;
3 paul 180
};
181
 
182
#endif