/usr/include/scribus/pslib.h is in scribus-dev 1.4.6+dfsg-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 | /*
For general Scribus (>=1.3.2) copyright and licensing information please refer
to the COPYING file provided with the program. Following this notice may exist
a copyright and/or license notice that predates the release of Scribus 1.3.2
for which a new license (GPL+exception) is in place.
*/
/***************************************************************************
pslib.h - description
-------------------
begin : Sat May 26 2001
copyright : (C) 2001 by Franz Schmid
email : Franz.Schmid@altmuehlnet.de
***************************************************************************/
/***************************************************************************
* *
* 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 PSLIB_H
#define PSLIB_H
#include <vector>
#include <utility>
#include <QDataStream>
#include <QFile>
#include <QList>
#include <QPen>
#include <QString>
class ScribusDoc;
#include "page.h"
#include "scribusapi.h"
#include "scribusstructs.h"
#include "colormgmt/sccolormgmtengine.h"
#ifdef NLS_PROTO
class ScText;
#endif
class PageItem;
class MultiProgressDialog;
class ScImage;
/**
*@author Franz Schmid
* Diese Klasse erzeugt Postscript-Dateien
*/
class SCRIBUS_API PSLib : public QObject
{
Q_OBJECT
public:
typedef enum
{
OptimizeCompat = 0,
OptimizeSize = 1
} Optimization;
PSLib(PrintOptions &options, bool psart, SCFonts &AllFonts, QMap<QString, QMap<uint, FPointArray> > DocFonts, ColorList DocColors, bool pdf = false, bool spot = true);
virtual ~PSLib() {};
void setOptimization (Optimization opt) { optimization = opt; }
virtual int CreatePS(ScribusDoc* Doc, PrintOptions &options);
virtual const QString& errorMessage(void);
virtual void PS_Error(const QString& message);
virtual void PS_Error_ImageDataWriteFailure(void);
virtual void PS_Error_ImageLoadFailure(const QString& fileName);
virtual void PS_Error_MaskLoadFailure(const QString& fileName);
virtual void PS_Error_InsufficientMemory(void);
virtual bool PS_set_file(QString fn);
virtual void PS_set_Info(QString art, QString was);
virtual bool PS_begin_doc(ScribusDoc *doc, double x, double y, double breite, double hoehe, int numpage, bool doDev, bool sep, bool farb);
virtual void PS_begin_page(Page* pg, MarginStruct* Ma, bool Clipping);
virtual void PS_end_page();
virtual void PS_curve(double x1, double y1, double x2, double y2, double x3, double y3);
virtual void PS_moveto(double x, double y);
virtual void PS_lineto(double x, double y);
virtual void PS_closepath();
virtual void PS_translate(double x, double y);
virtual void PS_scale(double x, double y);
virtual void PS_rotate(double x);
virtual void PS_clip(bool mu);
virtual void PS_save();
virtual void PS_restore();
virtual void PS_setcmykcolor_fill(double c, double m, double y, double k);
virtual void PS_setcmykcolor_dummy();
virtual void PS_setcmykcolor_stroke(double c, double m, double y, double k);
virtual void PS_setlinewidth(double w);
virtual void PS_setcapjoin(Qt::PenCapStyle ca, Qt::PenJoinStyle jo);
virtual void PS_setdash(Qt::PenStyle st, double offset, QVector<double> dash);
virtual void PS_selectfont(QString f, double s);
virtual void PS_fill();
virtual void PS_fillspot(QString color, double shade);
virtual void PS_stroke();
virtual void PS_strokespot(QString color, double shade);
virtual void PS_fill_stroke();
virtual void PS_newpath();
virtual void PS_MultiRadGradient(double w, double h, double x, double y, QList<double> Stops, QStringList Colors, QStringList colorNames, QList<int> colorShades, bool fillRule);
virtual void PS_MultiLinGradient(double w, double h, QList<double> Stops, QStringList Colors, QStringList colorNames, QList<int> colorShades, bool fillRule);
virtual void PS_show(double x, double y);
virtual void PS_showSub(uint chr, QString font, double size, bool stroke);
virtual void PS_show_xyG(QString font, uint gl, double x, double y, QString colorName, double shade);
virtual bool PS_image(PageItem *c, double x, double y, QString fn, double scalex, double scaley, QString Prof, bool UseEmbedded, QString Name = "");
virtual bool PS_ImageData(PageItem *c, QString fn, QString Name, QString Prof, bool UseEmbedded);
virtual void PS_plate(int nr, QString name = "");
virtual void PS_setGray();
virtual void PDF_Bookmark(QString text, uint Seite);
virtual void PDF_Annotation(PageItem *item, QString text, double x, double y, double b, double h);
virtual void PS_close();
virtual void PS_insert(QString i);
virtual void PS_TemplateStart(QString Name);
virtual void PS_TemplateEnd();
virtual void PS_UseTemplate(QString Name);
virtual bool ProcessItem(ScribusDoc* Doc, Page* a, PageItem* c, uint PNr, bool sep, bool farb, bool master, bool embedded = false, bool useTemplate = false);
virtual void ProcessPage(ScribusDoc* Doc, /*ScribusView* view,*/Page* a, uint PNr, bool sep = false, bool farb = true);
virtual void drawArrow(PageItem *ite, QMatrix &arrowTrans, int arrowIndex);
virtual void putColor(const QString& color, double shade, bool fill);
virtual void putColorNoDraw(const QString& color, double shade);
virtual void GetBleeds(Page* page, double& left, double& right);
virtual void GetBleeds(Page* page, double& left, double& right, double& bottom, double& top);
virtual void SetClipPath(FPointArray *c, bool poly = true);
virtual void HandleGradient(PageItem *c, double w, double h);
virtual void SetColor(const QString& color, double shade, int *h, int *s, int *v, int *k);
virtual void SetColor(const ScColor& color, double shade, int *h, int *s, int *v, int *k);
virtual void setTextSt(ScribusDoc* Doc, PageItem* ite, uint a, Page* pg, bool sep, bool farb, bool master);
virtual void setTextCh(ScribusDoc* Doc, PageItem* ite, double x, double y, uint a, uint d, ScText *hl, const ParagraphStyle& pstyle, Page* pg, bool sep, bool farb, bool master);
bool psExport;
private:
void PutStream (const QString& c);
void PutStream (const QByteArray& array, bool hexEnc);
void PutStream (const char* in, int length, bool hexEnc);
bool PutImageToStream(ScImage& image, int plate);
bool PutImageToStream(ScImage& image, const QByteArray& mask, int plate);
bool PutImageDataToStream(const QByteArray& image);
bool PutInterleavedImageMaskToStream(const QByteArray& image, const QByteArray& mask, bool gray);
void WriteASCII85Bytes(const QByteArray& array);
void WriteASCII85Bytes(const unsigned char* array, int length);
Optimization optimization;
QString ToStr(double c);
QString IToStr(int c);
QString MatrixToStr(double m11, double m12, double m21, double m22, double x, double y);
QString PSEncode(QString in);
QString ErrorMessage;
QString Prolog;
QString Header;
QString Creator;
QString User;
QString Titel;
QString BBox;
QString BBoxH;
QString Farben;
QString FNamen;
QString PDev;
QString GrayCalc;
bool GraySc;
int Seiten;
QString FillColor;
QString StrokeColor;
double LineW;
QString Fonts;
QString FontDesc;
QMap<QString, QString> UsedFonts;
QMap<QString, QString> FontSubsetMap;
typedef QMap<uint, std::pair<QChar, QString> > GlyphList;
QMap<QString, GlyphList> GlyphsOfFont;
bool isPDF;
QFile Spool;
QDataStream spoolStream;
int Plate;
bool DoSep;
bool useSpotColors;
bool fillRule;
ScColorTransform solidTransform;
QString currentSpot;
ColorList colorsToUse;
QString colorDesc;
ScribusDoc *m_Doc;
QMap<QString, QString> spotMap;
MultiProgressDialog* progressDialog;
bool usingGUI;
bool abortExport;
PrintOptions Options;
Page* ActPage;
protected slots:
void cancelRequested();
};
#endif
|