xref: /plan9/sys/src/cmd/gs/src/gdevpxen.h (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
1 /* Copyright (C) 1997, 1998, 2000 Aladdin Enterprises.  All rights reserved.
2 
3   This software is provided AS-IS with no warranty, either express or
4   implied.
5 
6   This software is distributed under license and may not be copied,
7   modified or distributed except as expressly authorized under the terms
8   of the license contained in the file LICENSE in this distribution.
9 
10   For more information about licensing, please refer to
11   http://www.ghostscript.com/licensing/. For information on
12   commercial licensing, go to http://www.artifex.com/licensing/ or
13   contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14   San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15 */
16 
17 /* $Id: gdevpxen.h,v 1.7 2005/05/31 19:25:09 stefan Exp $ */
18 /* Enumerated attribute value definitions for PCL XL */
19 
20 #ifndef gdevpxen_INCLUDED
21 #  define gdevpxen_INCLUDED
22 
23 typedef enum {
24     eClockWise = 0,
25     eCounterClockWise,
26     pxeArcDirection_next
27 } pxeArcDirection_t;
28 
29 typedef enum {
30     eNoSubstitution = 0,
31     eVerticalSubstitution,
32     pxeCharSubModeArray_next
33 } pxeCharSubModeArray_t;
34 
35 typedef enum {
36     eNonZeroWinding = 0,
37     eEvenOdd,
38     pxeClipMode_next,
39     pxeFillMode_next = pxeClipMode_next		/* see pxeFillMode_t below */
40 } pxeClipMode_t;
41 
42 typedef enum {
43     eInterior = 0,
44     eExterior,
45     pxeClipRegion_next
46 } pxeClipRegion_t;
47 
48 typedef enum {
49     e1Bit = 0,
50     e4Bit,
51     e8Bit,
52     pxeColorDepth_next
53 } pxeColorDepth_t;
54 
55 typedef enum {
56     eCRGB = 5,			/* Note: for this enumeration, 0 is not a valid value */
57     pxeColorimetricColorSpace_next
58 } pxeColorimetricColorSpace_t;	/* 2.0 */
59 
60 typedef enum {
61     eDirectPixel = 0,
62     eIndexedPixel,
63     pxeColorMapping_next
64 } pxeColorMapping_t;
65 
66 typedef enum {
67     eNoColorSpace = 0,		/* Note: for this enumeration, 0 is not a valid value */
68     eGray,
69     eRGB,
70     eSRGB = 6,		/* 2.0, Note: HP's value is 6 not the expected 3 */
71     pxeColorSpace_next
72 } pxeColorSpace_t;
73 
74 typedef enum {
75     eNoCompression = 0,
76     eRLECompression,
77     eJPEGCompression,		/* 2.0 */
78     eDeltaRowCompression,       /* 2.1 */
79     pxeCompressMode_next
80 } pxeCompressMode_t;
81 
82 typedef enum {
83     eBinaryHighByteFirst = 0,
84     eBinaryLowByteFirst,
85     pxeDataOrg_next		/* is this DataOrg or DataOrganization? */
86 } pxeDataOrg_t;
87 
88 typedef enum {
89     eDefault = 0,		/* bad choice of name! */
90     pxeDataSource_next
91 } pxeDataSource_t;
92 
93 typedef enum {
94     eUByte = 0,
95     eSByte,
96     eUInt16,
97     eSInt16,
98     pxeDataType_next
99 } pxeDataType_t;
100 
101 typedef enum {
102     eDownloaded = -1,		/* Not a real value, indicates a downloaded matrix */
103     eDeviceBest = 0,
104     pxeDitherMatrix_next
105 } pxeDitherMatrix_t;
106 
107 typedef enum {
108     eDuplexHorizontalBinding = 0,
109     eDuplexVerticalBinding,
110     pxeDuplexPageMode_next
111 } pxeDuplexPageMode_t;
112 
113 typedef enum {
114     eFrontMediaSide = 0,
115     eBackMediaSide,
116     pxeDuplexPageSide_next
117 } pxeDuplexPageSide_t;
118 
119 typedef enum {
120     /* Several pieces of code know that this is a bit mask. */
121     eNoReporting = 0,
122     eBackChannel,
123     eErrorPage,
124     eBackChAndErrPage,
125     eNWBackChannel,		/* 2.0 */
126     eNWErrorPage,		/* 2.0 */
127     eNWBackChAndErrPage,	/* 2.0 */
128     pxeErrorReport_next
129 } pxeErrorReport_t;
130 
131 typedef pxeClipMode_t pxeFillMode_t;
132 
133 typedef enum {
134     eButtCap = 0,
135     eRoundCap,
136     eSquareCap,
137     eTriangleCap,
138     pxeLineCap_next
139 } pxeLineCap_t;
140 
141 #define pxeLineCap_to_library\
142   { gs_cap_butt, gs_cap_round, gs_cap_square, gs_cap_triangle }
143 
144 typedef enum {
145     eMiterJoin = 0,
146     eRoundJoin,
147     eBevelJoin,
148     eNoJoin,
149     pxeLineJoin_next
150 } pxeLineJoin_t;
151 
152 #define pxeLineJoin_to_library\
153   { gs_join_miter, gs_join_round, gs_join_bevel, gs_join_none }
154 
155 typedef enum {
156     eInch = 0,
157     eMillimeter,
158     eTenthsOfAMillimeter,
159     pxeMeasure_next
160 } pxeMeasure_t;
161 
162 #define pxeMeasure_to_points { 72.0, 72.0 / 25.4, 72.0 / 254.0 }
163 
164 typedef enum {
165     eDefaultDestination = 0,
166     eFaceDownBin,		/* 2.0 */
167     eFaceUpBin,			/* 2.0 */
168     eJobOffsetBin,		/* 2.0 */
169     pxeMediaDestination_next
170 } pxeMediaDestination_t;
171 
172 typedef enum {
173     eLetterPaper = 0,
174     eLegalPaper,
175     eA4Paper,
176     eExecPaper,
177     eLedgerPaper,
178     eA3Paper,
179     eCOM10Envelope,
180     eMonarchEnvelope,
181     eC5Envelope,
182     eDLEnvelope,
183     eJB4Paper,
184     eJB5Paper,
185     eB5Envelope,
186     eB5Paper,                   /* 2.1 */
187     eJPostcard,
188     eJDoublePostcard,
189     eA5Paper,
190     eA6Paper,			/* 2.0 */
191     eJB6Paper,			/* 2.0 */
192     eJIS8K,                      /* 2.1 */
193     eJIS16K,                     /* 2.1 */
194     eJISExec,                    /* 2.1 */
195     eDefaultPaperSize = 96,     /* 2.1 */
196     pxeMediaSize_next
197 } pxeMediaSize_t;
198 
199 /*
200  * Apply a macro (or procedure) to all known paper sizes.
201  * The arguments are:
202  *      media size code, resolution for width/height, width, height.
203  */
204 #define px_enumerate_media(m)\
205   m(eDefaultPaperSize, -1, -1, -1)\
206   m(eLetterPaper, 300, 2550, 3300)\
207   m(eLegalPaper, 300, 2550, 4200)\
208   m(eA4Paper, 300, 2480, 3507)\
209   m(eExecPaper, 300, 2175, 3150)\
210   m(eLedgerPaper, 300, 3300, 5100)\
211   m(eA3Paper, 300, 3507, 4960)\
212   m(eCOM10Envelope, 300, 1237, 2850)\
213   m(eMonarchEnvelope, 300, 1162, 2250)\
214   m(eC5Envelope, 300, 1913, 2704)\
215   m(eDLEnvelope, 300, 1299, 2598)\
216   m(eJB4Paper, -1, -1, -1)\
217   m(eJB5Paper, 300, 2150, 3035)\
218   m(eB5Envelope, 300, 2078, 2952)\
219   m(eB5Paper, 300, 2150, 3035)\
220   m(eJPostcard,  300, 1181, 1748)\
221   m(eJDoublePostcard, -1, -1, -1)\
222   m(eA5Paper,300,1748, 2480)\
223   m(eA6Paper,-1, -1, -1)\
224   m(eJB6Paper,-1, -1, -1)\
225   m(eJIS8K, -1, -1, -1)\
226   m(eJIS16K, -1, -1, -1)\
227   m(eJISExec, -1, -1, -1)
228 
229 typedef enum {
230     eDefaultSource = 0,
231     eAutoSelect,
232     eManualFeed,
233     eMultiPurposeTray,
234     eUpperCassette,
235     eLowerCassette,
236     eEnvelopeTray,
237     eThirdCassette,
238     pxeMediaSource_next
239 } pxeMediaSource_t;
240 
241 /**** MediaType is not documented. ****/
242 typedef enum {
243     eDefaultType = 0,
244     pxeMediaType_next
245 } pxeMediaType_t;
246 
247 typedef enum {
248     ePortraitOrientation = 0,
249     eLandscapeOrientation,
250     eReversePortrait,
251     eReverseLandscape,
252     eDefaultOrientation, /* 2.1 */
253     pxeOrientation_next
254 } pxeOrientation_t;
255 
256 typedef enum {
257     eTempPattern = 0,
258     ePagePattern,
259     eSessionPattern,
260     pxePatternPersistence_next
261 } pxePatternPersistence_t;
262 
263 typedef enum {
264     eSimplexFrontSide = 0,
265     pxeSimplexPageMode_next
266 } pxeSimplexPageMode_t;
267 
268 typedef enum {
269     eOpaque = 0,
270     eTransparent,
271     pxeTxMode_next
272 } pxeTxMode_t;
273 
274 typedef enum {
275     eHorizontal = 0,
276     eVertical,
277     pxeWritingMode_next
278 } pxeWritingMode_t;		/* 2.0 */
279 
280 /* the following 4 enumerations are new with XL 3.0 */
281 
282 typedef enum {
283     eDisableAH = 0,   /* the documentation uses a eDisable here and in
284                          Trapping - add AH to avoid duplicate
285                          identifier. */
286     eEnableAH,
287     pxeAdaptive_Halftoning_next
288 } pxeAdaptiveHalftone_t;
289 
290 typedef enum {
291     eHighLPI = 0,
292     eMediumLPI,
293     eLowLPI,
294     pxeeHalftoneMethod_next
295 } pxeHalftoneMethod_t;
296 
297 typedef enum {
298     eDisableCT = 0,
299     eMax,
300     eNormal,
301     eLight,
302     pxeColorTrapping_next
303 } pxeColorTrapping_t;
304 
305 typedef enum {
306     eTonerBlack = 0,
307     eProcessBlack,
308     pxeNeutralAxis_next
309 } pxeNeutralAxis_t;
310 
311 typedef enum {
312     eNoTreatment = 0,
313     eScreenMatch,
314     eVivid,
315     pxeColorTreatment_next
316 } pxeColorTreatment;
317 
318 #endif /* gdevpxen_INCLUDED */
319