/* $Log: globals.h,v $ * Revision 0.8 92/11/23 19:47:02 19:47:02 bt (Bo Thide') * Fixed resolution bug. Portable downloading. Added/changed options. PJXL color support * * Revision 0.7 92/11/13 02:41:17 02:41:17 bt (Bo Thide') * More bug fixes and improvements. Support for PaintJet XL * * Revision 0.6 92/11/10 21:48:43 21:48:43 bt (Bo Thide') * Bug fixes. Added -R option. Better font handling. * * Revision 0.5 92/11/09 16:25:50 16:25:50 bt (Bo Thide') * Rewrite of dospecial.c. Extended \special support * * Revision 0.4 92/11/08 02:46:06 02:46:06 bt (Bo Thide') * Changed to portable bit manipulations. Replaced strrstr for non-POSIX compliant C. Fixed numerous bugs. Added support for more \special's. * * Revision 0.3 92/08/24 12:43:17 12:43:17 bt (Bo Thide') * Fixed 8 bit (dc font) support. * * Revision 0.2 92/08/23 17:28:53 17:28:53 bt (Bo Thide') * Source cleaned up. Changed certain function calls. Removed globals. * * Revision 0.1 92/08/22 23:58:47 23:58:47 bt (Bo Thide') * First Release. * */ #ifndef _DVI2PCL_GLOBALS_INCLUDED #define _DVI2PCL_GLOBALS_INCLUDED #define BANNER "TeX Dvi to HP Print Command Language translator dvi2pcl 0.7.\n" #define BITFILE_SUFFIX ".pcl" /* Bit file suffix */ #define BLACKBYTE '\377' #define DEV_LJPLUS 0 #define DEV_LJ2 1 #define DEV_LJ2D 2 #define DEV_LJ2P 3 #define DEV_LJ3SI 4 #define DEV_LJ3P 5 #define DEV_PJ 10 #define DEV_PJXL 11 #define DVIFILE_SUFFIX ".dvi" /* Dvi file suffix */ #define DYNAMICFONTBASE 256 /* Start value for internal font #'s */ #define FALSE 0 #define FIX (1 << 20) #define FMASK 7 #define FONTPATH "/%dpt/%s.%d" /* Where to look for fonts */ #define HOFFSET 200 #define INFINITY 0x7FFFFFFF #define MAXCHEIGHT 128 /* Max character height for printer */ #define MAXCWIDTH 128 /* Max character width for printer */ #define MAXDOWN 128 /* Max number of downloadable fonts */ #define MAXDRIFT 2 /* Max dots rounding error */ #define MAXFONTS 256 /* Max # of fonts to be used */ #define MAXPAGES 1000 /* Max # of pages of the document */ #define MAXPKSIZE 65536 /* Max .pk buffer size */ #define MAXPXLSIZE 65536 /* Max .pxl buffer size */ #define MINPRINTERMEM 122880 /* 120 KByte */ #define NAMELENGTH 255 /* Max length of file names */ #define NAMESIZE 4096 /* Max texbtuffer size for names */ #define NULL 0 #define PCLLEVEL 4 /* Default PCL level (old LaserJets) */ #define PRESCAN_OFF 0 /* Not in the prescan cycle */ #define PRESCAN_ON 1 /* In the prescan cycle */ #define RESOLUTION 300 #define SCALE 75780587.52 /* 72.27*2**20 */ #define STACKSIZE 100 #define TERMLINELENGTH 80 #define TRUE 1 #define USGFILE_SUFFIX ".usg" /* Usage (log) file suffix */ #define VOFFSET 150 #define WHITEBYTE '\0' /* Global type definitions */ typedef char byte; typedef unsigned char ubyte; typedef unsigned char bool; #ifdef TRUE #include #else typedef unsigned short ushort; typedef unsigned int uint; #endif /* TRUE */ /* PCL font descriptor */ typedef struct { ushort size; ubyte descriptor; ubyte font_type; ubyte style_MSB; byte reserved; ushort baseline; ushort cell_width; ushort cell_height; ubyte orientation; bool spacing; ushort symbol_set; ushort pitch; ushort height; ushort x_height; byte width_type; ubyte style_LSB; byte stroke_weight; ubyte typeface_LSB; ubyte typeface_MSB; ubyte serif_style; ubyte quality; byte placement; byte underl_dist; ubyte underl_height; ushort text_height; ushort text_width; ushort first_code; ushort last_code; ubyte pitch_ext; ubyte height_ext; ushort cap_height; uint font_number; char font_name[16]; } fdfmt; /* PCL character descriptor */ typedef struct { ubyte format; bool continuation; ubyte size; ubyte class; ubyte orientation; byte reserved; short left_offset; short top_offset; ushort char_width; ushort char_height; short delta_x; } cdfmt; /* Internal character information */ typedef struct { short pk_char; long pxl_width; long tfm_width; long use_count; } charfmt; /* Internal font information */ typedef struct { long checksum; long scaled_size; long design_size; long space; short dir_size; double height; short down; short name; short bc; short ec; charfmt chr[256]; } fontfmt; /* Internal graphic char information */ typedef struct { short pxl_bytes; short pxl_rows; long x_offset; long y_offset; byte *pxl_pattern; } gcharfmt; typedef gcharfmt (*gfontfmt)[256]; /* Internal graphic font information */ /* Header part of .tfm files */ typedef struct { short lf; short lh; short bc; short ec; short nw; short nh; short nd; short ni; short nl; short nk; short ne; short np; long cs; long ds; } tfmfmt; /* Printer name and capabilities */ typedef struct { long mem; char name[16]; char lang[8]; } prtfmt; /* Global variables in alphabetical order */ int actualpagecount; cdfmt cd; /* character descriptor */ charfmt *cbase; double conv; double convpxl; double convtfm; long count[10]; int c_black; int c_flag; int c_height; int c_hoffset; int c_nib; int c_voffset; int c_width; long denominator; charfmt *drawchar(); int dyn_f; byte *endofchardata; int e_offset; fdfmt fd; /* font descriptor */ long firstpage; long firstpar(); fontfmt *font; int fontpathlen; fontfmt *fontptr[MAXFONTS]; gfontfmt gfont; gfontfmt gfontptr[MAXFONTS]; bool inpostamble; long h_offset; bool h_posed; int landscape; long lastpage; long magnification; int manualfeed; long maxh; int maxs; long maxv; long maxhsofar; int maxssofar; long maxvsofar; int maxpages; int max_depth; int max_width; int max_offset; char names[NAMESIZE]; int nextfontdown; char *nextnamesfree; long numerator; int o_offset; short outreverse; byte *pkbase; long pkbuffer[MAXPKSIZE]; byte *pkcharinfo(); char pkfixname[NAMELENGTH]; char pkname[NAMELENGTH]; byte *pk_ptr; long power[8]; long prevpage; prtfmt printer; long printermem_used; byte pxlbuffer[MAXPXLSIZE]; int r_offset; int s; long startcount[10]; int startthere[10]; int startvals; long v_offset; bool v_posed; bool verbose; long h, v, w, x, y, z; #endif /* _DVI2PCL_GLOBALS_INCLUDED */