xref: /plan9/sys/src/cmd/postscript/postdaisy/postdaisy.h (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
1 /*
2  *
3  * Definitions used by the PostScript translator for Diablo 1640 files.
4  *
5  * Diablo printers have horizontal and vertical resolutions of 120 and 48 dpi.
6  * We'll use a single resolution of 240 dpi and let the program scale horizontal
7  * and vertical positions by HSCALE and VSCALE.
8  *
9  */
10 
11 #define RES		240
12 #define HSCALE		2
13 #define VSCALE		5
14 
15 /*
16  *
17  * HMI is the default character spacing and VMI is the line spacing. Both values
18  * are in terms of the 240 dpi resolution.
19  *
20  */
21 
22 #define HMI		(12 * HSCALE)
23 #define VMI		(8 * VSCALE)
24 
25 /*
26  *
27  * Paper dimensions don't seem to be all that important. They're just used to
28  * set the right and bottom margins. Both are given in terms of the 240 dpi
29  * resolution.
30  *
31  */
32 
33 #define LEFTMARGIN	0
34 #define RIGHTMARGIN	3168
35 #define TOPMARGIN	0
36 #define BOTTOMMARGIN	2640
37 
38 /*
39  *
40  * ROWS and COLUMNS set the dimensions of the horizontal and vertical tab arrays.
41  * The way I've implemented both kinds of tabs leaves something to be desired, but
42  * it was simple and should be good enough for now. If arrays are going to be used
43  * to mark tab stops I probably should use malloc() to get enough space once the
44  * initial hmi and vmi are know.
45  *
46  */
47 
48 #define ROWS		400
49 #define COLUMNS		200
50 
51 /*
52  *
53  * An array of type Fontmap helps convert font names requested by users into
54  * legitimate PostScript names. The array is initialized using FONTMAP, which must
55  * end with an entry that has NULL defined as its name field.
56  *
57  */
58 
59 typedef struct {
60 	char	*name;			/* user's font name */
61 	char	*val;			/* corresponding PostScript name */
62 } Fontmap;
63 
64 #define FONTMAP								\
65 									\
66 	{								\
67 	    "R", "Courier",						\
68 	    "I", "Courier-Oblique",					\
69 	    "B", "Courier-Bold",					\
70 	    "CO", "Courier",						\
71 	    "CI", "Courier-Oblique",					\
72 	    "CB", "Courier-Bold",					\
73 	    "CW", "Courier",						\
74 	    "PO", "Courier",						\
75 	    "courier", "Courier",					\
76 	    "cour", "Courier",						\
77 	    "co", "Courier",						\
78 	    NULL, NULL							\
79 	}
80 
81 /*
82  *
83  * Some of the non-integer functions in postdaisy.c.
84  *
85  */
86 
87 char	*get_font();
88 
89