1 #ifndef __PSLIB_H__
2 #define __PSLIB_H__
3 
4 #include <stdio.h>
5 
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 
10 #ifdef WIN32
11 
12 #define PSLIB_CALL __cdecl
13 
14 #ifdef PSLIB_EXPORTS
15 #define PSLIB_API __declspec(dllexport) /* prepare a DLL (internal use only) */
16 #elif defined(PSLIB_DLL)
17 #define PSLIB_API __declspec(dllimport) /* PSlib clients: import PSlib DLL */
18 #else /* !PSLIB_DLL */
19 #define PSLIB_API /* */  /* default: generate or use static library */
20 
21 #endif  /* !PSLIB_DLL */
22 
23 #endif /* !WIN32 */
24 
25 #ifndef PSLIB_CALL
26 #define PSLIB_CALL
27 #endif
28 #ifndef PSLIB_API
29 #define PSLIB_API
30 #endif
31 
32 #define PS_MemoryError 1
33 #define PS_IOError 2
34 #define PS_RuntimeError 3
35 #define PS_Warning 100
36 
37 #define PS_LINECAP_BUTT 0
38 #define PS_LINECAP_ROUND 1
39 #define PS_LINECAP_SQUARED 2
40 
41 #define PS_LINEJOIN_MITER 0
42 #define PS_LINEJOIN_ROUND 1
43 #define PS_LINEJOIN_BEVEL 2
44 
45 #define PS_GOTO_NEXT_PAGE -1
46 #define PS_GOTO_PREV_PAGE -2
47 
48 #define ps_true 1
49 #define ps_false 0
50 
51 typedef int ps_bool;
52 
53 typedef struct PSDoc_ PSDoc;
54 
55 PSLIB_API int PSLIB_CALL
56 PS_get_majorversion(void);
57 
58 PSLIB_API int PSLIB_CALL
59 PS_get_minorversion(void);
60 
61 PSLIB_API int PSLIB_CALL
62 PS_get_subminorversion(void);
63 
64 PSLIB_API void PSLIB_CALL
65 PS_boot(void);
66 
67 PSLIB_API void PSLIB_CALL
68 PS_shutdown(void);
69 
70 PSLIB_API void PSLIB_CALL
71 PS_set_info(PSDoc *p, const char *key, const char *val);
72 
73 PSLIB_API PSDoc * PSLIB_CALL
74 PS_new(void);
75 
76 PSLIB_API PSDoc * PSLIB_CALL
77 PS_new2(void  (*errorhandler)(PSDoc *p, int type, const char *msg, void *data),
78 	void* (*allocproc)(PSDoc *p, size_t size, const char *caller),
79 	void* (*reallocproc)(PSDoc *p, void *mem, size_t size, const char *caller),
80 	void  (*freeproc)(PSDoc *p, void *mem),
81 	void *opaque);
82 
83 PSLIB_API int PSLIB_CALL
84 PS_open_fp(PSDoc *psdoc, FILE *fp);
85 
86 PSLIB_API void * PSLIB_CALL
87 PS_get_opaque(PSDoc *psdoc);
88 
89 PSLIB_API int PSLIB_CALL
90 PS_open_mem(PSDoc *p, size_t (*writeproc)(PSDoc *p, void *data, size_t size));
91 
92 PSLIB_API int PSLIB_CALL
93 PS_open_file(PSDoc *psdoc, const char *filename);
94 
95 PSLIB_API void PSLIB_CALL
96 PS_close(PSDoc *psdoc);
97 
98 PSLIB_API void PSLIB_CALL
99 PS_delete(PSDoc *psdoc);
100 
101 PSLIB_API void PSLIB_CALL
102 PS_begin_page(PSDoc *psdoc, float width, float height);
103 
104 PSLIB_API void PSLIB_CALL
105 PS_end_page(PSDoc *psdoc);
106 
107 PSLIB_API void PSLIB_CALL
108 PS_set_parameter(PSDoc *psdoc, const char *name, const char *value);
109 
110 PSLIB_API const char * PSLIB_CALL
111 PS_get_parameter(PSDoc *psdoc, const char *name, float modifier);
112 
113 PSLIB_API void PSLIB_CALL
114 PS_set_value(PSDoc *psdoc, const char *name, float value);
115 
116 PSLIB_API float PSLIB_CALL
117 PS_get_value(PSDoc *psdoc, const char *name, float modifier);
118 
119 PSLIB_API void PSLIB_CALL
120 PS_list_values(PSDoc *psdoc);
121 
122 PSLIB_API void PSLIB_CALL
123 PS_list_parameters(PSDoc *psdoc);
124 
125 PSLIB_API void PSLIB_CALL
126 PS_list_resources(PSDoc *psdoc);
127 
128 PSLIB_API void PSLIB_CALL
129 PS_set_text_pos(PSDoc *psdoc, float x, float y);
130 
131 PSLIB_API void PSLIB_CALL
132 PS_setlinewidth(PSDoc *p, float width);
133 
134 PSLIB_API void PSLIB_CALL
135 PS_setlinecap(PSDoc *p, int type);
136 
137 PSLIB_API void PSLIB_CALL
138 PS_setlinejoin(PSDoc *p, int type);
139 
140 PSLIB_API void PSLIB_CALL
141 PS_setmiterlimit(PSDoc *p, float value);
142 
143 PSLIB_API void PSLIB_CALL
144 PS_setflat(PSDoc *p, float value);
145 
146 PSLIB_API void PSLIB_CALL
147 PS_setoverprintmode(PSDoc *p, int mode);
148 
149 PSLIB_API void PSLIB_CALL
150 PS_setsmoothness(PSDoc *p, float smoothness);
151 
152 PSLIB_API void PSLIB_CALL
153 PS_setdash(PSDoc *p, float on, float off);
154 
155 PSLIB_API void PSLIB_CALL
156 PS_setpolydash(PSDoc *p, float *arr, int length);
157 
158 PSLIB_API void PSLIB_CALL
159 PS_curveto(PSDoc *psdoc, float x1, float y1, float x2, float y2, float x3, float y3);
160 
161 PSLIB_API void PSLIB_CALL
162 PS_rect(PSDoc *psdoc, float x, float y, float width, float height);
163 
164 PSLIB_API void PSLIB_CALL
165 PS_circle(PSDoc *psdoc, float x, float y, float radius);
166 
167 PSLIB_API void PSLIB_CALL
168 PS_arc(PSDoc *psdoc, float x, float y, float radius, float alpha, float beta);
169 
170 PSLIB_API void PSLIB_CALL
171 PS_arcn(PSDoc *psdoc, float x, float y, float radius, float alpha, float beta);
172 
173 PSLIB_API void PSLIB_CALL
174 PS_clip(PSDoc *psdoc);
175 
176 PSLIB_API void PSLIB_CALL
177 PS_setgray(PSDoc *psdoc, float gray);
178 
179 PSLIB_API void PSLIB_CALL
180 PS_closepath(PSDoc *psdoc);
181 
182 PSLIB_API void PSLIB_CALL
183 PS_closepath_stroke(PSDoc *psdoc);
184 
185 PSLIB_API void PSLIB_CALL
186 PS_fill_stroke(PSDoc *psdoc);
187 
188 PSLIB_API void PSLIB_CALL
189 PS_stroke(PSDoc *psdoc);
190 
191 PSLIB_API void PSLIB_CALL
192 PS_fill(PSDoc *psdoc);
193 
194 PSLIB_API void PSLIB_CALL
195 PS_save(PSDoc *psdoc);
196 
197 PSLIB_API void PSLIB_CALL
198 PS_restore(PSDoc *psdoc);
199 
200 PSLIB_API void PSLIB_CALL
201 PS_show(PSDoc *psdoc, const char *text);
202 
203 PSLIB_API void PSLIB_CALL
204 PS_show2(PSDoc *psdoc, const char *text, int xlen);
205 
206 PSLIB_API void PSLIB_CALL
207 PS_show_xy(PSDoc *psdoc, const char *text, float x, float y);
208 
209 PSLIB_API void PSLIB_CALL
210 PS_show_xy2(PSDoc *psdoc, const char *text, int xlen, float x, float y);
211 
212 PSLIB_API int PSLIB_CALL
213 PS_show_boxed(PSDoc *psdoc, const char *text, float left, float bottom, float width, float height, const char *hmode, const char *feature);
214 
215 PSLIB_API void PSLIB_CALL
216 PS_continue_text(PSDoc *psdoc, const char *text);
217 
218 PSLIB_API void PSLIB_CALL
219 PS_continue_text2(PSDoc *psdoc, const char *text, int len);
220 
221 PSLIB_API void PSLIB_CALL
222 PS_setcolor(PSDoc *psdoc, const char *type, const char *colorspace, float c1, float c2, float c3, float c4);
223 
224 PSLIB_API int PSLIB_CALL
225 PS_makespotcolor(PSDoc *psdoc, const char *name, int reserved);
226 
227 PSLIB_API int PSLIB_CALL
228 PS_findfont(PSDoc *psdoc, const char *fontname, const char *encoding, int embed);
229 
230 PSLIB_API float PSLIB_CALL
231 PS_stringwidth(PSDoc *psdoc, const char *text, int fontid, float size);
232 
233 PSLIB_API float PSLIB_CALL
234 PS_stringwidth2(PSDoc *psdoc, const char *text, int xlen, int fontid, float size);
235 
236 PSLIB_API float PSLIB_CALL
237 PS_string_geometry(PSDoc *psdoc, const char *text, int xlen, int fontid, float size, float *dimension);
238 
239 PSLIB_API void PSLIB_CALL
240 PS_deletefont(PSDoc *psdoc, int fontid);
241 
242 PSLIB_API void PSLIB_CALL
243 PS_setfont(PSDoc *psdoc, int fontid, float size);
244 
245 PSLIB_API int PSLIB_CALL
246 PS_getfont(PSDoc *psdoc);
247 
248 PSLIB_API void PSLIB_CALL
249 PS_moveto(PSDoc *psdoc, float x, float y);
250 
251 PSLIB_API void PSLIB_CALL
252 PS_lineto(PSDoc *psdoc, float x, float y);
253 
254 PSLIB_API void PSLIB_CALL
255 PS_rotate(PSDoc *psdoc, float x);
256 
257 PSLIB_API void PSLIB_CALL
258 PS_translate(PSDoc *psdoc, float x, float y);
259 
260 PSLIB_API void PSLIB_CALL
261 PS_scale(PSDoc *psdoc, float x, float y);
262 
263 PSLIB_API const char * PSLIB_CALL
264 PS_get_buffer(PSDoc *psdoc, long *size);
265 
266 PSLIB_API int PSLIB_CALL
267 PS_open_image(PSDoc *psdoc, const char *type, const char *source, const char *data, long length, int width, int height, int components, int bpc, const char *params);
268 
269 PSLIB_API int PSLIB_CALL
270 PS_open_image_file(PSDoc *psdoc, const char *type, const char *filename, const char *stringparam, int intparam);
271 
272 PSLIB_API void PSLIB_CALL
273 PS_place_image(PSDoc *psdoc, int imageid, float x, float y, float scale);
274 
275 PSLIB_API void PSLIB_CALL
276 PS_close_image(PSDoc *psdoc, int imageid);
277 
278 PSLIB_API void PSLIB_CALL
279 PS_add_weblink(PSDoc *psdoc, float llx, float lly, float urx, float ury, const char *url);
280 
281 PSLIB_API void PSLIB_CALL
282 PS_add_pdflink(PSDoc *psdoc, float llx, float lly, float urx, float ury, const char *filename, int page, const char *dest);
283 
284 PSLIB_API void PSLIB_CALL
285 PS_add_locallink(PSDoc *psdoc, float llx, float lly, float urx, float ury, const int page, const char *dest);
286 
287 PSLIB_API void PSLIB_CALL
288 PS_add_launchlink(PSDoc *psdoc, float llx, float lly, float urx, float ury, const char *filename);
289 
290 PSLIB_API int PSLIB_CALL
291 PS_add_bookmark(PSDoc *psdoc, const char *text, int parent, int open);
292 
293 PSLIB_API void PSLIB_CALL
294 PS_add_note(PSDoc *psdoc, float llx, float lly, float urx, float ury, const char *contents, const char *title, const char *icon, int open);
295 
296 PSLIB_API void PSLIB_CALL
297 PS_set_border_style(PSDoc *psdoc, const char *style, float width);
298 
299 PSLIB_API void PSLIB_CALL
300 PS_set_border_color(PSDoc *psdoc, float red, float green, float blue);
301 
302 PSLIB_API void PSLIB_CALL
303 PS_set_border_dash(PSDoc *psdoc, float black, float white);
304 
305 PSLIB_API int PSLIB_CALL
306 PS_begin_template(PSDoc *psdoc, float width, float height);
307 
308 PSLIB_API void PSLIB_CALL
309 PS_end_template(PSDoc *psdoc);
310 
311 PSLIB_API int PSLIB_CALL
312 PS_begin_pattern(PSDoc *psdoc, float width, float height, float xstep, float ystep, int painttype);
313 
314 PSLIB_API void PSLIB_CALL
315 PS_end_pattern(PSDoc *psdoc);
316 
317 PSLIB_API void PSLIB_CALL
318 PS_shfill(PSDoc *psdoc, int shading);
319 
320 PSLIB_API int PSLIB_CALL
321 PS_shading(PSDoc *psdoc, const char *shtype, float x0, float y0, float x1, float y1, float c1, float c2, float c3, float c4, const char *optlist);
322 
323 PSLIB_API int PSLIB_CALL
324 PS_shading_pattern(PSDoc *psdoc, int shading, const char *optlist);
325 
326 PSLIB_API int PSLIB_CALL
327 PS_create_gstate(PSDoc *psdoc, const char *optlist);
328 
329 PSLIB_API int PSLIB_CALL
330 PS_hyphenate(PSDoc *psdoc, const char *text, char **hyphens);
331 
332 PSLIB_API void PSLIB_CALL
333 PS_symbol(PSDoc *psdoc, unsigned char c);
334 
335 PSLIB_API float PSLIB_CALL
336 PS_symbol_width(PSDoc *psdoc, unsigned char c, int fontid, float size);
337 
338 PSLIB_API void PSLIB_CALL
339 PS_symbol_name(PSDoc *psdoc, unsigned char c, int fontid, char *name, int size);
340 
341 PSLIB_API int PSLIB_CALL
342 PS_include_file(PSDoc *psdoc, const char *filename);
343 
344 PSLIB_API int PSLIB_CALL
345 PS_begin_font(PSDoc *psdoc, const char *fontname, int reserverd, double a, double b, double c, double d, double e, double f, const char *optlist);
346 
347 PSLIB_API void PSLIB_CALL
348 PS_end_font(PSDoc *psdoc);
349 
350 PSLIB_API int PSLIB_CALL
351 PS_begin_glyph(PSDoc *psdoc, const char *glyphname, double wx, double llx, double lly, double urx, double ury);
352 
353 PSLIB_API void PSLIB_CALL
354 PS_end_glyph(PSDoc *psdoc);
355 
356 PSLIB_API void PSLIB_CALL
357 PS_add_kerning(PSDoc *psdoc, int fontid, const char *glyphname1, const char *glyphname2, int kern);
358 
359 PSLIB_API void PSLIB_CALL
360 PS_add_ligature(PSDoc *psdoc, int fontid, const char *glyphname1, const char *glyphname2, const char *glyphname3);
361 
362 PSLIB_API void PSLIB_CALL
363 PS_glyph_show(PSDoc *psdoc, const char *name);
364 
365 PSLIB_API char** PSLIB_CALL
366 PS_glyph_list(PSDoc *psdoc, int fontid, char ***charlist, int *len);
367 
368 PSLIB_API float PSLIB_CALL
369 PS_glyph_width(PSDoc *psdoc, const char *glyphname, int fontid, float size);
370 
371 PSLIB_API void PSLIB_CALL
372 PS_free_glyph_list(PSDoc *psdoc, char **charlist, int len);
373 
374 #ifdef __cplusplus
375 }
376 #endif
377 
378 #endif
379