1 | /* cairo - a vector graphics library with display and print output |
2 | * |
3 | * Copyright © 2002 University of Southern California |
4 | * |
5 | * This library is free software; you can redistribute it and/or |
6 | * modify it either under the terms of the GNU Lesser General Public |
7 | * License version 2.1 as published by the Free Software Foundation |
8 | * (the "LGPL") or, at your option, under the terms of the Mozilla |
9 | * Public License Version 1.1 (the "MPL"). If you do not alter this |
10 | * notice, a recipient may use your version of this file under either |
11 | * the MPL or the LGPL. |
12 | * |
13 | * You should have received a copy of the LGPL along with this library |
14 | * in the file COPYING-LGPL-2.1; if not, write to the Free Software |
15 | * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA |
16 | * You should have received a copy of the MPL along with this library |
17 | * in the file COPYING-MPL-1.1 |
18 | * |
19 | * The contents of this file are subject to the Mozilla Public License |
20 | * Version 1.1 (the "License"); you may not use this file except in |
21 | * compliance with the License. You may obtain a copy of the License at |
22 | * http://www.mozilla.org/MPL/ |
23 | * |
24 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY |
25 | * OF ANY KIND, either express or implied. See the LGPL or the MPL for |
26 | * the specific language governing rights and limitations. |
27 | * |
28 | * The Original Code is the cairo graphics library. |
29 | * |
30 | * The Initial Developer of the Original Code is University of Southern |
31 | * California. |
32 | * |
33 | * Contributor(s): |
34 | * Carl D. Worth <cworth@cworth.org> |
35 | */ |
36 | |
37 | #ifndef CAIRO_PS_H |
38 | #define CAIRO_PS_H |
39 | |
40 | #include "cairo.h" |
41 | |
42 | #if CAIRO_HAS_PS_SURFACE |
43 | |
44 | #include <stdio.h> |
45 | |
46 | CAIRO_BEGIN_DECLS |
47 | |
48 | /* PS-surface functions */ |
49 | |
50 | /** |
51 | * cairo_ps_level_t: |
52 | * @CAIRO_PS_LEVEL_2: The language level 2 of the PostScript specification. (Since 1.6) |
53 | * @CAIRO_PS_LEVEL_3: The language level 3 of the PostScript specification. (Since 1.6) |
54 | * |
55 | * #cairo_ps_level_t is used to describe the language level of the |
56 | * PostScript Language Reference that a generated PostScript file will |
57 | * conform to. |
58 | * |
59 | * Since: 1.6 |
60 | **/ |
61 | typedef enum _cairo_ps_level { |
62 | CAIRO_PS_LEVEL_2, |
63 | CAIRO_PS_LEVEL_3 |
64 | } cairo_ps_level_t; |
65 | |
66 | cairo_public cairo_surface_t * |
67 | cairo_ps_surface_create (const char *filename, |
68 | double width_in_points, |
69 | double height_in_points); |
70 | |
71 | cairo_public cairo_surface_t * |
72 | cairo_ps_surface_create_for_stream (cairo_write_func_t write_func, |
73 | void *closure, |
74 | double width_in_points, |
75 | double height_in_points); |
76 | |
77 | cairo_public void |
78 | cairo_ps_surface_restrict_to_level (cairo_surface_t *surface, |
79 | cairo_ps_level_t level); |
80 | |
81 | cairo_public void |
82 | cairo_ps_get_levels (cairo_ps_level_t const **levels, |
83 | int *num_levels); |
84 | |
85 | cairo_public const char * |
86 | cairo_ps_level_to_string (cairo_ps_level_t level); |
87 | |
88 | cairo_public void |
89 | cairo_ps_surface_set_eps (cairo_surface_t *surface, |
90 | cairo_bool_t eps); |
91 | |
92 | cairo_public cairo_bool_t |
93 | cairo_ps_surface_get_eps (cairo_surface_t *surface); |
94 | |
95 | cairo_public void |
96 | cairo_ps_surface_set_size (cairo_surface_t *surface, |
97 | double width_in_points, |
98 | double height_in_points); |
99 | |
100 | cairo_public void |
101 | (cairo_surface_t *surface, |
102 | const char *); |
103 | |
104 | cairo_public void |
105 | cairo_ps_surface_dsc_begin_setup (cairo_surface_t *surface); |
106 | |
107 | cairo_public void |
108 | cairo_ps_surface_dsc_begin_page_setup (cairo_surface_t *surface); |
109 | |
110 | CAIRO_END_DECLS |
111 | |
112 | #else /* CAIRO_HAS_PS_SURFACE */ |
113 | # error Cairo was not compiled with support for the ps backend |
114 | #endif /* CAIRO_HAS_PS_SURFACE */ |
115 | |
116 | #endif /* CAIRO_PS_H */ |
117 | |