4
* Copyright (C) 1998-1999 Hirotsugu Kakugawa.
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation; either version 2, or (at your option)
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
17
* You should have received a copy of the GNU General Public License
18
* along with this program; if not, write to the Free Software
19
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23
/* Name of this program */
24
#define PROG_NAME "ctext2pgm"
25
#define VERSION "version 1.5.0, 13 June 1999"
28
/* (codesets 2 and 3 are not supported for EUC encodings) */
30
#define ENC_UNKNOWN -1
31
#define ENC_CTEXT 0 /* Compound text */
32
#define ENC_ISO2022_JP 1 /* ISO-2022-JP */
33
#define ENC_ISO2022_KR 2 /* ISO-2022-KR */
34
#define ENC_ISO2022_CN 3 /* ISO-2022-CN */
35
#define ENC_ISO8859_1 11 /* ISO 8859-1, all chars are 1byte */
36
#define ENC_ISO8859_2 12 /* ISO 8859-2, all chars are 1byte */
37
#define ENC_ISO8859_3 13 /* ISO 8859-3, all chars are 1byte */
38
#define ENC_ISO8859_4 14 /* ISO 8859-4, all chars are 1byte */
39
#define ENC_ISO8859_5 15 /* ISO 8859-5, all chars are 1byte */
40
#define ENC_ISO8859_6 16 /* ISO 8859-6, all chars are 1byte */
41
#define ENC_ISO8859_7 17 /* ISO 8859-7, all chars are 1byte */
42
#define ENC_ISO8859_8 18 /* ISO 8859-8, all chars are 1byte */
43
#define ENC_ISO8859_9 19 /* ISO 8859-9, all chars are 1byte */
44
#define ENC_EUC_JP1 21 /* EUC Japan (JISX0201Roman for codeset 0) */
45
#define ENC_EUC_JP2 22 /* EUC Japan with ISO8859-1 for codeset 0 */
46
#define ENC_EUC_KR 23 /* EUC Korean */
47
#define ENC_EUC_CH_GB 24 /* EUC Chinese, GB2312 */
48
#define ENC_EUC_CH_CNS 25 /* EUC Chinese, CNS11643 */
49
#define ENC_SJIS 30 /* Shift JIS */
51
/* Writing directions in a line */
52
#define WDIR_DEFAULT 0
57
#define TYPEID_UNKNOWN -1
64
#define CS_ASCII (TYPEID94*256 + (4*16+2))
65
#define CS_ISO8859_1 (TYPEID96*256 + (4*16+1))
66
#define CS_ISO8859_2 (TYPEID96*256 + (4*16+2))
67
#define CS_ISO8859_3 (TYPEID96*256 + (4*16+3))
68
#define CS_ISO8859_4 (TYPEID96*256 + (4*16+4))
69
#define CS_ISO8859_5 (TYPEID96*256 + (4*16+12))
70
#define CS_ISO8859_6 (TYPEID96*256 + (4*16+7))
71
#define CS_ISO8859_7 (TYPEID96*256 + (4*16+6))
72
#define CS_ISO8859_8 (TYPEID96*256 + (4*16+8))
73
#define CS_ISO8859_9 (TYPEID96*256 + (4*16+13))
74
#define CS_JISX0201K (TYPEID94*256 + (4*16+9))
75
#define CS_JISX0201R (TYPEID94*256 + (4*16+10))
76
#define CS_JISX0208 (TYPEID94_2*256 + (4*16+2))
77
#define CS_JISX0212 (TYPEID94_2*256 + (4*16+4))
78
#define CS_VISCII (TYPEID94_2*256 + (5*16+10))
79
#define CS_TIS620 (TYPEID94_2*256 + (5*16+4))
80
#define CS_KSC5601 (TYPEID94_2*256 + (4*16+3))
81
#define CS_GB2312 (TYPEID94_2*256 + (4*16+1))
82
#define CS_CNS11643_1 (TYPEID94_2*256 + (4*16+7))
83
#define CS_CNS11643_2 (TYPEID94_2*256 + (4*16+8))
84
#define CS_CNS11643_3 (TYPEID94_2*256 + (4*16+9))
85
#define CS_CNS11643_4 (TYPEID94_2*256 + (4*16+10))
86
#define CS_CNS11643_5 (TYPEID94_2*256 + (4*16+11))
87
#define CS_CNS11643_6 (TYPEID94_2*256 + (4*16+12))
88
#define CS_CNS11643_7 (TYPEID94_2*256 + (4*16+13))
89
#define CS_MULE_BIG5_L1 (TYPEID94_2*256 + (3*16+0))
90
#define CS_MULE_BIG5_L2 (TYPEID94_2*256 + (3*16+1))
91
#define CS_MULE_ARAB0 (TYPEID94*256 + (3*16+2))
92
#define CS_MULE_ARAB1 (TYPEID94*256 + (3*16+3))
93
#define CS_MULE_ARAB2 (TYPEID94*256 + (3*16+4))
94
#define CS_MULE_ETHIOPIC (TYPEID94_2*256 + (3*16+3))
95
#define CS_MULE_VISCII_L (TYPEID96*256 + (3*16+1))
96
#define CS_MULE_VISCII_U (TYPEID96*256 + (3*16+2))
98
#define CSID(t,code) ((t)*256+(code))
101
#define FAM_DEFAULT 1
108
#define FACE_DEFAULT 0
109
#define FACE_NORMAL 0
111
#define FACE_ITALIC 2
113
/* Status of s_font_info.font_id */
114
#define NOT_OPENED -1
117
/* Font info structue */
124
int font_id; /* internal use only --- for opened VFlib font id */
127
/* Direction stack structue */
128
#define MAX_DIR_STACK 64
129
struct s_dir_stack_elem {
131
struct vf_s_bitmaplist the_line_buff;
137
#define PR1(s1) fprintf(stderr, s1);
138
#define PR2(s1,s2) fprintf(stderr, s1, s2);
139
#define PR3(s1,s2,s3) fprintf(stderr, s1, s2, s3);
142
#define OFORM_DEFAULT 0
143
#define OFORM_PGM_ASCII 0
144
#define OFORM_PGM_RAW 1
145
#define OFORM_PBM_ASCII 2
146
#define OFORM_PBM_RAW 3
148
#define OFORM_ASCII_ART 20
149
#define OFORM_ASCII_ART_V 21
150
#define OFORM_NONE 99
153
#define LINE_DEFAULT 0
154
#define LINE_FLUSH_LEFT 1
155
#define LINE_FLUSH_RIGHT 2
156
#define LINE_CENTER 3
159
#define DEFAULT_VFLIBCAP "vflibcap-ctext2pgm"
160
#define DEFAULT_PIXEL_SIZE 16
161
#define DEFAULT_BASELINESKIP 1.2
162
#define DEFAULT_MAG 1
163
#define DEFAULT_MARGIN 0
164
#define DEFAULT_SHRINK 1
165
#define DEFAULT_REVERSE 0
166
#define DEFAULT_LINE_POS LINE_DEFAULT
167
#define DEFAULT_EPS_POINT_SIZE 12.0
168
#define DEFAULT_TAB_SKIP 6