28 #include <QStringList>
45 #define KLFERR_NOERROR 0
49 #define KLFERR_TEMPDIR_FAIL -48
50 #define KLFERR_MISSINGLATEXFORMULA -1
52 #define KLFERR_MISSINGMATHMODETHREEDOTS -2
54 #define KLFERR_TEXWRITEFAIL -3
56 #define KLFERR_LATEX_NORUN -4
58 #define KLFERR_NOLATEXPROG KLFERR_LATEX_NORUN
60 #define KLFERR_LATEX_NONORMALEXIT -5
62 #define KLFERR_LATEXNONORMALEXIT KLFERR_LATEX_NONORMALEXIT
64 #define KLFERR_LATEX_NOOUTPUT -6
66 #define KLFERR_NODVIFILE KLFERR_LATEX_NOOUTPUT
68 #define KLFERR_LATEX_OUTPUTREADFAIL -24
70 #define KLFERR_DVIREADFAIL KLFERR_LATEX_OUTPUTREADFAIL
72 #define KLFERR_DVIPS_NORUN -7
74 #define KLFERR_NODVIPSPROG KLFERR_DVIPS_NORUN
76 #define KLFERR_DVIPS_NONORMALEXIT -8
78 #define KLFERR_DVIPSNONORMALEXIT KLFERR_DVIPS_NONORMALEXIT
80 #define KLFERR_DVIPS_NOOUTPUT -9
82 #define KLFERR_NOEPSFILE KLFERR_DVIPS_NOOUTPUT
84 #define KLFERR_DVIPS_OUTPUTREADFAIL -10
86 #define KLFERR_EPSREADFAIL KLFERR_DVIPS_OUTPUTREADFAIL
88 #define KLFERR_DVIPS_OUTPUTNOBBOX -11
90 #define KLFERR_NOEPSBBOX KLFERR_DVIPS_OUTPUTNOBBOX
92 #define KLFERR_GSBBOX_NORUN -25
94 #define KLFERR_GSBBOX_NONORMALEXIT -26
96 #define KLFERR_GSBBOX_NOOUTPUT -27
98 #define KLFERR_GSBBOX_NOBBOX -28
100 #define KLFERR_GSPOSTPROC_NORUN -29
102 #define KLFERR_GSPOSTPROC_NONORMALEXIT -30
104 #define KLFERR_GSPOSTPROC_NOOUTPUT -22
106 #define KLFERR_GSPOSTPROC_NOOUTLINEFONTS -49
108 #define KLFERR_NOEPSFILE_OF KLFERR_GSPOSTPROC_NOOUTPUT
110 #define KLFERR_GSPOSTPROC_OUTPUTREADFAIL -23
112 #define KLFERR_EPSREADFAIL_OF KLFERR_GSPOSTPROC_OUTPUTREADFAIL
114 #define KLFERR_GSPNG_NORUN -14
116 #define KLFERR_NOGSPROG KLFERR_GSPNG_NORUN
118 #define KLFERR_GSPNG_NONORMALEXIT -15
120 #define KLFERR_GSNONORMALEXIT KLFERR_GSPNG_NONORMALEXIT
122 #define KLFERR_GSPNG_NOOUTPUT -16
124 #define KLFERR_NOPNGFILE KLFERR_GSPNG_NOOUTPUT
126 #define KLFERR_GSPNG_OUTPUTREADFAIL -17
128 #define KLFERR_PNGREADFAIL KLFERR_GSPNG_OUTPUTREADFAIL
130 #define KLFERR_PDFMARKSWRITEFAIL -47
132 #define KLFERR_GSPDF_NORUN -31
134 #define KLFERR_GSPDF_NONORMALEXIT -19
136 #define KLFERR_EPSTOPDFNONORMALEXIT KLFERR_GSPDF_NONORMALEXIT
138 #define KLFERR_GSPDF_NOOUTPUT -20
140 #define KLFERR_NOPDFFILE KLFERR_GSPDF_NOOUTPUT
142 #define KLFERR_GSPDF_OUTPUTREADFAIL -21
144 #define KLFERR_PDFREADFAIL KLFERR_GSPDF_OUTPUTREADFAIL
146 #define KLFERR_NOGSVERSION -32
148 #define KLFERR_GSSVG_NOSVG -33
150 #define KLFERR_GSSVG_NORUN -34
152 #define KLFERR_GSSVG_NONORMALEXIT -35
154 #define KLFERR_GSSVG_NOOUTPUT -36
156 #define KLFERR_GSSVG_OUTPUTREADFAIL -37
158 #define KLFERR_USERSCRIPT_NORUN -38
160 #define KLFERR_USERSCRIPT_NONORMALEXIT -39
161 #define KLFERR_USERSCRIPT_NOSCRIPTINFO -40
162 #define KLFERR_USERSCRIPT_INVALIDSCRIPTINFO -41
163 #define KLFERR_USERSCRIPT_NOOUTPUT -42
164 #define KLFERR_USERSCRIPT_OUTPUTREADFAIL -43
165 #define KLFERR_USERSCRIPT_BADKLFVERSION -44
166 #define KLFERR_USERSCRIPT_BADSKIPFORMATS -45
167 #define KLFERR_USERSCRIPT_BADCATEGORY -46
173 #define KLFERR_PROGERR_LATEX 1
174 #define KLFERR_PROGERR_DVIPS 2
176 #define KLFERR_PROGERR_GSBBOX 6
178 #define KLFERR_PROGERR_GSPOSTPROC 5
180 #define KLFERR_PROGERR_GS_OF KLFERR_PROGERR_GSPOSTPROC
182 #define KLFERR_PROGERR_GSPNG 3
184 #define KLFERR_PROGERR_GS KLFERR_PROGERR_GSPNG
186 #define KLFERR_PROGERR_GSPDF 4
188 #define KLFERR_PROGERR_EPSTOPDF KLFERR_PROGERR_GSPDF
190 #define KLFERR_PROGERR_GSSVG 7
192 #define KLFERR_PROGERR_USERSCRIPT 8
210 class TemplateGenerator;
221 klfSettings() : tborderoffset(0), rborderoffset(0), bborderoffset(0), lborderoffset(0),
222 calcEpsBoundingBox(
true), outlineFonts(
true),
223 wantRaw(
false), wantPDF(
true), wantSVG(
true), execenv(),
224 templateGenerator(NULL) { }
248 double tborderoffset;
252 double rborderoffset;
256 double bborderoffset;
260 double lborderoffset;
264 bool calcEpsBoundingBox;
294 TemplateGenerator *templateGenerator;
309 klfInput() : fontsize(-1), fg_color(0x00), bg_color(0xffffffff), dpi(600), vectorscale(1.0),
310 bypassTemplate(
false) { }
328 unsigned long fg_color;
334 unsigned long bg_color;
398 klfSettings settings;
517 static klfOutput getLatexFormula(
const klfInput& in,
const klfSettings& settings,
518 bool isMainThread =
true);
534 static QStringList availableSaveFormats(
const klfOutput * output = NULL) ;
540 static QStringList availableSaveFormats(
const klfOutput& output) ;
568 static bool saveOutputToFile(
const klfOutput& output,
const QString& fileName,
576 static bool saveOutputToDevice(
const klfOutput& output,
QIODevice *device,
593 static bool detectSettings(klfSettings *settings,
const QString& extraPath =
QString(),
594 bool isMainThread =
true);
618 static bool detectOptionSettings(klfSettings *settings,
bool isMainThread =
true);
694 virtual void saveField(
const QString& key,
const QString& value) = 0;