xref: /plan9/sys/src/cmd/gs/src/gdevpcl.h (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
1 /* Copyright (C) 1992, 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: gdevpcl.h,v 1.8 2002/06/16 07:25:26 lpd Exp $ */
18 /* Support for PCL-based printer drivers */
19 /* Requires gdevprn.h */
20 
21 #ifndef gdevpcl_INCLUDED
22 #  define gdevpcl_INCLUDED
23 
24 /*
25  * Define the PCL paper size codes.  H-P's documentation and coding for the
26  * 11x17 size are inconsistent: some printers seem to accept code 11 as well
27  * as code 6, and while the definitions below match the PCL5 reference
28  * manual, some documentation calls 11x17 "tabloid" and reserves the name
29  * "ledger" for 17x11.
30  */
31 #define PAPER_SIZE_EXECUTIVE 1
32 #define PAPER_SIZE_LETTER 2	/* 8.5" x 11" */
33 #define PAPER_SIZE_LEGAL 3	/* 8.5" x 14" */
34 #define PAPER_SIZE_LEDGER 6	/* 11" x 17" */
35 #define PAPER_SIZE_A4 26	/* 21.0 cm x 29.7 cm */
36 #define PAPER_SIZE_A3 27	/* 29.7 cm x 42.0 cm */
37 #define PAPER_SIZE_A2 28
38 #define PAPER_SIZE_A1 29
39 #define PAPER_SIZE_A0 30
40 #define PAPER_SIZE_JIS_B5 45
41 #define PAPER_SIZE_JIS_B4 46
42 #define PAPER_SIZE_JPOST 71
43 #define PAPER_SIZE_JPOSTD 72
44 #define PAPER_SIZE_MONARCH 80
45 #define PAPER_SIZE_COM10 81
46 #define PAPER_SIZE_DL 90
47 #define PAPER_SIZE_C5 91
48 #define PAPER_SIZE_B5 100
49 
50 /* Get the paper size code, based on width and height. */
51 int gdev_pcl_paper_size(gx_device *);
52 
53 /* Color mapping procedures for 3-bit-per-pixel RGB printers */
54 dev_proc_map_rgb_color(gdev_pcl_3bit_map_rgb_color);
55 dev_proc_map_color_rgb(gdev_pcl_3bit_map_color_rgb);
56 
57 /* Row compression routines */
58 typedef ulong word;
59 int
60     gdev_pcl_mode2compress(const word * row, const word * end_row, byte * compressed),
61     gdev_pcl_mode2compress_padded(const word * row, const word * end_row, byte * compressed, bool pad),
62     gdev_pcl_mode3compress(int bytecount, const byte * current, byte * previous, byte * compressed),
63     gdev_pcl_mode9compress(int bytecount, const byte * current, const byte * previous, byte * compressed);
64 
65 #endif /* gdevpcl_INCLUDED */
66