e2ps-4.34/0040755000175000017500000000000007530652462011270 5ustar kohdakohdae2ps-4.34/Makefile0100644000175000017500000000312707472061145012725 0ustar kohdakohda#============================================================================== # Makefile for e2ps # by Nobuyuki SHIRAKI # Last change : Mon 20 May 2002 11:41:41 #============================================================================== # Directory to install e2ps E2PS_INST_DIR = /usr/local/bin # Tab width TABSTOP = 8 # Margine of top, bottom, left and right TOP = 40.0 BOTTOM = 40.0 LEFT = 40.0 RIGHT = 40.0 # Max lines per one page MAXLINE = 66 # Default font size FONTSIZE = 10.0 # Space ratio between lines NLRATE = 1.1 # Paper settings DEFPAPER = \ -DTABSTOP=$(TABSTOP) -DMAXLINE=$(MAXLINE) \ -DFONTSIZE=$(FONTSIZE) \ -DTOP=$(TOP) -DBOTTOM=$(BOTTOM) \ -DLEFT=$(LEFT) -DRIGHT=$(RIGHT) \ -DNLRATE=$(NLRATE) # If you use a printer without EUC fonts DEFNOEUC = -DJIS_PS # for Tektronix printers # DEFTEKTRO = -DTEKTRO # For Y2K # Y2K = 0 -> System time + 1900 = year # Y2K = 1 -> System time = year # Y2K = 2 -> System time + 2000 = year DEFY2K = -DY2K=0 # Defines DEFINES = $(DEFPAPER) $(DEFNOEUC) $(DEFTEKTRO) $(DEFY2K) # C and C args CC = gcc CC_ARGS = -Wall # CC_ARGS = -Wall -O2 CC_LIB = # strip command STRIP = strip CFLAGS = $(CC_ARGS) $(DEFINES) $(CC_LIB) SRC = e2ps.c ps-font.c wtkf.c OBJ = e2ps.o ps-font.o wtkf.o all: e2ps clean: rm -f *~ e2ps *.o readme: nkf -j README.euc > README.jis nkf -s -Lw README.euc > README.sjis install: e2ps cp e2ps $(E2PS_INST_DIR) @if [ -f $(E2PS_INST_DIR)/e2lpr ]; then rm $(E2PS_INST_DIR)/e2lpr; fi ln -s $(E2PS_INST_DIR)/e2ps $(E2PS_INST_DIR)/e2lpr e2ps: $(OBJ) $(CC) -o $@ $(OBJ) $(CFLAGS) $(STRIP) $@ e2ps-4.34/ps-font.c0100644000175000017500000030674607427523762013044 0ustar kohdakohda/*============================================================================= ps-font.c by Nobuyuki SHIRAKI Last change : Tue 5 February 2002 0:38:05 =============================================================================*/ /*----------------------------------------------------------------------------- Set PS Fonts Width -----------------------------------------------------------------------------*/ #include "e2ps.h" char *gsFonts = "Times-Roman Times-Italic Times-Bold Times-BoldItalic Helvetica Helvetica-Oblique Helvetica-Bold Helvetica-BoldOblique Courier Courier-Oblique Courier-Bold Courier-BoldOblique Symbol AvantGarde-Book AvantGarde_BookOblique AvantGarde_Demi AvantGarde_DemiOblique Bookman-Light Bookman-LightItalic Bookman-Demi Bookman-DemiItalic Helvetica-Narrow Helvetica-Narrow-Oblique Helvetica-Narrow-Bold Helvetica-Narrow-BoldObliqeu NewCenturySchlbl-Roman NewCenturySchlbl-Italic NewCenturySchlbl-Bold NewCenturySchlbl-BoldItalic Palatino-Roman Palatino-Italic Palatino-Bold Palatino-BoldItalic Zapfchancery-MediumItalic ZapfDingbats Ryumin-Light.Hiragana Ryumin-Light.Katakana Gothic-Meduim.Hiragana Gothic-Medium.Katakana "; /* Set PostScript Font Width */ char *ps_font(char *font, float f[256]) { int i; if ( font == NULL || *(font) == '\0' ) { return gsFonts; } else { for ( i = 0 ; i < 256 ; i++ ) f[i] = 0.0; if ( !strcmp(font, "Times-Roman") ) { f[32] = 0.25; f[33] = 0.332764; f[34] = 0.407959; f[35] = 0.5; f[36] = 0.5; f[37] = 0.832764; f[38] = 0.777832; f[39] = 0.332764; f[40] = 0.332764; f[41] = 0.332764; f[42] = 0.5; f[43] = 0.563965; f[44] = 0.25; f[45] = 0.332764; f[46] = 0.25; f[47] = 0.277832; f[48] = 0.5; f[49] = 0.5; f[50] = 0.5; f[51] = 0.5; f[52] = 0.5; f[53] = 0.5; f[54] = 0.5; f[55] = 0.5; f[56] = 0.5; f[57] = 0.5; f[58] = 0.277832; f[59] = 0.277832; f[60] = 0.563965; f[61] = 0.563965; f[62] = 0.563965; f[63] = 0.443848; f[64] = 0.920898; f[65] = 0.721924; f[66] = 0.666992; f[67] = 0.666992; f[68] = 0.721924; f[69] = 0.61084; f[70] = 0.555908; f[71] = 0.721924; f[72] = 0.721924; f[73] = 0.332764; f[74] = 0.388916; f[75] = 0.721924; f[76] = 0.61084; f[77] = 0.888916; f[78] = 0.721924; f[79] = 0.721924; f[80] = 0.555908; f[81] = 0.721924; f[82] = 0.666992; f[83] = 0.555908; f[84] = 0.61084; f[85] = 0.721924; f[86] = 0.721924; f[87] = 0.943848; f[88] = 0.721924; f[89] = 0.721924; f[90] = 0.61084; f[91] = 0.332764; f[92] = 0.277832; f[93] = 0.332764; f[94] = 0.468994; f[95] = 0.5; f[96] = 0.332764; f[97] = 0.443848; f[98] = 0.5; f[99] = 0.443848; f[100] = 0.5; f[101] = 0.443848; f[102] = 0.332764; f[103] = 0.5; f[104] = 0.5; f[105] = 0.277832; f[106] = 0.277832; f[107] = 0.5; f[108] = 0.277832; f[109] = 0.777832; f[110] = 0.5; f[111] = 0.5; f[112] = 0.5; f[113] = 0.5; f[114] = 0.332764; f[115] = 0.388916; f[116] = 0.277832; f[117] = 0.5; f[118] = 0.5; f[119] = 0.721924; f[120] = 0.5; f[121] = 0.5; f[122] = 0.443848; f[123] = 0.47998; f[124] = 0.199951; f[125] = 0.47998; f[126] = 0.540771; f[161] = 0.332764; f[162] = 0.5; f[163] = 0.5; f[164] = 0.166992; f[165] = 0.5; f[166] = 0.5; f[167] = 0.5; f[168] = 0.5; f[169] = 0.179932; f[170] = 0.443848; f[171] = 0.5; f[172] = 0.332764; f[173] = 0.332764; f[174] = 0.555908; f[175] = 0.555908; f[177] = 0.5; f[178] = 0.5; f[179] = 0.5; f[180] = 0.25; f[182] = 0.452881; f[183] = 0.349854; f[184] = 0.332764; f[185] = 0.443848; f[186] = 0.443848; f[187] = 0.5; f[188] = 1.0; f[189] = 1.0; f[191] = 0.443848; f[193] = 0.332764; f[194] = 0.332764; f[195] = 0.332764; f[196] = 0.332764; f[197] = 0.332764; f[198] = 0.332764; f[199] = 0.332764; f[200] = 0.332764; f[202] = 0.332764; f[203] = 0.332764; f[205] = 0.332764; f[206] = 0.332764; f[207] = 0.332764; f[208] = 1.0; f[225] = 0.888916; f[227] = 0.275879; f[232] = 0.61084; f[233] = 0.721924; f[234] = 0.888916; f[235] = 0.309814; f[241] = 0.666992; f[245] = 0.277832; f[248] = 0.277832; f[249] = 0.5; f[250] = 0.721924; f[251] = 0.5; } else if ( !strcmp(font, "Times-Italic") ) { f[32] = 0.25; f[33] = 0.332764; f[34] = 0.419922; f[35] = 0.5; f[36] = 0.5; f[37] = 0.832764; f[38] = 0.777832; f[39] = 0.332764; f[40] = 0.332764; f[41] = 0.332764; f[42] = 0.5; f[43] = 0.674805; f[44] = 0.25; f[45] = 0.332764; f[46] = 0.25; f[47] = 0.277832; f[48] = 0.5; f[49] = 0.5; f[50] = 0.5; f[51] = 0.5; f[52] = 0.5; f[53] = 0.5; f[54] = 0.5; f[55] = 0.5; f[56] = 0.5; f[57] = 0.5; f[58] = 0.332764; f[59] = 0.332764; f[60] = 0.674805; f[61] = 0.674805; f[62] = 0.674805; f[63] = 0.5; f[64] = 0.919922; f[65] = 0.61084; f[66] = 0.61084; f[67] = 0.666992; f[68] = 0.721924; f[69] = 0.61084; f[70] = 0.61084; f[71] = 0.721924; f[72] = 0.721924; f[73] = 0.332764; f[74] = 0.443848; f[75] = 0.666992; f[76] = 0.555908; f[77] = 0.832764; f[78] = 0.666992; f[79] = 0.721924; f[80] = 0.61084; f[81] = 0.721924; f[82] = 0.61084; f[83] = 0.5; f[84] = 0.555908; f[85] = 0.721924; f[86] = 0.61084; f[87] = 0.832764; f[88] = 0.61084; f[89] = 0.555908; f[90] = 0.555908; f[91] = 0.388916; f[92] = 0.277832; f[93] = 0.388916; f[94] = 0.421875; f[95] = 0.5; f[96] = 0.332764; f[97] = 0.5; f[98] = 0.5; f[99] = 0.443848; f[100] = 0.5; f[101] = 0.443848; f[102] = 0.277832; f[103] = 0.5; f[104] = 0.5; f[105] = 0.277832; f[106] = 0.277832; f[107] = 0.443848; f[108] = 0.277832; f[109] = 0.721924; f[110] = 0.5; f[111] = 0.5; f[112] = 0.5; f[113] = 0.5; f[114] = 0.388916; f[115] = 0.388916; f[116] = 0.277832; f[117] = 0.5; f[118] = 0.443848; f[119] = 0.666992; f[120] = 0.443848; f[121] = 0.443848; f[122] = 0.388916; f[123] = 0.399902; f[124] = 0.274902; f[125] = 0.399902; f[126] = 0.540771; f[161] = 0.388916; f[162] = 0.5; f[163] = 0.5; f[164] = 0.166992; f[165] = 0.5; f[166] = 0.5; f[167] = 0.5; f[168] = 0.5; f[169] = 0.213867; f[170] = 0.555908; f[171] = 0.5; f[172] = 0.332764; f[173] = 0.332764; f[174] = 0.5; f[175] = 0.5; f[177] = 0.5; f[178] = 0.5; f[179] = 0.5; f[180] = 0.25; f[182] = 0.522949; f[183] = 0.349854; f[184] = 0.332764; f[185] = 0.555908; f[186] = 0.555908; f[187] = 0.5; f[188] = 0.888916; f[189] = 1.0; f[191] = 0.5; f[193] = 0.332764; f[194] = 0.332764; f[195] = 0.332764; f[196] = 0.332764; f[197] = 0.332764; f[198] = 0.332764; f[199] = 0.332764; f[200] = 0.332764; f[202] = 0.332764; f[203] = 0.332764; f[205] = 0.332764; f[206] = 0.332764; f[207] = 0.332764; f[208] = 0.888916; f[225] = 0.888916; f[227] = 0.275879; f[232] = 0.555908; f[233] = 0.721924; f[234] = 0.943848; f[235] = 0.309814; f[241] = 0.666992; f[245] = 0.277832; f[248] = 0.277832; f[249] = 0.5; f[250] = 0.666992; f[251] = 0.5; } else if ( !strcmp(font, "Times-Bold") ) { f[32] = 0.25; f[33] = 0.332764; f[34] = 0.554932; f[35] = 0.5; f[36] = 0.5; f[37] = 1.0; f[38] = 0.832764; f[39] = 0.332764; f[40] = 0.332764; f[41] = 0.332764; f[42] = 0.5; f[43] = 0.569824; f[44] = 0.25; f[45] = 0.332764; f[46] = 0.25; f[47] = 0.277832; f[48] = 0.5; f[49] = 0.5; f[50] = 0.5; f[51] = 0.5; f[52] = 0.5; f[53] = 0.5; f[54] = 0.5; f[55] = 0.5; f[56] = 0.5; f[57] = 0.5; f[58] = 0.332764; f[59] = 0.332764; f[60] = 0.569824; f[61] = 0.569824; f[62] = 0.569824; f[63] = 0.5; f[64] = 0.929932; f[65] = 0.721924; f[66] = 0.666992; f[67] = 0.721924; f[68] = 0.721924; f[69] = 0.666992; f[70] = 0.61084; f[71] = 0.777832; f[72] = 0.777832; f[73] = 0.388916; f[74] = 0.5; f[75] = 0.777832; f[76] = 0.666992; f[77] = 0.943848; f[78] = 0.721924; f[79] = 0.777832; f[80] = 0.61084; f[81] = 0.777832; f[82] = 0.721924; f[83] = 0.555908; f[84] = 0.666992; f[85] = 0.721924; f[86] = 0.721924; f[87] = 1.0; f[88] = 0.721924; f[89] = 0.721924; f[90] = 0.666992; f[91] = 0.332764; f[92] = 0.277832; f[93] = 0.332764; f[94] = 0.580811; f[95] = 0.5; f[96] = 0.332764; f[97] = 0.5; f[98] = 0.555908; f[99] = 0.443848; f[100] = 0.555908; f[101] = 0.443848; f[102] = 0.332764; f[103] = 0.5; f[104] = 0.555908; f[105] = 0.277832; f[106] = 0.332764; f[107] = 0.555908; f[108] = 0.277832; f[109] = 0.832764; f[110] = 0.555908; f[111] = 0.5; f[112] = 0.555908; f[113] = 0.555908; f[114] = 0.443848; f[115] = 0.388916; f[116] = 0.332764; f[117] = 0.555908; f[118] = 0.5; f[119] = 0.721924; f[120] = 0.5; f[121] = 0.5; f[122] = 0.443848; f[123] = 0.393799; f[124] = 0.219971; f[125] = 0.393799; f[126] = 0.519775; f[161] = 0.332764; f[162] = 0.5; f[163] = 0.5; f[164] = 0.166992; f[165] = 0.5; f[166] = 0.5; f[167] = 0.5; f[168] = 0.5; f[169] = 0.277832; f[170] = 0.5; f[171] = 0.5; f[172] = 0.332764; f[173] = 0.332764; f[174] = 0.555908; f[175] = 0.555908; f[177] = 0.5; f[178] = 0.5; f[179] = 0.5; f[180] = 0.25; f[182] = 0.539795; f[183] = 0.349854; f[184] = 0.332764; f[185] = 0.5; f[186] = 0.5; f[187] = 0.5; f[188] = 1.0; f[189] = 1.0; f[191] = 0.5; f[193] = 0.332764; f[194] = 0.332764; f[195] = 0.332764; f[196] = 0.332764; f[197] = 0.332764; f[198] = 0.332764; f[199] = 0.332764; f[200] = 0.332764; f[202] = 0.332764; f[203] = 0.332764; f[205] = 0.332764; f[206] = 0.332764; f[207] = 0.332764; f[208] = 1.0; f[225] = 1.0; f[227] = 0.299805; f[232] = 0.666992; f[233] = 0.777832; f[234] = 1.0; f[235] = 0.329834; f[241] = 0.721924; f[245] = 0.277832; f[248] = 0.277832; f[249] = 0.5; f[250] = 0.721924; f[251] = 0.555908; } else if ( !strcmp(font, "Times-BoldItalic") ) { f[32] = 0.25; f[33] = 0.388916; f[34] = 0.554932; f[35] = 0.5; f[36] = 0.5; f[37] = 0.832764; f[38] = 0.777832; f[39] = 0.332764; f[40] = 0.332764; f[41] = 0.332764; f[42] = 0.5; f[43] = 0.569824; f[44] = 0.25; f[45] = 0.332764; f[46] = 0.25; f[47] = 0.277832; f[48] = 0.5; f[49] = 0.5; f[50] = 0.5; f[51] = 0.5; f[52] = 0.5; f[53] = 0.5; f[54] = 0.5; f[55] = 0.5; f[56] = 0.5; f[57] = 0.5; f[58] = 0.332764; f[59] = 0.332764; f[60] = 0.569824; f[61] = 0.569824; f[62] = 0.569824; f[63] = 0.5; f[64] = 0.831787; f[65] = 0.666992; f[66] = 0.666992; f[67] = 0.666992; f[68] = 0.721924; f[69] = 0.666992; f[70] = 0.666992; f[71] = 0.721924; f[72] = 0.777832; f[73] = 0.388916; f[74] = 0.5; f[75] = 0.666992; f[76] = 0.61084; f[77] = 0.888916; f[78] = 0.721924; f[79] = 0.721924; f[80] = 0.61084; f[81] = 0.721924; f[82] = 0.666992; f[83] = 0.555908; f[84] = 0.61084; f[85] = 0.721924; f[86] = 0.666992; f[87] = 0.888916; f[88] = 0.666992; f[89] = 0.61084; f[90] = 0.61084; f[91] = 0.332764; f[92] = 0.277832; f[93] = 0.332764; f[94] = 0.569824; f[95] = 0.5; f[96] = 0.332764; f[97] = 0.5; f[98] = 0.5; f[99] = 0.443848; f[100] = 0.5; f[101] = 0.443848; f[102] = 0.332764; f[103] = 0.5; f[104] = 0.555908; f[105] = 0.277832; f[106] = 0.277832; f[107] = 0.5; f[108] = 0.277832; f[109] = 0.777832; f[110] = 0.555908; f[111] = 0.5; f[112] = 0.5; f[113] = 0.5; f[114] = 0.388916; f[115] = 0.388916; f[116] = 0.277832; f[117] = 0.555908; f[118] = 0.443848; f[119] = 0.666992; f[120] = 0.5; f[121] = 0.443848; f[122] = 0.388916; f[123] = 0.3479; f[124] = 0.219971; f[125] = 0.3479; f[126] = 0.569824; f[161] = 0.388916; f[162] = 0.5; f[163] = 0.5; f[164] = 0.166992; f[165] = 0.5; f[166] = 0.5; f[167] = 0.5; f[168] = 0.5; f[169] = 0.277832; f[170] = 0.5; f[171] = 0.5; f[172] = 0.332764; f[173] = 0.332764; f[174] = 0.555908; f[175] = 0.555908; f[177] = 0.5; f[178] = 0.5; f[179] = 0.5; f[180] = 0.25; f[182] = 0.5; f[183] = 0.349854; f[184] = 0.332764; f[185] = 0.5; f[186] = 0.5; f[187] = 0.5; f[188] = 1.0; f[189] = 1.0; f[191] = 0.5; f[193] = 0.332764; f[194] = 0.332764; f[195] = 0.332764; f[196] = 0.332764; f[197] = 0.332764; f[198] = 0.332764; f[199] = 0.332764; f[200] = 0.332764; f[202] = 0.332764; f[203] = 0.332764; f[205] = 0.332764; f[206] = 0.332764; f[207] = 0.332764; f[208] = 1.0; f[225] = 0.943848; f[227] = 0.265869; f[232] = 0.61084; f[233] = 0.721924; f[234] = 0.943848; f[235] = 0.299805; f[241] = 0.721924; f[245] = 0.277832; f[248] = 0.277832; f[249] = 0.5; f[250] = 0.721924; f[251] = 0.5; } else if ( !strcmp(font, "Helvetica") ) { f[32] = 0.277832; f[33] = 0.277832; f[34] = 0.35498; f[35] = 0.555908; f[36] = 0.555908; f[37] = 0.888916; f[38] = 0.666992; f[39] = 0.221924; f[40] = 0.332764; f[41] = 0.332764; f[42] = 0.388916; f[43] = 0.583984; f[44] = 0.277832; f[45] = 0.332764; f[46] = 0.277832; f[47] = 0.277832; f[48] = 0.555908; f[49] = 0.555908; f[50] = 0.555908; f[51] = 0.555908; f[52] = 0.555908; f[53] = 0.555908; f[54] = 0.555908; f[55] = 0.555908; f[56] = 0.555908; f[57] = 0.555908; f[58] = 0.277832; f[59] = 0.277832; f[60] = 0.583984; f[61] = 0.583984; f[62] = 0.583984; f[63] = 0.555908; f[64] = 1.01489; f[65] = 0.666992; f[66] = 0.666992; f[67] = 0.721924; f[68] = 0.721924; f[69] = 0.666992; f[70] = 0.61084; f[71] = 0.777832; f[72] = 0.721924; f[73] = 0.277832; f[74] = 0.5; f[75] = 0.666992; f[76] = 0.555908; f[77] = 0.832764; f[78] = 0.721924; f[79] = 0.777832; f[80] = 0.666992; f[81] = 0.777832; f[82] = 0.721924; f[83] = 0.666992; f[84] = 0.61084; f[85] = 0.721924; f[86] = 0.666992; f[87] = 0.943848; f[88] = 0.666992; f[89] = 0.666992; f[90] = 0.61084; f[91] = 0.277832; f[92] = 0.277832; f[93] = 0.277832; f[94] = 0.468994; f[95] = 0.555908; f[96] = 0.221924; f[97] = 0.555908; f[98] = 0.555908; f[99] = 0.5; f[100] = 0.555908; f[101] = 0.555908; f[102] = 0.277832; f[103] = 0.555908; f[104] = 0.555908; f[105] = 0.221924; f[106] = 0.221924; f[107] = 0.5; f[108] = 0.221924; f[109] = 0.832764; f[110] = 0.555908; f[111] = 0.555908; f[112] = 0.555908; f[113] = 0.555908; f[114] = 0.332764; f[115] = 0.5; f[116] = 0.277832; f[117] = 0.555908; f[118] = 0.5; f[119] = 0.721924; f[120] = 0.5; f[121] = 0.5; f[122] = 0.5; f[123] = 0.333984; f[124] = 0.259766; f[125] = 0.333984; f[126] = 0.583984; f[161] = 0.332764; f[162] = 0.555908; f[163] = 0.555908; f[164] = 0.166992; f[165] = 0.555908; f[166] = 0.555908; f[167] = 0.555908; f[168] = 0.555908; f[169] = 0.190918; f[170] = 0.332764; f[171] = 0.555908; f[172] = 0.332764; f[173] = 0.332764; f[174] = 0.5; f[175] = 0.5; f[177] = 0.555908; f[178] = 0.555908; f[179] = 0.555908; f[180] = 0.277832; f[182] = 0.536865; f[183] = 0.349854; f[184] = 0.221924; f[185] = 0.332764; f[186] = 0.332764; f[187] = 0.555908; f[188] = 1.0; f[189] = 1.0; f[191] = 0.61084; f[193] = 0.332764; f[194] = 0.332764; f[195] = 0.332764; f[196] = 0.332764; f[197] = 0.332764; f[198] = 0.332764; f[199] = 0.332764; f[200] = 0.332764; f[202] = 0.332764; f[203] = 0.332764; f[205] = 0.332764; f[206] = 0.332764; f[207] = 0.332764; f[208] = 1.0; f[225] = 1.0; f[227] = 0.369873; f[232] = 0.555908; f[233] = 0.777832; f[234] = 1.0; f[235] = 0.36499; f[241] = 0.888916; f[245] = 0.277832; f[248] = 0.221924; f[249] = 0.61084; f[250] = 0.943848; f[251] = 0.61084; } else if ( !strcmp(font, "Helvetica-Oblique") ) { f[32] = 0.277832; f[33] = 0.277832; f[34] = 0.35498; f[35] = 0.555908; f[36] = 0.555908; f[37] = 0.888916; f[38] = 0.666992; f[39] = 0.221924; f[40] = 0.332764; f[41] = 0.332764; f[42] = 0.388916; f[43] = 0.583984; f[44] = 0.277832; f[45] = 0.332764; f[46] = 0.277832; f[47] = 0.277832; f[48] = 0.555908; f[49] = 0.555908; f[50] = 0.555908; f[51] = 0.555908; f[52] = 0.555908; f[53] = 0.555908; f[54] = 0.555908; f[55] = 0.555908; f[56] = 0.555908; f[57] = 0.555908; f[58] = 0.277832; f[59] = 0.277832; f[60] = 0.583984; f[61] = 0.583984; f[62] = 0.583984; f[63] = 0.555908; f[64] = 1.01489; f[65] = 0.666992; f[66] = 0.666992; f[67] = 0.721924; f[68] = 0.721924; f[69] = 0.666992; f[70] = 0.61084; f[71] = 0.777832; f[72] = 0.721924; f[73] = 0.277832; f[74] = 0.5; f[75] = 0.666992; f[76] = 0.555908; f[77] = 0.832764; f[78] = 0.721924; f[79] = 0.777832; f[80] = 0.666992; f[81] = 0.777832; f[82] = 0.721924; f[83] = 0.666992; f[84] = 0.61084; f[85] = 0.721924; f[86] = 0.666992; f[87] = 0.943848; f[88] = 0.666992; f[89] = 0.666992; f[90] = 0.61084; f[91] = 0.277832; f[92] = 0.277832; f[93] = 0.277832; f[94] = 0.468994; f[95] = 0.555908; f[96] = 0.221924; f[97] = 0.555908; f[98] = 0.555908; f[99] = 0.5; f[100] = 0.555908; f[101] = 0.555908; f[102] = 0.277832; f[103] = 0.555908; f[104] = 0.555908; f[105] = 0.221924; f[106] = 0.221924; f[107] = 0.5; f[108] = 0.221924; f[109] = 0.832764; f[110] = 0.555908; f[111] = 0.555908; f[112] = 0.555908; f[113] = 0.555908; f[114] = 0.332764; f[115] = 0.5; f[116] = 0.277832; f[117] = 0.555908; f[118] = 0.5; f[119] = 0.721924; f[120] = 0.5; f[121] = 0.5; f[122] = 0.5; f[123] = 0.333984; f[124] = 0.259766; f[125] = 0.333984; f[126] = 0.583984; f[161] = 0.332764; f[162] = 0.555908; f[163] = 0.555908; f[164] = 0.166992; f[165] = 0.555908; f[166] = 0.555908; f[167] = 0.555908; f[168] = 0.555908; f[169] = 0.190918; f[170] = 0.332764; f[171] = 0.555908; f[172] = 0.332764; f[173] = 0.332764; f[174] = 0.5; f[175] = 0.5; f[177] = 0.555908; f[178] = 0.555908; f[179] = 0.555908; f[180] = 0.277832; f[182] = 0.536865; f[183] = 0.349854; f[184] = 0.221924; f[185] = 0.332764; f[186] = 0.332764; f[187] = 0.555908; f[188] = 1.0; f[189] = 1.0; f[191] = 0.61084; f[193] = 0.332764; f[194] = 0.332764; f[195] = 0.332764; f[196] = 0.332764; f[197] = 0.332764; f[198] = 0.332764; f[199] = 0.332764; f[200] = 0.332764; f[202] = 0.332764; f[203] = 0.332764; f[205] = 0.332764; f[206] = 0.332764; f[207] = 0.332764; f[208] = 1.0; f[225] = 1.0; f[227] = 0.369873; f[232] = 0.555908; f[233] = 0.777832; f[234] = 1.0; f[235] = 0.36499; f[241] = 0.888916; f[245] = 0.277832; f[248] = 0.221924; f[249] = 0.61084; f[250] = 0.943848; f[251] = 0.61084; } else if ( !strcmp(font, "Helvetica-Bold") ) { f[32] = 0.277832; f[33] = 0.332764; f[34] = 0.473877; f[35] = 0.555908; f[36] = 0.555908; f[37] = 0.888916; f[38] = 0.721924; f[39] = 0.277832; f[40] = 0.332764; f[41] = 0.332764; f[42] = 0.388916; f[43] = 0.583984; f[44] = 0.277832; f[45] = 0.332764; f[46] = 0.277832; f[47] = 0.277832; f[48] = 0.555908; f[49] = 0.555908; f[50] = 0.555908; f[51] = 0.555908; f[52] = 0.555908; f[53] = 0.555908; f[54] = 0.555908; f[55] = 0.555908; f[56] = 0.555908; f[57] = 0.555908; f[58] = 0.332764; f[59] = 0.332764; f[60] = 0.583984; f[61] = 0.583984; f[62] = 0.583984; f[63] = 0.61084; f[64] = 0.974854; f[65] = 0.721924; f[66] = 0.721924; f[67] = 0.721924; f[68] = 0.721924; f[69] = 0.666992; f[70] = 0.61084; f[71] = 0.777832; f[72] = 0.721924; f[73] = 0.277832; f[74] = 0.555908; f[75] = 0.721924; f[76] = 0.61084; f[77] = 0.832764; f[78] = 0.721924; f[79] = 0.777832; f[80] = 0.666992; f[81] = 0.777832; f[82] = 0.721924; f[83] = 0.666992; f[84] = 0.61084; f[85] = 0.721924; f[86] = 0.666992; f[87] = 0.943848; f[88] = 0.666992; f[89] = 0.666992; f[90] = 0.61084; f[91] = 0.332764; f[92] = 0.277832; f[93] = 0.332764; f[94] = 0.583984; f[95] = 0.555908; f[96] = 0.277832; f[97] = 0.555908; f[98] = 0.61084; f[99] = 0.555908; f[100] = 0.61084; f[101] = 0.555908; f[102] = 0.332764; f[103] = 0.61084; f[104] = 0.61084; f[105] = 0.277832; f[106] = 0.277832; f[107] = 0.555908; f[108] = 0.277832; f[109] = 0.888916; f[110] = 0.61084; f[111] = 0.61084; f[112] = 0.61084; f[113] = 0.61084; f[114] = 0.388916; f[115] = 0.555908; f[116] = 0.332764; f[117] = 0.61084; f[118] = 0.555908; f[119] = 0.777832; f[120] = 0.555908; f[121] = 0.555908; f[122] = 0.5; f[123] = 0.388916; f[124] = 0.279785; f[125] = 0.388916; f[126] = 0.583984; f[161] = 0.332764; f[162] = 0.555908; f[163] = 0.555908; f[164] = 0.166992; f[165] = 0.555908; f[166] = 0.555908; f[167] = 0.555908; f[168] = 0.555908; f[169] = 0.237793; f[170] = 0.5; f[171] = 0.555908; f[172] = 0.332764; f[173] = 0.332764; f[174] = 0.61084; f[175] = 0.61084; f[177] = 0.555908; f[178] = 0.555908; f[179] = 0.555908; f[180] = 0.277832; f[182] = 0.555908; f[183] = 0.349854; f[184] = 0.277832; f[185] = 0.5; f[186] = 0.5; f[187] = 0.555908; f[188] = 1.0; f[189] = 1.0; f[191] = 0.61084; f[193] = 0.332764; f[194] = 0.332764; f[195] = 0.332764; f[196] = 0.332764; f[197] = 0.332764; f[198] = 0.332764; f[199] = 0.332764; f[200] = 0.332764; f[202] = 0.332764; f[203] = 0.332764; f[205] = 0.332764; f[206] = 0.332764; f[207] = 0.332764; f[208] = 1.0; f[225] = 1.0; f[227] = 0.369873; f[232] = 0.61084; f[233] = 0.777832; f[234] = 1.0; f[235] = 0.36499; f[241] = 0.888916; f[245] = 0.277832; f[248] = 0.277832; f[249] = 0.61084; f[250] = 0.943848; f[251] = 0.61084; } else if ( !strcmp(font, "Helvetica-BoldOblique") ) { f[32] = 0.277832; f[33] = 0.332764; f[34] = 0.473877; f[35] = 0.555908; f[36] = 0.555908; f[37] = 0.888916; f[38] = 0.721924; f[39] = 0.277832; f[40] = 0.332764; f[41] = 0.332764; f[42] = 0.388916; f[43] = 0.583984; f[44] = 0.277832; f[45] = 0.332764; f[46] = 0.277832; f[47] = 0.277832; f[48] = 0.555908; f[49] = 0.555908; f[50] = 0.555908; f[51] = 0.555908; f[52] = 0.555908; f[53] = 0.555908; f[54] = 0.555908; f[55] = 0.555908; f[56] = 0.555908; f[57] = 0.555908; f[58] = 0.332764; f[59] = 0.332764; f[60] = 0.583984; f[61] = 0.583984; f[62] = 0.583984; f[63] = 0.61084; f[64] = 0.974854; f[65] = 0.721924; f[66] = 0.721924; f[67] = 0.721924; f[68] = 0.721924; f[69] = 0.666992; f[70] = 0.61084; f[71] = 0.777832; f[72] = 0.721924; f[73] = 0.277832; f[74] = 0.555908; f[75] = 0.721924; f[76] = 0.61084; f[77] = 0.832764; f[78] = 0.721924; f[79] = 0.777832; f[80] = 0.666992; f[81] = 0.777832; f[82] = 0.721924; f[83] = 0.666992; f[84] = 0.61084; f[85] = 0.721924; f[86] = 0.666992; f[87] = 0.943848; f[88] = 0.666992; f[89] = 0.666992; f[90] = 0.61084; f[91] = 0.332764; f[92] = 0.277832; f[93] = 0.332764; f[94] = 0.583984; f[95] = 0.555908; f[96] = 0.277832; f[97] = 0.555908; f[98] = 0.61084; f[99] = 0.555908; f[100] = 0.61084; f[101] = 0.555908; f[102] = 0.332764; f[103] = 0.61084; f[104] = 0.61084; f[105] = 0.277832; f[106] = 0.277832; f[107] = 0.555908; f[108] = 0.277832; f[109] = 0.888916; f[110] = 0.61084; f[111] = 0.61084; f[112] = 0.61084; f[113] = 0.61084; f[114] = 0.388916; f[115] = 0.555908; f[116] = 0.332764; f[117] = 0.61084; f[118] = 0.555908; f[119] = 0.777832; f[120] = 0.555908; f[121] = 0.555908; f[122] = 0.5; f[123] = 0.388916; f[124] = 0.279785; f[125] = 0.388916; f[126] = 0.583984; f[161] = 0.332764; f[162] = 0.555908; f[163] = 0.555908; f[164] = 0.166992; f[165] = 0.555908; f[166] = 0.555908; f[167] = 0.555908; f[168] = 0.555908; f[169] = 0.237793; f[170] = 0.5; f[171] = 0.555908; f[172] = 0.332764; f[173] = 0.332764; f[174] = 0.61084; f[175] = 0.61084; f[177] = 0.555908; f[178] = 0.555908; f[179] = 0.555908; f[180] = 0.277832; f[182] = 0.555908; f[183] = 0.349854; f[184] = 0.277832; f[185] = 0.5; f[186] = 0.5; f[187] = 0.555908; f[188] = 1.0; f[189] = 1.0; f[191] = 0.61084; f[193] = 0.332764; f[194] = 0.332764; f[195] = 0.332764; f[196] = 0.332764; f[197] = 0.332764; f[198] = 0.332764; f[199] = 0.332764; f[200] = 0.332764; f[202] = 0.332764; f[203] = 0.332764; f[205] = 0.332764; f[206] = 0.332764; f[207] = 0.332764; f[208] = 1.0; f[225] = 1.0; f[227] = 0.369873; f[232] = 0.61084; f[233] = 0.777832; f[234] = 1.0; f[235] = 0.36499; f[241] = 0.888916; f[245] = 0.277832; f[248] = 0.277832; f[249] = 0.61084; f[250] = 0.943848; f[251] = 0.61084; } else if ( !strcmp(font, "Courier") ) { for ( i = 0 ; i < 256 ; i++ ) { f[i] = 0.599854; } } else if ( !strcmp(font, "Courier-Oblique") ) { for ( i = 0 ; i < 256 ; i++ ) { f[i] = 0.599854; } } else if ( !strcmp(font, "Courier-Bold") ) { for ( i = 0 ; i < 256 ; i++ ) { f[i] = 0.599854; } } else if ( !strcmp(font, "Courier-BoldOblique") ) { for ( i = 0 ; i < 256 ; i++ ) { f[i] = 0.599854; } } else if ( !strcmp(font, "Symbol") ) { f[32] = 0.25; f[33] = 0.332764; f[34] = 0.712891; f[35] = 0.5; f[36] = 0.548828; f[37] = 0.832764; f[38] = 0.777832; f[39] = 0.438965; f[40] = 0.332764; f[41] = 0.332764; f[42] = 0.5; f[43] = 0.548828; f[44] = 0.25; f[45] = 0.548828; f[46] = 0.25; f[47] = 0.277832; f[48] = 0.5; f[49] = 0.5; f[50] = 0.5; f[51] = 0.5; f[52] = 0.5; f[53] = 0.5; f[54] = 0.5; f[55] = 0.5; f[56] = 0.5; f[57] = 0.5; f[58] = 0.277832; f[59] = 0.277832; f[60] = 0.548828; f[61] = 0.548828; f[62] = 0.548828; f[63] = 0.443848; f[64] = 0.548828; f[65] = 0.721924; f[66] = 0.666992; f[67] = 0.721924; f[68] = 0.611816; f[69] = 0.61084; f[70] = 0.762939; f[71] = 0.602783; f[72] = 0.721924; f[73] = 0.332764; f[74] = 0.630859; f[75] = 0.721924; f[76] = 0.685791; f[77] = 0.888916; f[78] = 0.721924; f[79] = 0.721924; f[80] = 0.767822; f[81] = 0.740967; f[82] = 0.555908; f[83] = 0.591797; f[84] = 0.61084; f[85] = 0.689941; f[86] = 0.438965; f[87] = 0.767822; f[88] = 0.644775; f[89] = 0.794922; f[90] = 0.61084; f[91] = 0.332764; f[92] = 0.862793; f[93] = 0.332764; f[94] = 0.657959; f[95] = 0.5; f[96] = 0.5; f[97] = 0.630859; f[98] = 0.548828; f[99] = 0.548828; f[100] = 0.493896; f[101] = 0.438965; f[102] = 0.520996; f[103] = 0.410889; f[104] = 0.602783; f[105] = 0.328857; f[106] = 0.602783; f[107] = 0.548828; f[108] = 0.548828; f[109] = 0.575928; f[110] = 0.520996; f[111] = 0.548828; f[112] = 0.548828; f[113] = 0.520996; f[114] = 0.548828; f[115] = 0.602783; f[116] = 0.438965; f[117] = 0.575928; f[118] = 0.712891; f[119] = 0.685791; f[120] = 0.49292; f[121] = 0.685791; f[122] = 0.493896; f[123] = 0.47998; f[124] = 0.199951; f[125] = 0.47998; f[126] = 0.548828; f[161] = 0.619873; f[162] = 0.246826; f[163] = 0.548828; f[164] = 0.166992; f[165] = 0.712891; f[166] = 0.5; f[167] = 0.75293; f[168] = 0.75293; f[169] = 0.75293; f[170] = 0.75293; f[171] = 1.04199; f[172] = 0.986816; f[173] = 0.602783; f[174] = 0.986816; f[175] = 0.602783; f[176] = 0.399902; f[177] = 0.548828; f[178] = 0.410889; f[179] = 0.548828; f[180] = 0.548828; f[181] = 0.712891; f[182] = 0.493896; f[183] = 0.459961; f[184] = 0.548828; f[185] = 0.548828; f[186] = 0.548828; f[187] = 0.548828; f[188] = 1.0; f[189] = 0.602783; f[190] = 1.0; f[191] = 0.657959; f[192] = 0.822998; f[193] = 0.685791; f[194] = 0.794922; f[195] = 0.986816; f[196] = 0.767822; f[197] = 0.767822; f[198] = 0.822998; f[199] = 0.767822; f[200] = 0.767822; f[201] = 0.712891; f[202] = 0.712891; f[203] = 0.712891; f[204] = 0.712891; f[205] = 0.712891; f[206] = 0.712891; f[207] = 0.712891; f[208] = 0.767822; f[209] = 0.712891; f[210] = 0.789795; f[211] = 0.789795; f[212] = 0.889893; f[213] = 0.822998; f[214] = 0.548828; f[215] = 0.25; f[216] = 0.712891; f[217] = 0.602783; f[218] = 0.602783; f[219] = 1.04199; f[220] = 0.986816; f[221] = 0.602783; f[222] = 0.986816; f[223] = 0.602783; f[224] = 0.493896; f[225] = 0.328857; f[226] = 0.789795; f[227] = 0.789795; f[228] = 0.785889; f[229] = 0.712891; f[230] = 0.383789; f[231] = 0.383789; f[232] = 0.383789; f[233] = 0.383789; f[234] = 0.383789; f[235] = 0.383789; f[236] = 0.493896; f[237] = 0.493896; f[238] = 0.493896; f[239] = 0.493896; f[241] = 0.328857; f[242] = 0.273926; f[243] = 0.685791; f[244] = 0.685791; f[245] = 0.685791; f[246] = 0.383789; f[247] = 0.383789; f[248] = 0.383789; f[249] = 0.383789; f[250] = 0.383789; f[251] = 0.383789; f[252] = 0.493896; f[253] = 0.493896; f[254] = 0.493896; } else if ( !strcmp(font, "AvantGarde-Book") || !strcmp(font, "AvantGarde-BookOblique") ) { f[32] = 0.276855; f[33] = 0.294922; f[34] = 0.308838; f[35] = 0.719971; f[36] = 0.553955; f[37] = 0.774902; f[38] = 0.756836; f[39] = 0.35083; f[40] = 0.368896; f[41] = 0.368896; f[42] = 0.424805; f[43] = 0.605957; f[44] = 0.276855; f[45] = 0.331787; f[46] = 0.276855; f[47] = 0.436768; f[48] = 0.553955; f[49] = 0.553955; f[50] = 0.553955; f[51] = 0.553955; f[52] = 0.553955; f[53] = 0.553955; f[54] = 0.553955; f[55] = 0.553955; f[56] = 0.553955; f[57] = 0.553955; f[58] = 0.276855; f[59] = 0.276855; f[60] = 0.605957; f[61] = 0.605957; f[62] = 0.605957; f[63] = 0.59082; f[64] = 0.866943; f[65] = 0.73999; f[66] = 0.573975; f[67] = 0.812988; f[68] = 0.743896; f[69] = 0.535889; f[70] = 0.484863; f[71] = 0.871826; f[72] = 0.682861; f[73] = 0.22583; f[74] = 0.481934; f[75] = 0.59082; f[76] = 0.461914; f[77] = 0.918945; f[78] = 0.73999; f[79] = 0.868896; f[80] = 0.591797; f[81] = 0.87085; f[82] = 0.606934; f[83] = 0.497803; f[84] = 0.425781; f[85] = 0.654785; f[86] = 0.701904; f[87] = 0.959961; f[88] = 0.608887; f[89] = 0.591797; f[90] = 0.47998; f[91] = 0.35083; f[92] = 0.60498; f[93] = 0.35083; f[94] = 0.671875; f[95] = 0.5; f[96] = 0.35083; f[97] = 0.682861; f[98] = 0.681885; f[99] = 0.646973; f[100] = 0.684814; f[101] = 0.649902; f[102] = 0.313965; f[103] = 0.672852; f[104] = 0.609863; f[105] = 0.199951; f[106] = 0.202881; f[107] = 0.501953; f[108] = 0.199951; f[109] = 0.937988; f[110] = 0.609863; f[111] = 0.654785; f[112] = 0.681885; f[113] = 0.681885; f[114] = 0.300781; f[115] = 0.387939; f[116] = 0.338867; f[117] = 0.60791; f[118] = 0.553955; f[119] = 0.830811; f[120] = 0.47998; f[121] = 0.535889; f[122] = 0.424805; f[123] = 0.35083; f[124] = 0.671875; f[125] = 0.35083; f[126] = 0.605957; f[161] = 0.294922; f[162] = 0.553955; f[163] = 0.553955; f[164] = 0.165771; f[165] = 0.553955; f[166] = 0.553955; f[169] = 0.197998; f[170] = 0.501953; f[171] = 0.424805; f[172] = 0.250977; f[173] = 0.250977; f[174] = 0.486816; f[175] = 0.484863; f[177] = 0.5; f[179] = 0.552979; f[180] = 0.276855; f[183] = 0.605957; f[185] = 0.501953; f[186] = 0.483887; f[187] = 0.424805; f[188] = 1.0; f[191] = 0.59082; f[193] = 0.37793; f[194] = 0.375; f[195] = 0.501953; f[196] = 0.438965; f[200] = 0.368896; f[203] = 0.323975; f[205] = 0.551758; f[208] = 1.0; f[225] = 0.991943; f[234] = 1.19385; f[241] = 1.15698; f[245] = 0.199951; f[250] = 1.13696; f[251] = 0.553955; } else if ( !strcmp(font, "AvantGarde-Demi") || !strcmp(font, "AvantGarde-DemiOblique") ) { f[32] = 0.279785; f[33] = 0.279785; f[34] = 0.359863; f[35] = 0.599854; f[36] = 0.559814; f[37] = 0.859863; f[38] = 0.679932; f[39] = 0.279785; f[40] = 0.379883; f[41] = 0.379883; f[42] = 0.439941; f[43] = 0.599854; f[44] = 0.279785; f[45] = 0.419922; f[46] = 0.279785; f[47] = 0.459961; f[48] = 0.559814; f[49] = 0.559814; f[50] = 0.559814; f[51] = 0.559814; f[52] = 0.559814; f[53] = 0.559814; f[54] = 0.559814; f[55] = 0.559814; f[56] = 0.559814; f[57] = 0.559814; f[58] = 0.279785; f[59] = 0.279785; f[60] = 0.599854; f[61] = 0.599854; f[62] = 0.599854; f[63] = 0.559814; f[64] = 0.73999; f[65] = 0.73999; f[66] = 0.579834; f[67] = 0.779785; f[68] = 0.699951; f[69] = 0.519775; f[70] = 0.47998; f[71] = 0.839844; f[72] = 0.679932; f[73] = 0.279785; f[74] = 0.47998; f[75] = 0.619873; f[76] = 0.439941; f[77] = 0.899902; f[78] = 0.73999; f[79] = 0.839844; f[80] = 0.559814; f[81] = 0.839844; f[82] = 0.579834; f[83] = 0.519775; f[84] = 0.419922; f[85] = 0.639893; f[86] = 0.699951; f[87] = 0.899902; f[88] = 0.679932; f[89] = 0.619873; f[90] = 0.5; f[91] = 0.319824; f[92] = 0.639893; f[93] = 0.319824; f[94] = 0.599854; f[95] = 0.5; f[96] = 0.279785; f[97] = 0.659912; f[98] = 0.659912; f[99] = 0.639893; f[100] = 0.659912; f[101] = 0.639893; f[102] = 0.279785; f[103] = 0.659912; f[104] = 0.599854; f[105] = 0.23999; f[106] = 0.259766; f[107] = 0.579834; f[108] = 0.23999; f[109] = 0.939941; f[110] = 0.599854; f[111] = 0.639893; f[112] = 0.659912; f[113] = 0.659912; f[114] = 0.319824; f[115] = 0.439941; f[116] = 0.299805; f[117] = 0.599854; f[118] = 0.559814; f[119] = 0.799805; f[120] = 0.559814; f[121] = 0.579834; f[122] = 0.459961; f[123] = 0.339844; f[124] = 0.599854; f[125] = 0.339844; f[126] = 0.599854; f[161] = 0.279785; f[162] = 0.559814; f[163] = 0.559814; f[164] = 0.159912; f[165] = 0.559814; f[166] = 0.559814; f[169] = 0.219971; f[170] = 0.47998; f[171] = 0.459961; f[172] = 0.23999; f[173] = 0.23999; f[174] = 0.519775; f[175] = 0.519775; f[177] = 0.5; f[179] = 0.559814; f[180] = 0.279785; f[183] = 0.599854; f[185] = 0.47998; f[186] = 0.47998; f[187] = 0.459961; f[188] = 1.0; f[191] = 0.559814; f[193] = 0.419922; f[194] = 0.419922; f[195] = 0.539795; f[196] = 0.47998; f[200] = 0.5; f[203] = 0.339844; f[205] = 0.699951; f[208] = 1.0; f[225] = 0.899902; f[234] = 1.05981; f[241] = 1.07983; f[245] = 0.23999; f[250] = 1.07983; f[251] = 0.599854; } else if ( !strcmp(font, "Bookman-Light") ) { f[32] = 0.319824; f[33] = 0.299805; f[34] = 0.379883; f[35] = 0.619873; f[36] = 0.619873; f[37] = 0.899902; f[38] = 0.799805; f[39] = 0.219971; f[40] = 0.299805; f[41] = 0.299805; f[42] = 0.439941; f[43] = 0.599854; f[44] = 0.319824; f[45] = 0.399902; f[46] = 0.319824; f[47] = 0.599854; f[48] = 0.619873; f[49] = 0.619873; f[50] = 0.619873; f[51] = 0.619873; f[52] = 0.619873; f[53] = 0.619873; f[54] = 0.619873; f[55] = 0.619873; f[56] = 0.619873; f[57] = 0.619873; f[58] = 0.319824; f[59] = 0.319824; f[60] = 0.599854; f[61] = 0.599854; f[62] = 0.599854; f[63] = 0.539795; f[64] = 0.819824; f[65] = 0.679932; f[66] = 0.73999; f[67] = 0.73999; f[68] = 0.799805; f[69] = 0.719971; f[70] = 0.639893; f[71] = 0.799805; f[72] = 0.799805; f[73] = 0.339844; f[74] = 0.599854; f[75] = 0.719971; f[76] = 0.599854; f[77] = 0.919922; f[78] = 0.73999; f[79] = 0.799805; f[80] = 0.619873; f[81] = 0.819824; f[82] = 0.719971; f[83] = 0.659912; f[84] = 0.619873; f[85] = 0.779785; f[86] = 0.699951; f[87] = 0.959961; f[88] = 0.719971; f[89] = 0.639893; f[90] = 0.639893; f[91] = 0.299805; f[92] = 0.599854; f[93] = 0.299805; f[94] = 0.599854; f[95] = 0.5; f[96] = 0.219971; f[97] = 0.579834; f[98] = 0.619873; f[99] = 0.519775; f[100] = 0.619873; f[101] = 0.519775; f[102] = 0.319824; f[103] = 0.539795; f[104] = 0.659912; f[105] = 0.299805; f[106] = 0.299805; f[107] = 0.619873; f[108] = 0.299805; f[109] = 0.939941; f[110] = 0.659912; f[111] = 0.559814; f[112] = 0.619873; f[113] = 0.579834; f[114] = 0.439941; f[115] = 0.519775; f[116] = 0.379883; f[117] = 0.679932; f[118] = 0.519775; f[119] = 0.779785; f[120] = 0.559814; f[121] = 0.539795; f[122] = 0.47998; f[123] = 0.279785; f[124] = 0.599854; f[125] = 0.279785; f[126] = 0.599854; f[161] = 0.299805; f[162] = 0.619873; f[163] = 0.619873; f[164] = 0.139893; f[165] = 0.619873; f[166] = 0.619873; f[169] = 0.219971; f[170] = 0.399902; f[171] = 0.359863; f[172] = 0.23999; f[173] = 0.23999; f[174] = 0.619873; f[175] = 0.619873; f[177] = 0.5; f[179] = 0.539795; f[180] = 0.319824; f[183] = 0.459961; f[185] = 0.399902; f[186] = 0.399902; f[187] = 0.359863; f[188] = 1.0; f[191] = 0.539795; f[193] = 0.339844; f[194] = 0.339844; f[195] = 0.419922; f[196] = 0.439941; f[200] = 0.419922; f[203] = 0.319824; f[205] = 0.379883; f[208] = 1.0; f[225] = 1.25977; f[234] = 1.23999; f[241] = 0.859863; f[245] = 0.299805; f[250] = 0.899902; f[251] = 0.659912; } else if ( !strcmp(font, "Bookman-LightItalic") ) { f[32] = 0.299805; f[33] = 0.319824; f[34] = 0.359863; f[35] = 0.619873; f[36] = 0.619873; f[37] = 0.799805; f[38] = 0.819824; f[39] = 0.279785; f[40] = 0.279785; f[41] = 0.279785; f[42] = 0.439941; f[43] = 0.599854; f[44] = 0.299805; f[45] = 0.319824; f[46] = 0.299805; f[47] = 0.599854; f[48] = 0.619873; f[49] = 0.619873; f[50] = 0.619873; f[51] = 0.619873; f[52] = 0.619873; f[53] = 0.619873; f[54] = 0.619873; f[55] = 0.619873; f[56] = 0.619873; f[57] = 0.619873; f[58] = 0.299805; f[59] = 0.299805; f[60] = 0.599854; f[61] = 0.599854; f[62] = 0.599854; f[63] = 0.539795; f[64] = 0.779785; f[65] = 0.699951; f[66] = 0.719971; f[67] = 0.719971; f[68] = 0.73999; f[69] = 0.679932; f[70] = 0.619873; f[71] = 0.759766; f[72] = 0.799805; f[73] = 0.319824; f[74] = 0.559814; f[75] = 0.719971; f[76] = 0.579834; f[77] = 0.859863; f[78] = 0.719971; f[79] = 0.759766; f[80] = 0.599854; f[81] = 0.779785; f[82] = 0.699951; f[83] = 0.639893; f[84] = 0.599854; f[85] = 0.719971; f[86] = 0.679932; f[87] = 0.959961; f[88] = 0.699951; f[89] = 0.659912; f[90] = 0.579834; f[91] = 0.259766; f[92] = 0.599854; f[93] = 0.259766; f[94] = 0.599854; f[95] = 0.5; f[96] = 0.279785; f[97] = 0.619873; f[98] = 0.599854; f[99] = 0.47998; f[100] = 0.639893; f[101] = 0.539795; f[102] = 0.339844; f[103] = 0.559814; f[104] = 0.619873; f[105] = 0.279785; f[106] = 0.279785; f[107] = 0.599854; f[108] = 0.279785; f[109] = 0.879883; f[110] = 0.619873; f[111] = 0.539795; f[112] = 0.599854; f[113] = 0.559814; f[114] = 0.399902; f[115] = 0.539795; f[116] = 0.339844; f[117] = 0.619873; f[118] = 0.539795; f[119] = 0.879883; f[120] = 0.539795; f[121] = 0.599854; f[122] = 0.519775; f[123] = 0.359863; f[124] = 0.599854; f[125] = 0.379883; f[126] = 0.599854; f[161] = 0.319824; f[162] = 0.619873; f[163] = 0.619873; f[164] = 0.0197754; f[165] = 0.619873; f[166] = 0.619873; f[169] = 0.199951; f[170] = 0.439941; f[171] = 0.299805; f[172] = 0.179932; f[173] = 0.179932; f[174] = 0.639893; f[175] = 0.659912; f[177] = 0.5; f[179] = 0.619873; f[180] = 0.299805; f[183] = 0.459961; f[185] = 0.47998; f[186] = 0.439941; f[187] = 0.299805; f[188] = 1.0; f[191] = 0.539795; f[193] = 0.339844; f[194] = 0.319824; f[195] = 0.439941; f[196] = 0.439941; f[200] = 0.419922; f[203] = 0.319824; f[205] = 0.339844; f[208] = 1.0; f[225] = 1.21997; f[234] = 1.17993; f[241] = 0.879883; f[245] = 0.279785; f[250] = 0.899902; f[251] = 0.619873; } else if ( !strcmp(font, "Bookman-Demi") ) { f[32] = 0.339844; f[33] = 0.359863; f[34] = 0.419922; f[35] = 0.659912; f[36] = 0.659912; f[37] = 0.939941; f[38] = 0.799805; f[39] = 0.319824; f[40] = 0.319824; f[41] = 0.319824; f[42] = 0.459961; f[43] = 0.599854; f[44] = 0.339844; f[45] = 0.359863; f[46] = 0.339844; f[47] = 0.599854; f[48] = 0.659912; f[49] = 0.659912; f[50] = 0.659912; f[51] = 0.659912; f[52] = 0.659912; f[53] = 0.659912; f[54] = 0.659912; f[55] = 0.659912; f[56] = 0.659912; f[57] = 0.659912; f[58] = 0.339844; f[59] = 0.339844; f[60] = 0.599854; f[61] = 0.599854; f[62] = 0.599854; f[63] = 0.659912; f[64] = 0.819824; f[65] = 0.719971; f[66] = 0.719971; f[67] = 0.73999; f[68] = 0.779785; f[69] = 0.719971; f[70] = 0.679932; f[71] = 0.779785; f[72] = 0.819824; f[73] = 0.399902; f[74] = 0.639893; f[75] = 0.799805; f[76] = 0.639893; f[77] = 0.939941; f[78] = 0.73999; f[79] = 0.799805; f[80] = 0.659912; f[81] = 0.799805; f[82] = 0.779785; f[83] = 0.659912; f[84] = 0.699951; f[85] = 0.73999; f[86] = 0.719971; f[87] = 0.939941; f[88] = 0.779785; f[89] = 0.699951; f[90] = 0.639893; f[91] = 0.299805; f[92] = 0.599854; f[93] = 0.299805; f[94] = 0.599854; f[95] = 0.5; f[96] = 0.319824; f[97] = 0.579834; f[98] = 0.599854; f[99] = 0.579834; f[100] = 0.639893; f[101] = 0.579834; f[102] = 0.379883; f[103] = 0.579834; f[104] = 0.679932; f[105] = 0.359863; f[106] = 0.339844; f[107] = 0.659912; f[108] = 0.339844; f[109] = 1.0; f[110] = 0.679932; f[111] = 0.619873; f[112] = 0.639893; f[113] = 0.619873; f[114] = 0.459961; f[115] = 0.519775; f[116] = 0.459961; f[117] = 0.659912; f[118] = 0.599854; f[119] = 0.799805; f[120] = 0.599854; f[121] = 0.619873; f[122] = 0.559814; f[123] = 0.319824; f[124] = 0.599854; f[125] = 0.319824; f[126] = 0.599854; f[161] = 0.359863; f[162] = 0.659912; f[163] = 0.659912; f[164] = 0.119873; f[165] = 0.659912; f[166] = 0.659912; f[169] = 0.23999; f[170] = 0.539795; f[171] = 0.399902; f[172] = 0.219971; f[173] = 0.219971; f[174] = 0.73999; f[175] = 0.73999; f[177] = 0.5; f[179] = 0.379883; f[180] = 0.339844; f[183] = 0.459961; f[185] = 0.539795; f[186] = 0.539795; f[187] = 0.399902; f[188] = 1.0; f[191] = 0.659912; f[193] = 0.399902; f[194] = 0.399902; f[195] = 0.5; f[196] = 0.47998; f[200] = 0.5; f[203] = 0.359863; f[205] = 0.439941; f[208] = 1.0; f[225] = 1.13989; f[234] = 1.21997; f[241] = 0.879883; f[245] = 0.359863; f[250] = 0.939941; f[251] = 0.659912; } else if ( !strcmp(font, "Bookman-DemiItalic") ) { f[32] = 0.339844; f[33] = 0.319824; f[34] = 0.379883; f[35] = 0.679932; f[36] = 0.679932; f[37] = 0.879883; f[38] = 0.97998; f[39] = 0.319824; f[40] = 0.259766; f[41] = 0.259766; f[42] = 0.459961; f[43] = 0.599854; f[44] = 0.339844; f[45] = 0.279785; f[46] = 0.339844; f[47] = 0.359863; f[48] = 0.679932; f[49] = 0.679932; f[50] = 0.679932; f[51] = 0.679932; f[52] = 0.679932; f[53] = 0.679932; f[54] = 0.679932; f[55] = 0.679932; f[56] = 0.679932; f[57] = 0.679932; f[58] = 0.339844; f[59] = 0.339844; f[60] = 0.619873; f[61] = 0.599854; f[62] = 0.619873; f[63] = 0.619873; f[64] = 0.779785; f[65] = 0.719971; f[66] = 0.719971; f[67] = 0.699951; f[68] = 0.759766; f[69] = 0.719971; f[70] = 0.659912; f[71] = 0.759766; f[72] = 0.799805; f[73] = 0.379883; f[74] = 0.619873; f[75] = 0.779785; f[76] = 0.639893; f[77] = 0.859863; f[78] = 0.73999; f[79] = 0.759766; f[80] = 0.639893; f[81] = 0.759766; f[82] = 0.73999; f[83] = 0.699951; f[84] = 0.699951; f[85] = 0.73999; f[86] = 0.659912; f[87] = 1.0; f[88] = 0.73999; f[89] = 0.659912; f[90] = 0.679932; f[91] = 0.259766; f[92] = 0.579834; f[93] = 0.259766; f[94] = 0.619873; f[95] = 0.5; f[96] = 0.319824; f[97] = 0.679932; f[98] = 0.599854; f[99] = 0.559814; f[100] = 0.679932; f[101] = 0.559814; f[102] = 0.419922; f[103] = 0.619873; f[104] = 0.699951; f[105] = 0.379883; f[106] = 0.319824; f[107] = 0.699951; f[108] = 0.379883; f[109] = 0.959961; f[110] = 0.679932; f[111] = 0.599854; f[112] = 0.659912; f[113] = 0.619873; f[114] = 0.5; f[115] = 0.539795; f[116] = 0.439941; f[117] = 0.679932; f[118] = 0.539795; f[119] = 0.859863; f[120] = 0.619873; f[121] = 0.599854; f[122] = 0.559814; f[123] = 0.299805; f[124] = 0.619873; f[125] = 0.299805; f[126] = 0.619873; f[161] = 0.319824; f[162] = 0.679932; f[163] = 0.679932; f[164] = 0.119873; f[165] = 0.679932; f[166] = 0.679932; f[169] = 0.179932; f[170] = 0.519775; f[171] = 0.379883; f[172] = 0.219971; f[173] = 0.219971; f[174] = 0.819824; f[175] = 0.819824; f[177] = 0.5; f[179] = 0.419922; f[180] = 0.339844; f[183] = 0.359863; f[185] = 0.519775; f[186] = 0.519775; f[187] = 0.379883; f[188] = 1.0; f[191] = 0.619873; f[193] = 0.379883; f[194] = 0.339844; f[195] = 0.47998; f[196] = 0.47998; f[200] = 0.519775; f[203] = 0.359863; f[205] = 0.559814; f[208] = 1.0; f[225] = 1.13989; f[234] = 1.17993; f[241] = 0.879883; f[245] = 0.379883; f[250] = 0.919922; f[251] = 0.659912; } else if ( !strcmp(font, "Helvetica-Narrow") ) { f[32] = 0.227783; f[33] = 0.227783; f[34] = 0.290771; f[35] = 0.455811; f[36] = 0.455811; f[37] = 0.72876; f[38] = 0.546875; f[39] = 0.181885; f[40] = 0.272949; f[41] = 0.272949; f[42] = 0.318848; f[43] = 0.47876; f[44] = 0.227783; f[45] = 0.272949; f[46] = 0.227783; f[47] = 0.227783; f[48] = 0.455811; f[49] = 0.455811; f[50] = 0.455811; f[51] = 0.455811; f[52] = 0.455811; f[53] = 0.455811; f[54] = 0.455811; f[55] = 0.455811; f[56] = 0.455811; f[57] = 0.455811; f[58] = 0.227783; f[59] = 0.227783; f[60] = 0.47876; f[61] = 0.47876; f[62] = 0.47876; f[63] = 0.455811; f[64] = 0.831787; f[65] = 0.546875; f[66] = 0.546875; f[67] = 0.591797; f[68] = 0.591797; f[69] = 0.546875; f[70] = 0.500977; f[71] = 0.637939; f[72] = 0.591797; f[73] = 0.227783; f[74] = 0.409912; f[75] = 0.546875; f[76] = 0.455811; f[77] = 0.682861; f[78] = 0.591797; f[79] = 0.637939; f[80] = 0.546875; f[81] = 0.637939; f[82] = 0.591797; f[83] = 0.546875; f[84] = 0.500977; f[85] = 0.591797; f[86] = 0.546875; f[87] = 0.773926; f[88] = 0.546875; f[89] = 0.546875; f[90] = 0.500977; f[91] = 0.227783; f[92] = 0.227783; f[93] = 0.227783; f[94] = 0.384766; f[95] = 0.455811; f[96] = 0.181885; f[97] = 0.455811; f[98] = 0.455811; f[99] = 0.409912; f[100] = 0.455811; f[101] = 0.455811; f[102] = 0.227783; f[103] = 0.455811; f[104] = 0.455811; f[105] = 0.181885; f[106] = 0.181885; f[107] = 0.409912; f[108] = 0.181885; f[109] = 0.682861; f[110] = 0.455811; f[111] = 0.455811; f[112] = 0.455811; f[113] = 0.455811; f[114] = 0.272949; f[115] = 0.409912; f[116] = 0.227783; f[117] = 0.455811; f[118] = 0.409912; f[119] = 0.591797; f[120] = 0.409912; f[121] = 0.409912; f[122] = 0.409912; f[123] = 0.273926; f[124] = 0.212891; f[125] = 0.273926; f[126] = 0.47876; f[161] = 0.272949; f[162] = 0.455811; f[163] = 0.455811; f[164] = 0.136963; f[165] = 0.455811; f[166] = 0.455811; f[169] = 0.156982; f[170] = 0.272949; f[171] = 0.455811; f[172] = 0.272949; f[173] = 0.272949; f[174] = 0.409912; f[175] = 0.409912; f[177] = 0.455811; f[179] = 0.455811; f[180] = 0.227783; f[183] = 0.286865; f[185] = 0.272949; f[186] = 0.272949; f[187] = 0.455811; f[188] = 0.819824; f[191] = 0.500977; f[193] = 0.272949; f[194] = 0.272949; f[195] = 0.272949; f[196] = 0.272949; f[200] = 0.272949; f[203] = 0.272949; f[205] = 0.272949; f[208] = 0.819824; f[225] = 0.819824; f[234] = 0.819824; f[241] = 0.72876; f[245] = 0.227783; f[250] = 0.773926; f[251] = 0.500977; } else if ( !strcmp(font, "Helvetica-Narrow-Oblique") ) { f[32] = 0.570801; f[33] = 0.570801; f[34] = 0.570801; f[35] = 0.570801; f[36] = 0.570801; f[37] = 0.570801; f[38] = 0.570801; f[39] = 0.570801; f[40] = 0.570801; f[41] = 0.570801; f[42] = 0.570801; f[43] = 0.570801; f[44] = 0.570801; f[45] = 0.570801; f[46] = 0.570801; f[47] = 0.570801; f[48] = 0.570801; f[49] = 0.570801; f[50] = 0.570801; f[51] = 0.570801; f[52] = 0.570801; f[53] = 0.570801; f[54] = 0.570801; f[55] = 0.570801; f[56] = 0.570801; f[57] = 0.570801; f[58] = 0.570801; f[59] = 0.570801; f[60] = 0.570801; f[61] = 0.570801; f[62] = 0.570801; f[63] = 0.570801; f[64] = 0.570801; f[65] = 0.570801; f[66] = 0.570801; f[67] = 0.570801; f[68] = 0.570801; f[69] = 0.570801; f[70] = 0.570801; f[71] = 0.570801; f[72] = 0.570801; f[73] = 0.570801; f[74] = 0.570801; f[75] = 0.570801; f[76] = 0.570801; f[77] = 0.570801; f[78] = 0.570801; f[79] = 0.570801; f[80] = 0.570801; f[81] = 0.570801; f[82] = 0.570801; f[83] = 0.570801; f[84] = 0.570801; f[85] = 0.570801; f[86] = 0.570801; f[87] = 0.570801; f[88] = 0.570801; f[89] = 0.570801; f[90] = 0.570801; f[91] = 0.570801; f[92] = 0.570801; f[93] = 0.570801; f[94] = 0.570801; f[95] = 0.570801; f[96] = 0.570801; f[97] = 0.570801; f[98] = 0.570801; f[99] = 0.570801; f[100] = 0.570801; f[101] = 0.570801; f[102] = 0.570801; f[103] = 0.570801; f[104] = 0.570801; f[105] = 0.570801; f[106] = 0.570801; f[107] = 0.570801; f[108] = 0.570801; f[109] = 0.570801; f[110] = 0.570801; f[111] = 0.570801; f[112] = 0.570801; f[113] = 0.570801; f[114] = 0.570801; f[115] = 0.570801; f[116] = 0.570801; f[117] = 0.570801; f[118] = 0.570801; f[119] = 0.570801; f[120] = 0.570801; f[121] = 0.570801; f[122] = 0.570801; f[123] = 0.570801; f[124] = 0.570801; f[125] = 0.570801; f[126] = 0.570801; f[161] = 0.570801; f[162] = 0.570801; f[163] = 0.570801; f[164] = 0.570801; f[165] = 0.570801; f[166] = 0.570801; f[169] = 0.570801; f[170] = 0.570801; f[172] = 0.570801; f[173] = 0.570801; f[179] = 0.570801; f[180] = 0.570801; f[183] = 0.570801; f[185] = 0.570801; f[186] = 0.570801; f[191] = 0.570801; f[193] = 0.570801; f[194] = 0.570801; f[195] = 0.570801; f[196] = 0.570801; f[200] = 0.570801; f[203] = 0.570801; f[205] = 0.570801; f[245] = 0.570801; } else if ( !strcmp(font, "Helvetica-Narrow-Bold") ) { f[32] = 0.227783; f[33] = 0.227783; f[34] = 0.290771; f[35] = 0.455811; f[36] = 0.455811; f[37] = 0.72876; f[38] = 0.546875; f[39] = 0.181885; f[40] = 0.272949; f[41] = 0.272949; f[42] = 0.318848; f[43] = 0.47876; f[44] = 0.227783; f[45] = 0.272949; f[46] = 0.227783; f[47] = 0.227783; f[48] = 0.455811; f[49] = 0.455811; f[50] = 0.455811; f[51] = 0.455811; f[52] = 0.455811; f[53] = 0.455811; f[54] = 0.455811; f[55] = 0.455811; f[56] = 0.455811; f[57] = 0.455811; f[58] = 0.227783; f[59] = 0.227783; f[60] = 0.47876; f[61] = 0.47876; f[62] = 0.47876; f[63] = 0.455811; f[64] = 0.831787; f[65] = 0.546875; f[66] = 0.546875; f[67] = 0.591797; f[68] = 0.591797; f[69] = 0.546875; f[70] = 0.500977; f[71] = 0.637939; f[72] = 0.591797; f[73] = 0.227783; f[74] = 0.409912; f[75] = 0.546875; f[76] = 0.455811; f[77] = 0.682861; f[78] = 0.591797; f[79] = 0.637939; f[80] = 0.546875; f[81] = 0.637939; f[82] = 0.591797; f[83] = 0.546875; f[84] = 0.500977; f[85] = 0.591797; f[86] = 0.546875; f[87] = 0.773926; f[88] = 0.546875; f[89] = 0.546875; f[90] = 0.500977; f[91] = 0.227783; f[92] = 0.227783; f[93] = 0.227783; f[94] = 0.384766; f[95] = 0.455811; f[96] = 0.181885; f[97] = 0.455811; f[98] = 0.455811; f[99] = 0.409912; f[100] = 0.455811; f[101] = 0.455811; f[102] = 0.227783; f[103] = 0.455811; f[104] = 0.455811; f[105] = 0.181885; f[106] = 0.181885; f[107] = 0.409912; f[108] = 0.181885; f[109] = 0.682861; f[110] = 0.455811; f[111] = 0.455811; f[112] = 0.455811; f[113] = 0.455811; f[114] = 0.272949; f[115] = 0.409912; f[116] = 0.227783; f[117] = 0.455811; f[118] = 0.409912; f[119] = 0.591797; f[120] = 0.409912; f[121] = 0.409912; f[122] = 0.409912; f[123] = 0.273926; f[124] = 0.212891; f[125] = 0.273926; f[126] = 0.47876; f[161] = 0.272949; f[162] = 0.455811; f[163] = 0.455811; f[164] = 0.136963; f[165] = 0.455811; f[166] = 0.455811; f[169] = 0.156982; f[170] = 0.272949; f[171] = 0.455811; f[172] = 0.272949; f[173] = 0.272949; f[174] = 0.409912; f[175] = 0.409912; f[177] = 0.455811; f[179] = 0.455811; f[180] = 0.227783; f[183] = 0.286865; f[185] = 0.272949; f[186] = 0.272949; f[187] = 0.455811; f[188] = 0.819824; f[191] = 0.500977; f[193] = 0.272949; f[194] = 0.272949; f[195] = 0.272949; f[196] = 0.272949; f[200] = 0.272949; f[203] = 0.272949; f[205] = 0.272949; f[208] = 0.819824; f[225] = 0.819824; f[234] = 0.819824; f[241] = 0.72876; f[245] = 0.227783; f[250] = 0.773926; f[251] = 0.500977; } else if ( !strcmp(font, "Helvetica-Narrow-BoldOblique") ) { f[32] = 0.570801; f[33] = 0.570801; f[34] = 0.570801; f[35] = 0.570801; f[36] = 0.570801; f[37] = 0.570801; f[38] = 0.570801; f[39] = 0.570801; f[40] = 0.570801; f[41] = 0.570801; f[42] = 0.570801; f[43] = 0.570801; f[44] = 0.570801; f[45] = 0.570801; f[46] = 0.570801; f[47] = 0.570801; f[48] = 0.570801; f[49] = 0.570801; f[50] = 0.570801; f[51] = 0.570801; f[52] = 0.570801; f[53] = 0.570801; f[54] = 0.570801; f[55] = 0.570801; f[56] = 0.570801; f[57] = 0.570801; f[58] = 0.570801; f[59] = 0.570801; f[60] = 0.570801; f[61] = 0.570801; f[62] = 0.570801; f[63] = 0.570801; f[64] = 0.570801; f[65] = 0.570801; f[66] = 0.570801; f[67] = 0.570801; f[68] = 0.570801; f[69] = 0.570801; f[70] = 0.570801; f[71] = 0.570801; f[72] = 0.570801; f[73] = 0.570801; f[74] = 0.570801; f[75] = 0.570801; f[76] = 0.570801; f[77] = 0.570801; f[78] = 0.570801; f[79] = 0.570801; f[80] = 0.570801; f[81] = 0.570801; f[82] = 0.570801; f[83] = 0.570801; f[84] = 0.570801; f[85] = 0.570801; f[86] = 0.570801; f[87] = 0.570801; f[88] = 0.570801; f[89] = 0.570801; f[90] = 0.570801; f[91] = 0.570801; f[92] = 0.570801; f[93] = 0.570801; f[94] = 0.570801; f[95] = 0.570801; f[96] = 0.570801; f[97] = 0.570801; f[98] = 0.570801; f[99] = 0.570801; f[100] = 0.570801; f[101] = 0.570801; f[102] = 0.570801; f[103] = 0.570801; f[104] = 0.570801; f[105] = 0.570801; f[106] = 0.570801; f[107] = 0.570801; f[108] = 0.570801; f[109] = 0.570801; f[110] = 0.570801; f[111] = 0.570801; f[112] = 0.570801; f[113] = 0.570801; f[114] = 0.570801; f[115] = 0.570801; f[116] = 0.570801; f[117] = 0.570801; f[118] = 0.570801; f[119] = 0.570801; f[120] = 0.570801; f[121] = 0.570801; f[122] = 0.570801; f[123] = 0.570801; f[124] = 0.570801; f[125] = 0.570801; f[126] = 0.570801; f[161] = 0.570801; f[162] = 0.570801; f[163] = 0.570801; f[164] = 0.570801; f[165] = 0.570801; f[166] = 0.570801; f[169] = 0.570801; f[170] = 0.570801; f[172] = 0.570801; f[173] = 0.570801; f[179] = 0.570801; f[180] = 0.570801; f[183] = 0.570801; f[185] = 0.570801; f[186] = 0.570801; f[191] = 0.570801; f[193] = 0.570801; f[194] = 0.570801; f[195] = 0.570801; f[196] = 0.570801; f[200] = 0.570801; f[203] = 0.570801; f[205] = 0.570801; f[245] = 0.570801; } else if ( !strcmp(font, "NewCenturySchlbk-Roman") ) { f[32] = 0.277832; f[33] = 0.295898; f[34] = 0.388916; f[35] = 0.555908; f[36] = 0.555908; f[37] = 0.832764; f[38] = 0.814941; f[39] = 0.203857; f[40] = 0.332764; f[41] = 0.332764; f[42] = 0.5; f[43] = 0.605957; f[44] = 0.277832; f[45] = 0.332764; f[46] = 0.277832; f[47] = 0.277832; f[48] = 0.555908; f[49] = 0.555908; f[50] = 0.555908; f[51] = 0.555908; f[52] = 0.555908; f[53] = 0.555908; f[54] = 0.555908; f[55] = 0.555908; f[56] = 0.555908; f[57] = 0.555908; f[58] = 0.277832; f[59] = 0.277832; f[60] = 0.605957; f[61] = 0.605957; f[62] = 0.605957; f[63] = 0.443848; f[64] = 0.736816; f[65] = 0.721924; f[66] = 0.721924; f[67] = 0.721924; f[68] = 0.777832; f[69] = 0.721924; f[70] = 0.666992; f[71] = 0.777832; f[72] = 0.832764; f[73] = 0.406982; f[74] = 0.555908; f[75] = 0.777832; f[76] = 0.666992; f[77] = 0.943848; f[78] = 0.814941; f[79] = 0.777832; f[80] = 0.666992; f[81] = 0.777832; f[82] = 0.721924; f[83] = 0.629883; f[84] = 0.666992; f[85] = 0.814941; f[86] = 0.721924; f[87] = 0.980957; f[88] = 0.703857; f[89] = 0.703857; f[90] = 0.61084; f[91] = 0.332764; f[92] = 0.605957; f[93] = 0.332764; f[94] = 0.605957; f[95] = 0.5; f[96] = 0.203857; f[97] = 0.555908; f[98] = 0.555908; f[99] = 0.443848; f[100] = 0.573975; f[101] = 0.5; f[102] = 0.332764; f[103] = 0.536865; f[104] = 0.61084; f[105] = 0.314941; f[106] = 0.295898; f[107] = 0.592773; f[108] = 0.314941; f[109] = 0.888916; f[110] = 0.61084; f[111] = 0.5; f[112] = 0.573975; f[113] = 0.555908; f[114] = 0.443848; f[115] = 0.462891; f[116] = 0.388916; f[117] = 0.61084; f[118] = 0.536865; f[119] = 0.777832; f[120] = 0.536865; f[121] = 0.536865; f[122] = 0.480957; f[123] = 0.332764; f[124] = 0.605957; f[125] = 0.332764; f[126] = 0.605957; f[161] = 0.295898; f[162] = 0.555908; f[163] = 0.555908; f[164] = 0.166992; f[165] = 0.703857; f[166] = 0.555908; f[167] = 0.5; f[168] = 0.605957; f[169] = 0.203857; f[170] = 0.388916; f[171] = 0.425781; f[172] = 0.258789; f[173] = 0.258789; f[174] = 0.61084; f[175] = 0.61084; f[177] = 0.555908; f[178] = 0.5; f[179] = 0.5; f[180] = 0.277832; f[182] = 0.605957; f[183] = 0.605957; f[184] = 0.203857; f[185] = 0.388916; f[186] = 0.388916; f[187] = 0.425781; f[188] = 1.0; f[189] = 1.0; f[191] = 0.443848; f[193] = 0.332764; f[194] = 0.332764; f[195] = 0.332764; f[196] = 0.332764; f[197] = 0.332764; f[198] = 0.332764; f[199] = 0.332764; f[200] = 0.332764; f[202] = 0.332764; f[203] = 0.332764; f[205] = 0.332764; f[206] = 0.332764; f[207] = 0.332764; f[208] = 1.0; f[225] = 1.0; f[227] = 0.333984; f[232] = 0.666992; f[233] = 0.777832; f[234] = 1.0; f[235] = 0.299805; f[241] = 0.795898; f[245] = 0.314941; f[248] = 0.314941; f[249] = 0.5; f[250] = 0.832764; f[251] = 0.573975; } else if ( !strcmp(font, "NewCenturySchlbk-Italic") ) { f[32] = 0.277832; f[33] = 0.332764; f[34] = 0.399902; f[35] = 0.605957; f[36] = 0.555908; f[37] = 0.832764; f[38] = 0.851807; f[39] = 0.203857; f[40] = 0.332764; f[41] = 0.332764; f[42] = 0.5; f[43] = 0.605957; f[44] = 0.277832; f[45] = 0.332764; f[46] = 0.277832; f[47] = 0.605957; f[48] = 0.555908; f[49] = 0.555908; f[50] = 0.555908; f[51] = 0.555908; f[52] = 0.555908; f[53] = 0.555908; f[54] = 0.555908; f[55] = 0.555908; f[56] = 0.555908; f[57] = 0.555908; f[58] = 0.277832; f[59] = 0.277832; f[60] = 0.605957; f[61] = 0.605957; f[62] = 0.605957; f[63] = 0.443848; f[64] = 0.746826; f[65] = 0.703857; f[66] = 0.721924; f[67] = 0.721924; f[68] = 0.777832; f[69] = 0.721924; f[70] = 0.666992; f[71] = 0.777832; f[72] = 0.832764; f[73] = 0.406982; f[74] = 0.61084; f[75] = 0.740967; f[76] = 0.666992; f[77] = 0.943848; f[78] = 0.814941; f[79] = 0.777832; f[80] = 0.666992; f[81] = 0.777832; f[82] = 0.740967; f[83] = 0.666992; f[84] = 0.684814; f[85] = 0.814941; f[86] = 0.703857; f[87] = 0.925781; f[88] = 0.703857; f[89] = 0.684814; f[90] = 0.666992; f[91] = 0.332764; f[92] = 0.605957; f[93] = 0.332764; f[94] = 0.605957; f[95] = 0.5; f[96] = 0.203857; f[97] = 0.573975; f[98] = 0.555908; f[99] = 0.443848; f[100] = 0.61084; f[101] = 0.443848; f[102] = 0.332764; f[103] = 0.536865; f[104] = 0.61084; f[105] = 0.332764; f[106] = 0.314941; f[107] = 0.555908; f[108] = 0.332764; f[109] = 0.888916; f[110] = 0.61084; f[111] = 0.5; f[112] = 0.573975; f[113] = 0.555908; f[114] = 0.443848; f[115] = 0.443848; f[116] = 0.351807; f[117] = 0.61084; f[118] = 0.518799; f[119] = 0.777832; f[120] = 0.5; f[121] = 0.5; f[122] = 0.462891; f[123] = 0.332764; f[124] = 0.605957; f[125] = 0.332764; f[126] = 0.605957; f[161] = 0.332764; f[162] = 0.555908; f[163] = 0.555908; f[164] = 0.166992; f[165] = 0.555908; f[166] = 0.555908; f[167] = 0.5; f[168] = 0.605957; f[169] = 0.277832; f[170] = 0.388916; f[171] = 0.425781; f[172] = 0.332764; f[173] = 0.332764; f[174] = 0.61084; f[175] = 0.61084; f[177] = 0.5; f[178] = 0.5; f[179] = 0.5; f[180] = 0.277832; f[182] = 0.649902; f[183] = 0.605957; f[184] = 0.203857; f[185] = 0.388916; f[186] = 0.388916; f[187] = 0.425781; f[188] = 1.0; f[189] = 1.0; f[191] = 0.443848; f[193] = 0.332764; f[194] = 0.332764; f[195] = 0.332764; f[196] = 0.332764; f[197] = 0.332764; f[198] = 0.332764; f[199] = 0.332764; f[200] = 0.332764; f[202] = 0.332764; f[203] = 0.332764; f[205] = 0.332764; f[206] = 0.332764; f[207] = 0.332764; f[208] = 1.0; f[225] = 0.869873; f[227] = 0.421875; f[232] = 0.666992; f[233] = 0.777832; f[234] = 0.980957; f[235] = 0.371826; f[241] = 0.721924; f[245] = 0.332764; f[248] = 0.332764; f[249] = 0.5; f[250] = 0.777832; f[251] = 0.555908; } else if ( !strcmp(font, "NewCenturySchlbk-Bold") ) { f[32] = 0.286865; f[33] = 0.295898; f[34] = 0.332764; f[35] = 0.573975; f[36] = 0.573975; f[37] = 0.832764; f[38] = 0.851807; f[39] = 0.240967; f[40] = 0.388916; f[41] = 0.388916; f[42] = 0.5; f[43] = 0.605957; f[44] = 0.277832; f[45] = 0.332764; f[46] = 0.277832; f[47] = 0.277832; f[48] = 0.573975; f[49] = 0.573975; f[50] = 0.573975; f[51] = 0.573975; f[52] = 0.573975; f[53] = 0.573975; f[54] = 0.573975; f[55] = 0.573975; f[56] = 0.573975; f[57] = 0.573975; f[58] = 0.277832; f[59] = 0.277832; f[60] = 0.605957; f[61] = 0.605957; f[62] = 0.605957; f[63] = 0.5; f[64] = 0.746826; f[65] = 0.758789; f[66] = 0.777832; f[67] = 0.777832; f[68] = 0.832764; f[69] = 0.758789; f[70] = 0.721924; f[71] = 0.832764; f[72] = 0.869873; f[73] = 0.443848; f[74] = 0.647949; f[75] = 0.814941; f[76] = 0.721924; f[77] = 0.980957; f[78] = 0.832764; f[79] = 0.832764; f[80] = 0.758789; f[81] = 0.832764; f[82] = 0.814941; f[83] = 0.666992; f[84] = 0.721924; f[85] = 0.832764; f[86] = 0.758789; f[87] = 0.980957; f[88] = 0.721924; f[89] = 0.721924; f[90] = 0.666992; f[91] = 0.388916; f[92] = 0.605957; f[93] = 0.388916; f[94] = 0.605957; f[95] = 0.5; f[96] = 0.240967; f[97] = 0.61084; f[98] = 0.647949; f[99] = 0.555908; f[100] = 0.666992; f[101] = 0.573975; f[102] = 0.388916; f[103] = 0.61084; f[104] = 0.684814; f[105] = 0.369873; f[106] = 0.351807; f[107] = 0.666992; f[108] = 0.351807; f[109] = 0.962891; f[110] = 0.684814; f[111] = 0.61084; f[112] = 0.666992; f[113] = 0.647949; f[114] = 0.518799; f[115] = 0.5; f[116] = 0.425781; f[117] = 0.684814; f[118] = 0.61084; f[119] = 0.888916; f[120] = 0.61084; f[121] = 0.61084; f[122] = 0.536865; f[123] = 0.388916; f[124] = 0.605957; f[125] = 0.388916; f[126] = 0.605957; f[161] = 0.295898; f[162] = 0.573975; f[163] = 0.573975; f[164] = 0.166992; f[165] = 0.721924; f[166] = 0.573975; f[167] = 0.5; f[168] = 0.605957; f[169] = 0.240967; f[170] = 0.480957; f[171] = 0.5; f[172] = 0.332764; f[173] = 0.332764; f[174] = 0.684814; f[175] = 0.684814; f[177] = 0.5; f[179] = 0.5; f[180] = 0.277832; f[182] = 0.746826; f[183] = 0.605957; f[185] = 0.480957; f[186] = 0.480957; f[187] = 0.5; f[188] = 1.0; f[191] = 0.5; f[193] = 0.332764; f[194] = 0.332764; f[195] = 0.332764; f[196] = 0.332764; f[197] = 0.332764; f[200] = 0.332764; f[203] = 0.332764; f[205] = 0.332764; f[208] = 1.0; f[225] = 0.980957; f[227] = 0.366943; f[233] = 0.832764; f[234] = 1.0; f[235] = 0.366943; f[241] = 0.869873; f[245] = 0.369873; f[249] = 0.61084; f[250] = 0.906982; f[251] = 0.61084; } else if ( !strcmp(font, "NewCenturySchlbk-BoldItalic") ) { f[32] = 0.286865; f[33] = 0.332764; f[34] = 0.399902; f[35] = 0.605957; f[36] = 0.573975; f[37] = 0.888916; f[38] = 0.888916; f[39] = 0.258789; f[40] = 0.406982; f[41] = 0.406982; f[42] = 0.5; f[43] = 0.605957; f[44] = 0.286865; f[45] = 0.332764; f[46] = 0.286865; f[47] = 0.277832; f[48] = 0.573975; f[49] = 0.573975; f[50] = 0.573975; f[51] = 0.573975; f[52] = 0.573975; f[53] = 0.573975; f[54] = 0.573975; f[55] = 0.573975; f[56] = 0.573975; f[57] = 0.573975; f[58] = 0.286865; f[59] = 0.286865; f[60] = 0.605957; f[61] = 0.605957; f[62] = 0.605957; f[63] = 0.480957; f[64] = 0.746826; f[65] = 0.740967; f[66] = 0.758789; f[67] = 0.758789; f[68] = 0.832764; f[69] = 0.740967; f[70] = 0.703857; f[71] = 0.814941; f[72] = 0.869873; f[73] = 0.443848; f[74] = 0.666992; f[75] = 0.777832; f[76] = 0.703857; f[77] = 0.943848; f[78] = 0.851807; f[79] = 0.832764; f[80] = 0.740967; f[81] = 0.832764; f[82] = 0.795898; f[83] = 0.684814; f[84] = 0.721924; f[85] = 0.832764; f[86] = 0.740967; f[87] = 0.943848; f[88] = 0.740967; f[89] = 0.703857; f[90] = 0.703857; f[91] = 0.406982; f[92] = 0.605957; f[93] = 0.406982; f[94] = 0.605957; f[95] = 0.5; f[96] = 0.258789; f[97] = 0.666992; f[98] = 0.61084; f[99] = 0.536865; f[100] = 0.666992; f[101] = 0.518799; f[102] = 0.388916; f[103] = 0.61084; f[104] = 0.684814; f[105] = 0.388916; f[106] = 0.369873; f[107] = 0.647949; f[108] = 0.388916; f[109] = 0.943848; f[110] = 0.684814; f[111] = 0.573975; f[112] = 0.647949; f[113] = 0.629883; f[114] = 0.518799; f[115] = 0.480957; f[116] = 0.406982; f[117] = 0.684814; f[118] = 0.555908; f[119] = 0.832764; f[120] = 0.573975; f[121] = 0.518799; f[122] = 0.518799; f[123] = 0.406982; f[124] = 0.605957; f[125] = 0.406982; f[126] = 0.605957; f[161] = 0.332764; f[162] = 0.573975; f[163] = 0.573975; f[164] = 0.166992; f[165] = 0.573975; f[166] = 0.573975; f[167] = 0.5; f[168] = 0.573975; f[169] = 0.286865; f[170] = 0.480957; f[171] = 0.480957; f[172] = 0.277832; f[173] = 0.277832; f[174] = 0.684814; f[175] = 0.684814; f[177] = 0.5; f[179] = 0.5; f[180] = 0.286865; f[182] = 0.649902; f[183] = 0.605957; f[185] = 0.480957; f[186] = 0.480957; f[187] = 0.480957; f[188] = 1.0; f[191] = 0.480957; f[193] = 0.332764; f[194] = 0.332764; f[195] = 0.332764; f[196] = 0.332764; f[197] = 0.332764; f[200] = 0.332764; f[203] = 0.332764; f[205] = 0.332764; f[208] = 1.0; f[225] = 0.888916; f[227] = 0.411865; f[233] = 0.832764; f[234] = 0.962891; f[235] = 0.355957; f[241] = 0.814941; f[245] = 0.388916; f[249] = 0.573975; f[250] = 0.851807; f[251] = 0.573975; } else if ( !strcmp(font, "Palatino-Roman") ) { f[32] = 0.25; f[33] = 0.277832; f[34] = 0.37085; f[35] = 0.5; f[36] = 0.5; f[37] = 0.839844; f[38] = 0.777832; f[39] = 0.277832; f[40] = 0.332764; f[41] = 0.332764; f[42] = 0.388916; f[43] = 0.605957; f[44] = 0.25; f[45] = 0.332764; f[46] = 0.25; f[47] = 0.605957; f[48] = 0.5; f[49] = 0.5; f[50] = 0.5; f[51] = 0.5; f[52] = 0.5; f[53] = 0.5; f[54] = 0.5; f[55] = 0.5; f[56] = 0.5; f[57] = 0.5; f[58] = 0.25; f[59] = 0.25; f[60] = 0.605957; f[61] = 0.605957; f[62] = 0.605957; f[63] = 0.443848; f[64] = 0.746826; f[65] = 0.777832; f[66] = 0.61084; f[67] = 0.708984; f[68] = 0.773926; f[69] = 0.61084; f[70] = 0.555908; f[71] = 0.762939; f[72] = 0.831787; f[73] = 0.336914; f[74] = 0.332764; f[75] = 0.72583; f[76] = 0.61084; f[77] = 0.945801; f[78] = 0.830811; f[79] = 0.785889; f[80] = 0.60376; f[81] = 0.785889; f[82] = 0.667969; f[83] = 0.524902; f[84] = 0.612793; f[85] = 0.777832; f[86] = 0.721924; f[87] = 1.0; f[88] = 0.666992; f[89] = 0.666992; f[90] = 0.666992; f[91] = 0.332764; f[92] = 0.605957; f[93] = 0.332764; f[94] = 0.605957; f[95] = 0.5; f[96] = 0.277832; f[97] = 0.5; f[98] = 0.552979; f[99] = 0.443848; f[100] = 0.61084; f[101] = 0.47876; f[102] = 0.332764; f[103] = 0.555908; f[104] = 0.581787; f[105] = 0.290771; f[106] = 0.233887; f[107] = 0.555908; f[108] = 0.290771; f[109] = 0.882812; f[110] = 0.581787; f[111] = 0.545898; f[112] = 0.60083; f[113] = 0.559814; f[114] = 0.394775; f[115] = 0.423828; f[116] = 0.325928; f[117] = 0.602783; f[118] = 0.564941; f[119] = 0.833984; f[120] = 0.515869; f[121] = 0.555908; f[122] = 0.5; f[123] = 0.332764; f[124] = 0.605957; f[125] = 0.332764; f[126] = 0.605957; f[161] = 0.277832; f[162] = 0.5; f[163] = 0.5; f[164] = 0.166992; f[165] = 0.5; f[166] = 0.5; f[169] = 0.207764; f[170] = 0.5; f[171] = 0.5; f[172] = 0.330811; f[173] = 0.330811; f[174] = 0.60498; f[175] = 0.60791; f[177] = 0.5; f[179] = 0.5; f[180] = 0.25; f[183] = 0.605957; f[185] = 0.5; f[186] = 0.5; f[187] = 0.5; f[188] = 1.0; f[191] = 0.443848; f[193] = 0.332764; f[194] = 0.332764; f[195] = 0.332764; f[196] = 0.332764; f[200] = 0.332764; f[203] = 0.332764; f[205] = 0.379883; f[208] = 1.0; f[225] = 0.943848; f[234] = 0.997803; f[241] = 0.757812; f[245] = 0.286865; f[250] = 0.826904; f[251] = 0.555908; } else if ( !strcmp(font, "Palatino-Italic") ) { f[32] = 0.25; f[33] = 0.332764; f[34] = 0.5; f[35] = 0.5; f[36] = 0.5; f[37] = 0.888916; f[38] = 0.777832; f[39] = 0.277832; f[40] = 0.332764; f[41] = 0.332764; f[42] = 0.388916; f[43] = 0.605957; f[44] = 0.25; f[45] = 0.332764; f[46] = 0.25; f[47] = 0.295898; f[48] = 0.5; f[49] = 0.5; f[50] = 0.5; f[51] = 0.5; f[52] = 0.5; f[53] = 0.5; f[54] = 0.5; f[55] = 0.5; f[56] = 0.5; f[57] = 0.5; f[58] = 0.25; f[59] = 0.25; f[60] = 0.605957; f[61] = 0.605957; f[62] = 0.605957; f[63] = 0.5; f[64] = 0.746826; f[65] = 0.721924; f[66] = 0.61084; f[67] = 0.666992; f[68] = 0.777832; f[69] = 0.61084; f[70] = 0.555908; f[71] = 0.721924; f[72] = 0.777832; f[73] = 0.332764; f[74] = 0.332764; f[75] = 0.666992; f[76] = 0.555908; f[77] = 0.943848; f[78] = 0.777832; f[79] = 0.777832; f[80] = 0.61084; f[81] = 0.777832; f[82] = 0.666992; f[83] = 0.555908; f[84] = 0.61084; f[85] = 0.777832; f[86] = 0.721924; f[87] = 0.943848; f[88] = 0.721924; f[89] = 0.666992; f[90] = 0.666992; f[91] = 0.332764; f[92] = 0.605957; f[93] = 0.332764; f[94] = 0.605957; f[95] = 0.5; f[96] = 0.277832; f[97] = 0.443848; f[98] = 0.462891; f[99] = 0.406982; f[100] = 0.5; f[101] = 0.388916; f[102] = 0.277832; f[103] = 0.5; f[104] = 0.5; f[105] = 0.277832; f[106] = 0.277832; f[107] = 0.443848; f[108] = 0.277832; f[109] = 0.777832; f[110] = 0.555908; f[111] = 0.443848; f[112] = 0.5; f[113] = 0.462891; f[114] = 0.388916; f[115] = 0.388916; f[116] = 0.332764; f[117] = 0.555908; f[118] = 0.5; f[119] = 0.721924; f[120] = 0.5; f[121] = 0.5; f[122] = 0.443848; f[123] = 0.332764; f[124] = 0.605957; f[125] = 0.332764; f[126] = 0.605957; f[161] = 0.332764; f[162] = 0.5; f[163] = 0.5; f[164] = 0.166992; f[165] = 0.5; f[166] = 0.5; f[169] = 0.332764; f[170] = 0.5; f[171] = 0.5; f[172] = 0.332764; f[173] = 0.332764; f[174] = 0.527832; f[175] = 0.544922; f[177] = 0.5; f[179] = 0.5; f[180] = 0.25; f[183] = 0.5; f[185] = 0.5; f[186] = 0.5; f[187] = 0.5; f[188] = 1.0; f[191] = 0.5; f[193] = 0.332764; f[194] = 0.332764; f[195] = 0.332764; f[196] = 0.332764; f[200] = 0.332764; f[203] = 0.332764; f[205] = 0.332764; f[208] = 1.0; f[225] = 0.940918; f[234] = 1.02783; f[241] = 0.637939; f[245] = 0.277832; f[250] = 0.668945; f[251] = 0.5; } else if ( !strcmp(font, "Palatino-Bold") ) { f[32] = 0.25; f[33] = 0.277832; f[34] = 0.401855; f[35] = 0.5; f[36] = 0.5; f[37] = 0.888916; f[38] = 0.832764; f[39] = 0.277832; f[40] = 0.332764; f[41] = 0.332764; f[42] = 0.443848; f[43] = 0.605957; f[44] = 0.25; f[45] = 0.332764; f[46] = 0.25; f[47] = 0.295898; f[48] = 0.5; f[49] = 0.5; f[50] = 0.5; f[51] = 0.5; f[52] = 0.5; f[53] = 0.5; f[54] = 0.5; f[55] = 0.5; f[56] = 0.5; f[57] = 0.5; f[58] = 0.25; f[59] = 0.25; f[60] = 0.605957; f[61] = 0.605957; f[62] = 0.605957; f[63] = 0.443848; f[64] = 0.746826; f[65] = 0.777832; f[66] = 0.666992; f[67] = 0.721924; f[68] = 0.832764; f[69] = 0.61084; f[70] = 0.555908; f[71] = 0.832764; f[72] = 0.832764; f[73] = 0.388916; f[74] = 0.388916; f[75] = 0.777832; f[76] = 0.61084; f[77] = 1.0; f[78] = 0.832764; f[79] = 0.832764; f[80] = 0.61084; f[81] = 0.832764; f[82] = 0.721924; f[83] = 0.61084; f[84] = 0.666992; f[85] = 0.777832; f[86] = 0.777832; f[87] = 1.0; f[88] = 0.666992; f[89] = 0.666992; f[90] = 0.666992; f[91] = 0.332764; f[92] = 0.605957; f[93] = 0.332764; f[94] = 0.605957; f[95] = 0.5; f[96] = 0.277832; f[97] = 0.5; f[98] = 0.61084; f[99] = 0.443848; f[100] = 0.61084; f[101] = 0.5; f[102] = 0.388916; f[103] = 0.555908; f[104] = 0.61084; f[105] = 0.332764; f[106] = 0.332764; f[107] = 0.61084; f[108] = 0.332764; f[109] = 0.888916; f[110] = 0.61084; f[111] = 0.555908; f[112] = 0.61084; f[113] = 0.61084; f[114] = 0.388916; f[115] = 0.443848; f[116] = 0.332764; f[117] = 0.61084; f[118] = 0.555908; f[119] = 0.832764; f[120] = 0.5; f[121] = 0.555908; f[122] = 0.5; f[123] = 0.309814; f[124] = 0.605957; f[125] = 0.309814; f[126] = 0.605957; f[161] = 0.277832; f[162] = 0.5; f[163] = 0.5; f[164] = 0.166992; f[165] = 0.5; f[166] = 0.5; f[169] = 0.226807; f[170] = 0.5; f[171] = 0.5; f[172] = 0.388916; f[173] = 0.388916; f[174] = 0.61084; f[175] = 0.61084; f[177] = 0.5; f[179] = 0.5; f[180] = 0.25; f[183] = 0.605957; f[185] = 0.5; f[186] = 0.5; f[187] = 0.5; f[188] = 1.0; f[191] = 0.443848; f[193] = 0.332764; f[194] = 0.332764; f[195] = 0.332764; f[196] = 0.332764; f[200] = 0.332764; f[203] = 0.332764; f[205] = 0.332764; f[208] = 1.0; f[225] = 1.0; f[234] = 1.0; f[241] = 0.777832; f[245] = 0.332764; f[250] = 0.832764; f[251] = 0.61084; } else if ( !strcmp(font, "Palatino-BoldItalic") ) { f[32] = 0.25; f[33] = 0.332764; f[34] = 0.5; f[35] = 0.5; f[36] = 0.5; f[37] = 0.888916; f[38] = 0.832764; f[39] = 0.277832; f[40] = 0.332764; f[41] = 0.332764; f[42] = 0.443848; f[43] = 0.605957; f[44] = 0.25; f[45] = 0.388916; f[46] = 0.25; f[47] = 0.314941; f[48] = 0.5; f[49] = 0.5; f[50] = 0.5; f[51] = 0.5; f[52] = 0.5; f[53] = 0.5; f[54] = 0.5; f[55] = 0.5; f[56] = 0.5; f[57] = 0.5; f[58] = 0.25; f[59] = 0.25; f[60] = 0.605957; f[61] = 0.605957; f[62] = 0.605957; f[63] = 0.443848; f[64] = 0.832764; f[65] = 0.721924; f[66] = 0.666992; f[67] = 0.684814; f[68] = 0.777832; f[69] = 0.61084; f[70] = 0.555908; f[71] = 0.777832; f[72] = 0.777832; f[73] = 0.388916; f[74] = 0.388916; f[75] = 0.721924; f[76] = 0.61084; f[77] = 0.943848; f[78] = 0.777832; f[79] = 0.832764; f[80] = 0.666992; f[81] = 0.832764; f[82] = 0.721924; f[83] = 0.555908; f[84] = 0.61084; f[85] = 0.777832; f[86] = 0.666992; f[87] = 1.0; f[88] = 0.721924; f[89] = 0.61084; f[90] = 0.666992; f[91] = 0.332764; f[92] = 0.605957; f[93] = 0.332764; f[94] = 0.605957; f[95] = 0.5; f[96] = 0.277832; f[97] = 0.555908; f[98] = 0.536865; f[99] = 0.443848; f[100] = 0.555908; f[101] = 0.443848; f[102] = 0.332764; f[103] = 0.5; f[104] = 0.555908; f[105] = 0.332764; f[106] = 0.332764; f[107] = 0.555908; f[108] = 0.332764; f[109] = 0.832764; f[110] = 0.555908; f[111] = 0.555908; f[112] = 0.555908; f[113] = 0.536865; f[114] = 0.388916; f[115] = 0.443848; f[116] = 0.388916; f[117] = 0.555908; f[118] = 0.555908; f[119] = 0.832764; f[120] = 0.5; f[121] = 0.555908; f[122] = 0.5; f[123] = 0.332764; f[124] = 0.605957; f[125] = 0.332764; f[126] = 0.605957; f[161] = 0.332764; f[162] = 0.5; f[163] = 0.5; f[164] = 0.166992; f[165] = 0.5; f[166] = 0.5; f[169] = 0.25; f[170] = 0.5; f[171] = 0.5; f[172] = 0.332764; f[173] = 0.332764; f[174] = 0.61084; f[175] = 0.61084; f[177] = 0.5; f[179] = 0.555908; f[180] = 0.25; f[183] = 0.605957; f[185] = 0.5; f[186] = 0.5; f[187] = 0.5; f[188] = 1.0; f[191] = 0.443848; f[193] = 0.332764; f[194] = 0.332764; f[195] = 0.332764; f[196] = 0.332764; f[200] = 0.332764; f[203] = 0.332764; f[205] = 0.332764; f[208] = 1.0; f[225] = 0.943848; f[234] = 0.943848; f[241] = 0.737793; f[245] = 0.332764; f[250] = 0.777832; f[251] = 0.555908; } else if ( !strcmp(font, "ZapfChancery-MediumItalic") ) { f[32] = 0.219971; f[33] = 0.279785; f[34] = 0.219971; f[35] = 0.439941; f[36] = 0.439941; f[37] = 0.679932; f[38] = 0.779785; f[39] = 0.23999; f[40] = 0.259766; f[41] = 0.219971; f[42] = 0.419922; f[43] = 0.519775; f[44] = 0.219971; f[45] = 0.279785; f[46] = 0.219971; f[47] = 0.339844; f[48] = 0.439941; f[49] = 0.439941; f[50] = 0.439941; f[51] = 0.439941; f[52] = 0.439941; f[53] = 0.439941; f[54] = 0.439941; f[55] = 0.439941; f[56] = 0.439941; f[57] = 0.439941; f[58] = 0.259766; f[59] = 0.23999; f[60] = 0.519775; f[61] = 0.519775; f[62] = 0.519775; f[63] = 0.379883; f[64] = 0.699951; f[65] = 0.619873; f[66] = 0.599854; f[67] = 0.519775; f[68] = 0.699951; f[69] = 0.619873; f[70] = 0.579834; f[71] = 0.619873; f[72] = 0.679932; f[73] = 0.379883; f[74] = 0.399902; f[75] = 0.659912; f[76] = 0.579834; f[77] = 0.839844; f[78] = 0.699951; f[79] = 0.599854; f[80] = 0.539795; f[81] = 0.599854; f[82] = 0.599854; f[83] = 0.459961; f[84] = 0.5; f[85] = 0.73999; f[86] = 0.639893; f[87] = 0.879883; f[88] = 0.559814; f[89] = 0.559814; f[90] = 0.619873; f[91] = 0.23999; f[92] = 0.47998; f[93] = 0.319824; f[94] = 0.519775; f[95] = 0.5; f[96] = 0.23999; f[97] = 0.419922; f[98] = 0.419922; f[99] = 0.339844; f[100] = 0.439941; f[101] = 0.339844; f[102] = 0.319824; f[103] = 0.399902; f[104] = 0.439941; f[105] = 0.23999; f[106] = 0.219971; f[107] = 0.439941; f[108] = 0.23999; f[109] = 0.619873; f[110] = 0.459961; f[111] = 0.399902; f[112] = 0.439941; f[113] = 0.399902; f[114] = 0.299805; f[115] = 0.319824; f[116] = 0.319824; f[117] = 0.459961; f[118] = 0.439941; f[119] = 0.679932; f[120] = 0.419922; f[121] = 0.399902; f[122] = 0.439941; f[123] = 0.23999; f[124] = 0.519775; f[125] = 0.23999; f[126] = 0.519775; f[161] = 0.279785; f[162] = 0.439941; f[163] = 0.439941; f[164] = 0.0598145; f[165] = 0.439941; f[166] = 0.439941; f[169] = 0.159912; f[170] = 0.339844; f[171] = 0.339844; f[172] = 0.23999; f[173] = 0.259766; f[174] = 0.519775; f[175] = 0.519775; f[177] = 0.5; f[179] = 0.47998; f[180] = 0.219971; f[183] = 0.599854; f[185] = 0.279785; f[186] = 0.359863; f[187] = 0.379883; f[188] = 1.0; f[191] = 0.399902; f[193] = 0.219971; f[194] = 0.299805; f[195] = 0.339844; f[196] = 0.439941; f[200] = 0.359863; f[203] = 0.299805; f[205] = 0.399902; f[208] = 1.0; f[225] = 0.73999; f[234] = 0.819824; f[241] = 0.539795; f[245] = 0.23999; f[250] = 0.559814; f[251] = 0.419922; } else if ( !strcmp(font, "ZapfDingbats") ) { f[32] = 0.278; f[33] = 0.973877; f[34] = 0.960938; f[35] = 0.973877; f[36] = 0.97998; f[37] = 0.718994; f[38] = 0.788818; f[39] = 0.789795; f[40] = 0.790771; f[41] = 0.689941; f[42] = 0.959961; f[43] = 0.938965; f[44] = 0.548828; f[45] = 0.85498; f[46] = 0.910889; f[47] = 0.932861; f[48] = 0.910889; f[49] = 0.944824; f[50] = 0.973877; f[51] = 0.754883; f[52] = 0.845947; f[53] = 0.761963; f[54] = 0.760986; f[55] = 0.570801; f[56] = 0.676758; f[57] = 0.762939; f[58] = 0.759766; f[59] = 0.758789; f[60] = 0.753906; f[61] = 0.493896; f[62] = 0.551758; f[63] = 0.536865; f[64] = 0.576904; f[65] = 0.691895; f[66] = 0.785889; f[67] = 0.787842; f[68] = 0.787842; f[69] = 0.789795; f[70] = 0.792969; f[71] = 0.793945; f[72] = 0.815918; f[73] = 0.822998; f[74] = 0.788818; f[75] = 0.84082; f[76] = 0.822998; f[77] = 0.832764; f[78] = 0.815918; f[79] = 0.830811; f[80] = 0.922852; f[81] = 0.743896; f[82] = 0.7229; f[83] = 0.748779; f[84] = 0.789795; f[85] = 0.791992; f[86] = 0.694824; f[87] = 0.775879; f[88] = 0.767822; f[89] = 0.791992; f[90] = 0.758789; f[91] = 0.706787; f[92] = 0.707764; f[93] = 0.681885; f[94] = 0.700928; f[95] = 0.825928; f[96] = 0.814941; f[97] = 0.788818; f[98] = 0.788818; f[99] = 0.706787; f[100] = 0.686768; f[101] = 0.695801; f[102] = 0.688989; f[103] = 0.785889; f[104] = 0.786865; f[105] = 0.712891; f[106] = 0.790771; f[107] = 0.784912; f[108] = 0.790771; f[109] = 0.872803; f[110] = 0.760986; f[111] = 0.761963; f[112] = 0.761963; f[113] = 0.758789; f[114] = 0.758789; f[115] = 0.891846; f[116] = 0.891846; f[117] = 0.787842; f[118] = 0.783936; f[119] = 0.437988; f[120] = 0.137939; f[121] = 0.276855; f[122] = 0.414795; f[123] = 0.391846; f[124] = 0.391846; f[125] = 0.667969; f[126] = 0.667969; f[161] = 0.731934; f[162] = 0.543945; f[163] = 0.543945; f[164] = 0.909912; f[165] = 0.666992; f[166] = 0.759766; f[167] = 0.759766; f[168] = 0.775879; f[169] = 0.594971; f[170] = 0.693848; f[171] = 0.625977; f[172] = 0.787842; f[173] = 0.787842; f[174] = 0.787842; f[175] = 0.787842; f[176] = 0.787842; f[177] = 0.787842; f[178] = 0.787842; f[179] = 0.787842; f[180] = 0.787842; f[181] = 0.787842; f[182] = 0.787842; f[183] = 0.787842; f[184] = 0.787842; f[185] = 0.787842; f[186] = 0.787842; f[187] = 0.787842; f[188] = 0.787842; f[189] = 0.787842; f[190] = 0.787842; f[191] = 0.787842; f[192] = 0.787842; f[193] = 0.787842; f[194] = 0.787842; f[195] = 0.787842; f[196] = 0.787842; f[197] = 0.787842; f[198] = 0.787842; f[199] = 0.787842; f[200] = 0.787842; f[201] = 0.787842; f[202] = 0.787842; f[203] = 0.787842; f[204] = 0.787842; f[205] = 0.787842; f[206] = 0.787842; f[207] = 0.787842; f[208] = 0.787842; f[209] = 0.787842; f[210] = 0.787842; f[211] = 0.787842; f[212] = 0.893799; f[213] = 0.837891; f[214] = 1.01587; f[215] = 0.457764; f[216] = 0.747803; f[217] = 0.923828; f[218] = 0.747803; f[219] = 0.917969; f[220] = 0.926758; f[221] = 0.927979; f[222] = 0.927979; f[223] = 0.833984; f[224] = 0.872803; f[225] = 0.827881; f[226] = 0.923828; f[227] = 0.923828; f[228] = 0.916992; f[229] = 0.929932; f[230] = 0.930908; f[231] = 0.462891; f[232] = 0.882812; f[233] = 0.835938; f[234] = 0.835938; f[235] = 0.866943; f[236] = 0.866943; f[237] = 0.695801; f[238] = 0.695801; f[239] = 0.873779; f[241] = 0.873779; f[242] = 0.759766; f[243] = 0.945801; f[244] = 0.770996; f[245] = 0.86499; f[246] = 0.770996; f[247] = 0.887939; f[248] = 0.966797; f[249] = 0.887939; f[250] = 0.830811; f[251] = 0.872803; f[252] = 0.926758; f[253] = 0.969971; f[254] = 0.917969; } else if ( !strcmp(font, "Gothic-Medium.Hiragana") ) { for ( i = 0 ; i < 256 ; i++ ) { f[i] = 0.5; } } else if ( !strcmp(font, "Gothic-Medium.Katakana") ) { for ( i = 0 ; i < 256 ; i++ ) { f[i] = 0.5; } } else if ( !strcmp(font, "Ryumin-Light.Hiragana") ) { for ( i = 0 ; i < 256 ; i++ ) { f[i] = 0.5; } } else if ( !strcmp(font, "Ryumin-Light.Katakana") ) { for ( i = 0 ; i < 256 ; i++ ) { f[i] = 0.5; } } else { for ( i = 0 ; i < 256 ; i++ ) { f[i] = 1.0; } } return NULL; } } /*============================================================================= end =============================================================================*/ e2ps-4.34/e2ps.c0100644000175000017500000014673707530652072012321 0ustar kohdakohda/*============================================================================= e2ps.c by Nobuyuki SHIRAKI Last change : Wed 21 August 2002 17:51:03 =============================================================================*/ /*----------------------------------------------------------------------------- e2ps changes EUC code text to JIS code PostScript -----------------------------------------------------------------------------*/ #include "e2ps.h" #include "wtkf.h" /* Global variables */ uchar *gsCommand; /* own file name */ FILE *gpfOut; float gafFontsize[2][256]; char gsEscapedStr[3]; char *gsAsciiFont = NULL, *gsKanjiFont = NULL; char *gsBoldAsciiFont = NULL, *gsBoldItalicAsciiFont = NULL; char *gsBoldKanjiFont = NULL, *gsBoldItalicKanjiFont = NULL; int giWidth, giHeight; int giPage, giPsPage; uchar guStyle; uchar guBox; uchar guHeader; int giMaxLine, giLine; float gfTopMargin, gfBottomMargin, gfLeftMargin, gfRightMargin; float gfX, gfY; float gfFontSize, gfNlRate; float gfAsciiWidth, gfAsciiHeight; float gfKanjiWidth, gfKanjiHeight; char gsNowTime[STRMAX], gsHeadStr[STRMAX], gsPageStr[STRMAX]; uchar guJapanese = 1; #ifdef JIS_PS uchar guKanjiCode = 0; #else uchar guKanjiCode = 1; #endif char *gsMonth[12] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; /* Main */ int main(int argc, char **argv) { FILE *read; struct tm *systime; time_t nowtime; char *sFileNames[256]; char *sPrinter = NULL; char sPaper[10]; char sStr[STRMAX*10]; signed char ch; uchar *sFileData = NULL, *sTmp = NULL; char *sLang; int iFiles = 0, iFileNum; int iCharCount; uchar uLpr = 0; uchar uMode; /* Printing ASCII or Kanji */ int i, j, index; long lFileSize; float fMaxWidth; float ftmp; #ifdef TEKTRO uchar uCopy = 1; /* Number of paper */ uchar uDup = 0; /* Both side */ #endif /* Signals */ signal(SIGQUIT, quit); signal(SIGHUP, quit); signal(SIGTERM, quit); signal(SIGINT, quit); /* own file name */ if ( argc > 0 ) { while ( strstr(argv[0], "/") ) { argv[0] = strstr(argv[0], "/") + 1; } gsCommand = setstring(argv[0]); } else { gsCommand = setstring(NAME); } /* Date and Time */ nowtime = time(NULL); systime = localtime(&nowtime); switch ( Y2K ) { case 0: default: systime->tm_year += 1900; break; case 1: break; case 2: systime->tm_year += 2000; break; } sprintf(gsNowTime, "%s %.2d %.4d %.2d:%.2d:%.2d", gsMonth[systime->tm_mon], systime->tm_mday, systime->tm_year, systime->tm_hour, systime->tm_min, systime->tm_sec); /* Header string */ gsHeadStr[0] = '\0'; /* Page string */ strcpy(gsPageStr, "Page"); /* Other default */ guStyle = 0x11; /* Portrait */ gsAsciiFont = setstring(ASCII); gsBoldAsciiFont = setstring(ASCII_BOLD); gsBoldItalicAsciiFont = setstring(ASCII_BOLDITALIC); if ( guKanjiCode ) { gsKanjiFont = setstring(EUC_KANJI); gsBoldKanjiFont = setstring(EUC_KANJI_BOLD); gsBoldItalicKanjiFont = setstring(EUC_KANJI_BOLDITALIC); } else { gsKanjiFont = setstring(KANJI); gsBoldKanjiFont = setstring(KANJI_BOLD); gsBoldItalicKanjiFont = setstring(KANJI_BOLDITALIC); } giMaxLine = MAXLINE; strcpy(sPaper, "A4"); giWidth = A4WIDTH; giHeight = A4HEIGHT; gfFontSize = FONTSIZE; gfTopMargin = TOP; gfBottomMargin = BOTTOM; gfLeftMargin = LEFT; gfRightMargin = RIGHT; gfNlRate = NLRATE; gfAsciiWidth = ASCIIWIDTH; gfAsciiHeight = ASCIIHEIGHT; gfKanjiWidth = KANJIWIDTH; gfKanjiHeight = KANJIHEIGHT; guHeader = 1; guBox = 0; /* Languages */ sLang = (char *)getenv("LANG"); if ( sLang != NULL && ( !strcmp(sLang, "ja") || !strcmp(sLang, "japanese") || !strcmp(sLang, "ja_JP.ujis") || !strcmp(sLang, "ja_JP.eucJP") || !strcmp(sLang, "ja_JP.EUC") ) ) { guJapanese = 1; } else { guJapanese = 0; } /* Printer */ if ( (char *)getenv("PRINTER") != NULL ) { sPrinter = setstring((char *)getenv("PRINTER")); } else { sPrinter = NULL; } /* Use printer */ if ( strstr(argv[0], LPRNAME) ) { /* Printer set */ uLpr = 1; } else { /* Standard Out */ gpfOut = stdout; } /* Args */ for ( i = 1 ; i < argc ; i++ ) { if ( strcmp(argv[i], "-l") == 0 ) { /* Landscape */ guStyle = 0x00; continue; } else if ( strcmp(argv[i], "-l2") == 0 ) { /* Landscape Double */ guStyle = 0x01; continue; } else if ( strcmp(argv[i], "-l4") == 0 ) { /* Landscape Quartet */ guStyle = 0x02; continue; } else if ( strcmp(argv[i], "-lv4") == 0 ) { /* Landscape Quartet Vertical */ guStyle = 0x03; continue; } else if ( strcmp(argv[i], "-p") == 0 ) { /* Portrait */ guStyle = 0x10; continue; } else if ( strcmp(argv[i], "-p2") == 0 ) { /* Portrait Double */ guStyle = 0x11; continue; } else if ( strcmp(argv[i], "-p4") == 0 ) { /* Portrait Quartet */ guStyle = 0x12; continue; } else if ( strcmp(argv[i], "-pv4") == 0 ) { /* Portrait Quartet Vertical */ guStyle = 0x13; continue; } else if ( strcmp(argv[i], "-ohp") == 0 ) { /* OHP printing */ gfFontSize = OHPFONTSIZE; guStyle = 0x10; guHeader = 0; continue; } else if ( strcmp(argv[i], "-box") == 0 ) { /* Box printing */ guBox = 1; continue; } else if ( strcmp(argv[i], "-af") == 0 ) { /* ASCII Font */ i++; if ( i < argc ) { if ( gsAsciiFont != NULL ) free(gsAsciiFont); gsAsciiFont = setstring(argv[i]); } continue; } else if ( strcmp(argv[i], "-abf") == 0 ) { /* ASCII Bold Font */ i++; if ( i < argc ) { if ( gsBoldAsciiFont != NULL ) free(gsBoldAsciiFont); gsBoldAsciiFont = setstring(argv[i]); } continue; } else if ( strcmp(argv[i], "-abif") == 0 ) { /* ASCII Bold Font Italic */ i++; if ( i < argc ) { if ( gsBoldItalicAsciiFont != NULL ) free(gsBoldItalicAsciiFont); gsBoldItalicAsciiFont = setstring(argv[i]); } continue; } else if ( strcmp(argv[i], "-size") == 0 ) { /* Font Size */ i++; if ( i < argc ) { gfFontSize = atof(argv[i]); if ( gfFontSize == 0.0 ) gfFontSize = FONTSIZE; } continue; } else if ( strcmp(argv[i], "-afw") == 0 ) { /* ASCII Font Width */ i++; if ( i < argc ) { gfAsciiWidth = atof(argv[i]); if ( gfAsciiWidth == 0.0 ) gfAsciiWidth = ASCIIWIDTH; } continue; } else if ( strcmp(argv[i], "-afh") == 0 ) { /* ASCII Font Height */ i++; if ( i < argc ) { gfAsciiHeight = atof(argv[i]); if ( gfAsciiHeight == 0.0 || gfAsciiHeight > ASCIIHEIGHT ) gfAsciiHeight = ASCIIHEIGHT; } continue; } else if ( strcmp(argv[i], "-kfw") == 0 ) { /* KANJI Font Width */ i++; if ( i < argc ) { gfKanjiWidth = atof(argv[i]); if ( gfKanjiWidth == 0.0 ) gfKanjiWidth = KANJIWIDTH; } continue; } else if ( strcmp(argv[i], "-kfh") == 0 ) { /* KANJI Font Height */ i++; if ( i < argc ) { gfKanjiHeight = atof(argv[i]); if ( gfKanjiHeight == 0.0 || gfKanjiHeight > KANJIHEIGHT ) gfKanjiHeight = KANJIHEIGHT; } continue; } else if ( strcmp(argv[i], "-ls") == 0 ) { /* Space ratio */ i++; if ( i < argc ) { gfNlRate = atof(argv[i]); if ( gfNlRate == 0.0 ) gfNlRate = NLRATE; } continue; } else if ( strcmp(argv[i], "-line") == 0 ) { /* Max Lines per page */ i++; if ( i < argc ) { giMaxLine = atoi(argv[i]); if ( giMaxLine < 1 ) giMaxLine = MAXLINE; } continue; } else if ( strcmp(argv[i], "-a4") == 0 ) { /* A4 */ strcpy(sPaper, "A4"); giWidth = A4WIDTH; giHeight = A4HEIGHT; } else if ( strcmp(argv[i], "-b4") == 0 ) { /* B4 */ strcpy(sPaper, "B4"); giWidth = B4WIDTH; giHeight = B4HEIGHT; } else if ( strcmp(argv[i], "-le") == 0 ) { /* Letter */ strcpy(sPaper, "LETTER"); giWidth = LEWIDTH; giHeight = LEHEIGHT; } else if ( strcmp(argv[i], "-tm") == 0 ) { /* Top margin */ i++; if ( i < argc ) { gfTopMargin = atof(argv[i]); if ( gfTopMargin == 0.0 ) gfTopMargin = TOP; } continue; } else if ( strcmp(argv[i], "-bm") == 0 ) { /* Bottom margin */ i++; if ( i < argc ) { gfBottomMargin = atof(argv[i]); if ( gfBottomMargin == 0.0 ) gfBottomMargin = BOTTOM; } continue; } else if ( strcmp(argv[i], "-lm") == 0 ) { /* Left margin */ i++; if ( i < argc ) { gfLeftMargin = atof(argv[i]); if ( gfLeftMargin == 0.0 ) gfLeftMargin = LEFT; } continue; } else if ( strcmp(argv[i], "-rm") == 0 ) { /* Right margin */ i++; if ( i < argc ) { gfRightMargin = atof(argv[i]); if ( gfRightMargin == 0.0 ) gfRightMargin = RIGHT; } continue; } else if ( strcmp(argv[i], "-P") == 0 ) { /* Printer */ i++; if ( i < argc ) { if ( sPrinter != NULL ) free(sPrinter); sPrinter = setstring(argv[i]); uLpr = 1; } continue; } else if ( argv[i][0] == '-' && argv[i][1] == 'P' && argv[i][2] != '\0' ) { /* Printer */ if ( sPrinter != NULL ) free(sPrinter); sPrinter = setstring(argv[i]+2); uLpr = 1; continue; } else if ( strcmp(argv[i], "-date") == 0 ) { /* Date string */ i++; if ( i < argc ) { strcpy(gsNowTime, argv[i]); } continue; } else if ( strcmp(argv[i], "-head") == 0 ) { /* Header string */ i++; if ( i < argc ) { strcpy(gsHeadStr, argv[i]); } continue; } else if ( strcmp(argv[i], "-page") == 0 ) { /* Page string */ i++; if ( i < argc ) { strcpy(gsPageStr, argv[i]); } continue; } else if ( strcmp(argv[i], "-nh") == 0 ) { /* No header */ guHeader = 0; continue; } else if ( strcmp(argv[i], "-e") == 0 ) { /* EUC printing */ guKanjiCode = 1; if ( gsKanjiFont != NULL ) free(gsKanjiFont); if ( gsBoldKanjiFont != NULL ) free(gsBoldKanjiFont); if ( gsBoldItalicKanjiFont != NULL ) free(gsBoldItalicKanjiFont); gsKanjiFont = setstring(EUC_KANJI); gsBoldKanjiFont = setstring(EUC_KANJI_BOLD); gsBoldItalicKanjiFont = setstring(EUC_KANJI_BOLDITALIC); continue; } else if ( strcmp(argv[i], "-j") == 0 ) { /* JIS printing */ guKanjiCode = 0; if ( gsKanjiFont != NULL ) free(gsKanjiFont); if ( gsBoldKanjiFont != NULL ) free(gsBoldKanjiFont); if ( gsBoldItalicKanjiFont != NULL ) free(gsBoldItalicKanjiFont); gsKanjiFont = setstring(KANJI); gsBoldKanjiFont = setstring(KANJI_BOLD); gsBoldItalicKanjiFont = setstring(KANJI_BOLDITALIC); continue; } #ifdef TEKTRO else if ( strcmp(argv[i], "-copy") == 0 ) { /* Number of paper */ i++; if ( i < argc ) { uCopy = atoi(argv[i]); } else { uCopy = 1; } if ( uCopy < 1 ) uCopy = 1; continue; } else if ( strcmp(argv[i], "-dup") == 0 ) { /* Both side */ uDup = 1; continue; } #endif else if ( strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0 ) { /* Help */ help(NULL); } else if ( strcmp(argv[i], "-v") == 0 || strcmp(argv[i], "--version") == 0 ) { /* Version */ while ( strstr(argv[0], "/") ) { argv[0] = strstr(argv[0], "/") + 1; } if ( guJapanese ) { printf("%s の現在のバージョンは Version %.2f (%s) です。\n", argv[0], VERSION/100.0, DATE); } else { printf("%s's version is %.2f (%s).\n", argv[0], VERSION/100.0, DATE); } exit(0); } else if ( strcmp(argv[i], "-fl") == 0 ) { /* Print Font List */ if ( guJapanese ) { printf("\nフォントリスト\n"); printf("%s", ps_font(NULL, NULL)); /* printf("Ryumin-Light-H\n"); */ /* printf("Ryumin-Light-H-Italic\n"); */ /* printf("Ryumin-Light-EUC-H\n"); */ /* printf("Ryumin-Light-EUC-H-Italic\n"); */ /* printf("GothicBBB-Medium-H\n"); */ /* printf("GothicBBB-Medium-H-Italic\n"); */ /* printf("GothicBBB-Medium-EUC-H\n"); */ /* printf("GothicBBB-Medium-EUC-H-Italic\n\n"); */ } else { printf("\nFont Lists\n"); printf("%s", ps_font(NULL, NULL)); /* printf("Ryumin-Light-H\n"); */ /* printf("Ryumin-Light-H-Italic\n"); */ /* printf("Ryumin-Light-EUC-H\n"); */ /* printf("Ryumin-Light-EUC-H-Italic\n"); */ /* printf("GothicBBB-Medium-H\n"); */ /* printf("GothicBBB-Medium-H-Italic\n"); */ /* printf("GothicBBB-Medium-EUC-H\n"); */ /* printf("GothicBBB-Medium-EUC-H-Italic\n\n"); */ } exit(0); } else if ( strcmp(argv[i], "-lib") == 0 ) { /* Environment */ /* Version */ while ( strstr(argv[0], "/") ) { argv[0] = strstr(argv[0], "/") + 1; } if ( guJapanese ) { printf("コマンド名 : %s\n", argv[0]); printf("製作者 : %s\n", CREATOR); printf("バージョン : Version %.2f\n", VERSION/100.0); printf("製作日 : %s\n", DATE); printf("フォントサイズ : %.2f\n", FONTSIZE); printf("タブ幅 : %d\n", TABSTOP); printf("改行率 : %.2f\n", NLRATE); printf("最大行数 : %d\n", MAXLINE); printf("用紙上余白 : %.2f\n", TOP); printf("用紙下余白 : %.2f\n", BOTTOM); printf("用紙左余白 : %.2f\n", LEFT); printf("用紙右余白 : %.2f\n", RIGHT); printf("アスキー印刷横倍率 : %.2f\n", gfAsciiWidth); printf("アスキー印刷縦倍率 : %.2f\n", gfAsciiHeight); printf("アスキー太字フォント : %s\n", gsBoldAsciiFont); printf("アスキー太字斜体フォント : %s\n", gsBoldItalicAsciiFont); printf("漢字印刷横倍率 : %.2f\n", gfKanjiWidth); printf("漢字印刷縦倍率 : %.2f\n", gfKanjiHeight); printf("漢字フォント : %s\n", gsKanjiFont); printf("漢字太字フォント : %s\n", gsBoldKanjiFont); printf("漢字太字斜体フォント : %s\n", gsBoldItalicKanjiFont); } else { printf("Command Name : %s\n", argv[0]); printf("Creator : %s\n", CREATOR); printf("Version : Version %.2f\n", VERSION/100.0); printf("Created Date : %s\n", DATE); printf("Font Size : %.2f\n", FONTSIZE); printf("Tab Width : %d\n", TABSTOP); printf("Space Ratio : %.2f\n", NLRATE); printf("Max Lines : %d\n", MAXLINE); printf("Top Margin : %.2f\n", TOP); printf("Bottom Margin : %.2f\n", BOTTOM); printf("Left Margin : %.2f\n", LEFT); printf("Right Margin : %.2f\n", RIGHT); printf("ASCII Font Print Width : %.2f\n", gfAsciiWidth); printf("ASCII Font Print Height : %.2f\n", gfAsciiHeight); printf("ASCII Font : %s\n", gsAsciiFont); printf("ASCII Bold Font : %s\n", gsBoldAsciiFont); printf("ASCII Bold Italic Font : %s\n", gsBoldItalicAsciiFont); printf("KANJI Font Print Width : %.2f\n", gfKanjiWidth); printf("KANJI Font Print Height : %.2f\n", gfKanjiHeight); printf("KANJI Font : %s\n", gsKanjiFont); printf("KANJI Bold Font : %s\n", gsBoldKanjiFont); printf("KANJI Bold Italic Font : %s\n", gsBoldItalicKanjiFont); } exit(0); } else if ( ( read = fopen(argv[i], "r") ) != NULL ) { /* File existence */ fclose(read); if ( iFiles < 256 ) { sFileNames[iFiles] = argv[i]; iFiles++; } else { if ( guJapanese ) { strcpy(sStr, "指定したファイル数が256を越えました。"); } else { strcpy(sStr, "Files for printing are over 256."); } exit(0); } } else { /* Mistake of arg */ if ( guJapanese ) { sprintf(sStr, "引数に間違いがあります。==> %s", argv[i]); } else { sprintf(sStr, "Wrong argment==> %s", argv[i]); } help(sStr); } } /* Set Max Lines */ if ( guStyle >= 0x10 && !strcmp(gsAsciiFont, "Courier") && giMaxLine == MAXLINE && giWidth == A4WIDTH && giHeight == A4HEIGHT && gfFontSize == FONTSIZE && (int)(gfNlRate*10) == (int)(NLRATE*10) ) { giMaxLine = MAXLINE; } /* Pipe */ if ( uLpr ) { if ( sPrinter != NULL ) { sprintf(sStr, "lpr -P %s", sPrinter); } else { strcpy(sStr, "lpr"); } if ( ( gpfOut = popen(sStr, "w") ) == NULL ) { if ( guJapanese ) { fprintf(stderr, "パイプがつながりません。\n"); } else { fprintf(stderr, "Cannot make pipe.\n"); } gpfOut = stdout; } } /* Standard In */ if ( iFiles == 0 ) { sFileNames[iFiles++] = "stdin"; } /* Start Input and Output */ /* Header */ fprintf(gpfOut, "%%!PS-Adobe-2.0 EPSF-1.2\n"); fprintf(gpfOut, "%%%%Title:"); for ( iFileNum = 0 ; iFileNum < iFiles ; iFileNum++ ) { fprintf(gpfOut, " %s", sFileNames[iFileNum]); } fprintf(gpfOut, "\n"); fprintf(gpfOut, "%%%%Creator: %s\n", CREATOR); fprintf(gpfOut, "%%%%CreationDate: %s\n", gsNowTime); fprintf(gpfOut, "%%%%Pages: (atend)\n"); fprintf(gpfOut, "%%%%PageOrder: Ascend\n"); fprintf(gpfOut, "%%%%DocumentPaperSizes: %s\n", sPaper); fprintf(gpfOut, "%%%%Orientation: Portrait\n"); #ifdef TEKTRO /* Number of paper */ fprintf(gpfOut, "%%%%Requirements: numcopies(%d) collate\n", uCopy); #endif fprintf(gpfOut, "%%%%EndComments\n\n"); #ifdef TEKTRO /* Number of Paper */ fprintf(gpfOut, "/#copies %d def\n\n", uCopy); /* Both side */ if ( uDup ) { fprintf(gpfOut, "[{\n"); fprintf(gpfOut, "%%%%BeginFeature: *Duplex DuplexTumble\n\n"); fprintf(gpfOut, " <> setpagedevice\n"); fprintf(gpfOut, "%%%%EndFeature\n"); fprintf(gpfOut, "} stopped cleartomark\n\n"); } #endif /* Set Fonts */ fprintf(gpfOut, "/A-R { /%s findfont %.2f scalefont [1 0 0 1 0 0.12] makefont setfont } bind def\n", gsAsciiFont, gfFontSize); fprintf(gpfOut, "/A-B { /%s findfont %.2f scalefont [1 0 0 1 0 0.12] makefont setfont } bind def\n", gsBoldAsciiFont, gfFontSize); fprintf(gpfOut, "/A-BI { /%s findfont %.2f scalefont [1 0 0 1 0 0.12] makefont setfont } bind def\n", gsBoldItalicAsciiFont, gfFontSize); fprintf(gpfOut, "/K-R { /%s findfont %.2f scalefont setfont } bind def\n", gsKanjiFont, gfFontSize); fprintf(gpfOut, "/K-B { /%s findfont %.2f scalefont setfont } bind def\n", gsBoldKanjiFont, gfFontSize); fprintf(gpfOut, "/K-BI { /%s findfont %.2f scalefont [1 0 0.3 1 0 0] makefont setfont } bind def\n", gsBoldKanjiFont, gfFontSize); fprintf(gpfOut, "\n"); if ( guKanjiCode ) { fprintf(gpfOut, "%% Copy Font\n"); fprintf(gpfOut, "/copyfont {\n"); fprintf(gpfOut, " dup maxlength 1 add dict begin\n"); fprintf(gpfOut, " {\n"); fprintf(gpfOut, " 1 index /FID ne 2 index /UniqueID ne and\n"); fprintf(gpfOut, " {def} {pop pop} ifelse\n"); fprintf(gpfOut, " } forall\n"); fprintf(gpfOut, " currentdict\n"); fprintf(gpfOut, " end\n"); fprintf(gpfOut, "} bind def\n\n"); fprintf(gpfOut, "%% Merge Font From tgif\n"); fprintf(gpfOut, "/mergefont {\n"); fprintf(gpfOut, " 12 dict begin\n"); fprintf(gpfOut, " dup type /nametype eq { findfont } if\n"); fprintf(gpfOut, " dup /WMode known {\n"); fprintf(gpfOut, " dup /WMode get /WMode exch def\n"); fprintf(gpfOut, " WMode 1 eq {\n"); fprintf(gpfOut, " [0.0 1.0 -1.0 0.0 0.0 0.3] makefont\n"); fprintf(gpfOut, " } if\n"); fprintf(gpfOut, " } if\n"); fprintf(gpfOut, " copyfont dup begin\n"); fprintf(gpfOut, " /Encoding Encoding\n"); fprintf(gpfOut, " FMapType dup 2 eq {\n"); fprintf(gpfOut, " pop 128 128\n"); fprintf(gpfOut, " } { 5 eq {\n"); fprintf(gpfOut, " 256 256\n"); fprintf(gpfOut, " } {\n"); fprintf(gpfOut, " /compositefont errordict /invalidfont get exec\n"); fprintf(gpfOut, " } ifelse\n"); fprintf(gpfOut, " } ifelse\n"); fprintf(gpfOut, " getinterval def\n"); fprintf(gpfOut, " end\n"); fprintf(gpfOut, " /kanjifont exch definefont\n"); fprintf(gpfOut, " exch\n"); fprintf(gpfOut, "\n"); fprintf(gpfOut, " dup type /nametype eq { findfont } if\n"); fprintf(gpfOut, " exch\n"); fprintf(gpfOut, "\n"); fprintf(gpfOut, " /FDepVector [ 4 2 roll ] def\n"); fprintf(gpfOut, " /FontType 0 def\n"); fprintf(gpfOut, " /FMapType 4 def\n"); fprintf(gpfOut, " /FontMatrix matrix def\n"); fprintf(gpfOut, " /Encoding [ 0 1 ] def\n"); fprintf(gpfOut, " /FontBBox {0 0 0 0} def\n"); fprintf(gpfOut, " dup /FontName exch def\n"); fprintf(gpfOut, " currentdict\n"); fprintf(gpfOut, " end\n"); fprintf(gpfOut, " definefont pop\n"); fprintf(gpfOut, "} def\n"); fprintf(gpfOut, "\n"); fprintf(gpfOut, "/HEAD /Helvetica /Ryumin-Light-EUC-H mergefont\n"); fprintf(gpfOut, "/HEAD-BOLD /Helvetica-Bold /GothicBBB-Medium-EUC-H mergefont\n"); } else { fprintf(gpfOut, "/HEAD { /Helvetica } bind def\n"); fprintf(gpfOut, "/HEAD-BOLD { /Helvetica-Bold } bind def\n"); fprintf(gpfOut, "/HEAD-KANJI { /Ryumin-Light-H } bind def\n"); fprintf(gpfOut, "/HEAD-KANJI-BOLD { /GothicBBB-Medium-H } bind def\n"); } fprintf(gpfOut, "\n\n"); /* Page */ giPsPage = 0; if ( guStyle < 0x10 ) { /* Exchange */ ftmp = giWidth; giWidth = giHeight; giHeight = ftmp; } /* Max Width */ fMaxWidth = giWidth - gfRightMargin; /* File Loop */ for ( iFileNum = 0 ; iFileNum < iFiles ; iFileNum++ ) { sFileData = NULL; /* Read from ? */ if ( strcmp(sFileNames[iFileNum], "stdin") ) { /* File */ read = fopen(sFileNames[iFileNum], "r"); fseek(read, 0, SEEK_END); lFileSize = ftell(read); rewind(read); } else { /* Standard Input */ read = stdin; lFileSize = 0; } /* Read Data */ if ( lFileSize > 0 ) { /* From File */ sFileData = setstringsize(lFileSize); fread(sFileData, sizeof(char), lFileSize, read); } else { /* From Standard Input */ while ( fgets(sStr, STRMAX, read) ) { sFileData = addstring(sFileData, sStr); } } fclose(read); /* If file has no data, go to next file */ if ( sFileData == NULL ) continue; /* Change to EUC */ sTmp = change2euc(sFileData); free(sFileData); sFileData = sTmp; /* Setting before printing */ giPage = 0; giLine = 1; newpage(sFileNames[iFileNum]); uMode = 0; iCharCount = 0; ps_font(gsAsciiFont, gafFontsize[0]); ps_font(gsBoldItalicAsciiFont, gafFontsize[1]); sStr[0] = '\0'; for ( index = 0 ; ( ch = *(sFileData+index) ) != '\0' ; index++ ) { if ( ch == NEWPAGE ) { /* New Page */ newpage(sFileNames[iFileNum]); giLine = 1; continue; } if ( ch == NEWLINE ) { /* New Line */ newline(uMode, sStr, sFileNames[iFileNum]); sStr[0] = '\0'; iCharCount = 0; continue; } if ( ch == TAB ) { /* TAB */ if ( uMode != 0 ) { print(uMode, sStr); sStr[0] = '\0'; } for ( j = 0 ; j < TABSTOP - ( iCharCount % TABSTOP ) ; j++ ) strcat(sStr, " "); uMode = 0; /* String width */ gfX += gafFontsize[0][' '] * gfAsciiWidth/ASCIIWIDTH * ( TABSTOP - ( iCharCount % TABSTOP ) ) * gfFontSize; iCharCount += TABSTOP - ( iCharCount % TABSTOP ); /* New Line? */ if ( gfX >= fMaxWidth && *(sFileData+index+1) != '\n' ) { newline(uMode, sStr, sFileNames[iFileNum]); sStr[0] = '\0'; iCharCount = 0; } continue; } if ( ch == '_' && *(sFileData+index+1) == BACKSPACE ) { /* Back Space */ if ( ( *(sFileData+index+2) & 128 ) == 0 ) { if ( uMode != 2 ) { print(uMode, sStr); sStr[0] = '\0'; } strcat(sStr, escape(*(sFileData+index+2))); index += 2; iCharCount++; uMode = 2; /* String width */ /* ps_font(gsBoldItalicAsciiFont, gafFontsize); */ gfX += gafFontsize[1][(int)*(sFileData+index+2)] * gfAsciiWidth/ASCIIWIDTH * gfFontSize; /* ps_font(gsAsciiFont, gafFontsize); */ /* New Line? */ if ( gfX >= fMaxWidth && *(sFileData+index+1) != '\n' ) { newline(uMode, sStr, sFileNames[iFileNum]); sStr[0] = '\0'; iCharCount = 0; } } else { if ( uMode != 3 ) { print(uMode, sStr); sStr[0] = '\0'; } strcat(sStr, escape(*(sFileData+index+2))); strcat(sStr, escape(*(sFileData+index+3))); index += 3; iCharCount++; iCharCount++; uMode = 3; /* String width */ /* gfX += gfFontSize * 1.2; */ gfX += gfFontSize * gfKanjiWidth; /* New Line? */ if ( gfX >= fMaxWidth && *(sFileData+index+1) != '\n' ) { newline(uMode, sStr, sFileNames[iFileNum]); sStr[0] = '\0'; iCharCount = 0; } } continue; } if ( ( ch & 0x80 ) == 0 ) { if ( uMode != 0 ) { print(uMode, sStr); sStr[0] = '\0'; } strcat(sStr, escape(ch)); iCharCount++; uMode = 0; /* String width */ gfX += gafFontsize[0][(int)ch] * gfAsciiWidth/ASCIIWIDTH * gfFontSize; /* New Line? */ if ( gfX >= fMaxWidth && *(sFileData+index+1) != '\n' ) { newline(uMode, sStr, sFileNames[iFileNum]); sStr[0] = '\0'; iCharCount = 0; } } else { if ( uMode != 1 ) { print(uMode, sStr); sStr[0] = '\0'; } strcat(sStr, escape(ch)); ch = *(sFileData+(++index)); strcat(sStr, escape(ch)); iCharCount++; iCharCount++; uMode = 1; /* String width */ /* gfX += gfFontSize * 1.2; */ gfX += gfFontSize * gfKanjiWidth; /* New Line? */ if ( gfX >= fMaxWidth && *(sFileData+index+1) != '\n' ) { newline(uMode, sStr, sFileNames[iFileNum]); sStr[0] = '\0'; iCharCount = 0; } } } print(uMode, sStr); sStr[0] = '\0'; iCharCount = 0; fprintf(gpfOut, "\n\ngrestore\n\nshowpage\n\n"); free(sFileData); } /* Finish */ fprintf(gpfOut, "%%%%Trailer\n"); if ( uLpr ) { pclose(gpfOut); } else { fclose(gpfOut); } /* Number of pages */ if ( guJapanese ) { fprintf(stderr, "%% %d ページ出力しました\n", giPsPage); } else { if ( giPsPage == 1 ) { fprintf(stderr, "%% %d pages were outputed.\n", giPsPage); } else { fprintf(stderr, "%% One page was outputed.\n"); } } /* Free Area */ if ( gsCommand != NULL ) free(gsCommand); if ( gsAsciiFont != NULL ) free(gsAsciiFont); if ( gsBoldAsciiFont != NULL ) free(gsBoldAsciiFont); if ( gsBoldItalicAsciiFont != NULL ) free(gsBoldItalicAsciiFont); if ( gsKanjiFont != NULL ) free(gsKanjiFont); if ( gsBoldKanjiFont != NULL ) free(gsBoldKanjiFont); if ( gsBoldItalicKanjiFont != NULL ) free(gsBoldItalicKanjiFont); if ( sPrinter != NULL ) free(sPrinter); return 0; } /* Print */ void print(uchar uMode, char *sStr) { int i; if ( sStr != NULL && *sStr != '\0' ) { switch ( uMode ) { case 0: /* ASCII */ print_font(gsAsciiFont); fprintf(gpfOut, "%.2f %.2f scale\n", gfAsciiWidth/ASCIIWIDTH, gfAsciiHeight); fprintf(gpfOut, "(%s) show\n", sStr); fprintf(gpfOut, "1.0 %.2f div 1.0 %.2f div scale\n", gfAsciiWidth/ASCIIWIDTH, gfAsciiHeight); break; case 1: /* KANJI */ print_font(gsKanjiFont); if ( guKanjiCode ) { /* fprintf(gpfOut, "%.2f 0 (%s) ashow\n", gfFontSize * 0.2, sStr); */ if ( gfKanjiWidth >= 1.0 ) { /* Kanji font (default width=1.2) */ fprintf(gpfOut, "%.2f 0 (%s) ashow\n", gfFontSize * (gfKanjiWidth-1.0), sStr); } else { fprintf(gpfOut, "%.2f %.2f scale\n", gfKanjiWidth-0.2, gfKanjiHeight); fprintf(gpfOut, "(%s) show\n", sStr); fprintf(gpfOut, "1.0 %.2f div 1.0 %.2f div scale\n", gfKanjiWidth-0.2, gfKanjiHeight); } } else { /* For printers without EUC fonts */ /* Change to JIS Code */ /* fprintf(gpfOut, "%.2f 0 (", gfFontSize * 0.2); */ if ( gfKanjiWidth >= 1.0 ) { fprintf(gpfOut, "%.2f 0 (", gfFontSize * (gfKanjiWidth-1.0)); for ( i = 0 ; *(sStr+i) != '\0' ; i++ ) { fprintf(gpfOut, "\\%03o", *(sStr+i) & 0x7f); } fprintf(gpfOut, ") ashow\n"); } else { fprintf(gpfOut, "%.2f %.2f scale\n", gfKanjiWidth-0.2, gfKanjiHeight); fprintf(gpfOut, "("); for ( i = 0 ; *(sStr+i) != '\0' ; i++ ) { fprintf(gpfOut, "\\%03o", *(sStr+i) & 0x7f); } fprintf(gpfOut, ") show\n"); fprintf(gpfOut, "1.0 %.2f div 1.0 %.2f div scale\n", gfKanjiWidth-0.2, gfKanjiHeight); } } break; case 2: /* Bold Italic ASCII */ print_font(gsBoldItalicAsciiFont); fprintf(gpfOut, "%.2f %.2f scale\n", gfAsciiWidth/ASCIIWIDTH, gfAsciiHeight); fprintf(gpfOut, "(%s) show\n", sStr); fprintf(gpfOut, "1.0 %.2f div 1.0 %.2f div scale\n", gfAsciiWidth/ASCIIWIDTH, gfAsciiHeight); break; case 3: /* Bold Italic KANJI */ print_font(gsBoldItalicKanjiFont); if ( guKanjiCode ) { /* fprintf(gpfOut, "%.2f 0 (%s) ashow\n", gfFontSize * 0.2, sStr); */ if ( gfKanjiWidth >= 1.0 ) { fprintf(gpfOut, "%.2f 0 (%s) ashow\n", gfFontSize * (gfKanjiWidth-1.0), sStr); } else { fprintf(gpfOut, "%.2f %.2f scale\n", gfKanjiWidth-0.2, gfKanjiHeight); fprintf(gpfOut, "(%s) show\n", sStr); fprintf(gpfOut, "1.0 %.2f div 1.0 %.2f div scale\n", gfKanjiWidth-0.2, gfKanjiHeight); } } else { /* For printers without EUC fonts */ /* Change to JIS Code */ /* fprintf(gpfOut, "%.2f 0 (", gfFontSize * 0.2); */ if ( gfKanjiWidth >= 1.0 ) { fprintf(gpfOut, "%.2f 0 (", gfFontSize * (gfKanjiWidth-1.0)); for ( i = 0 ; *(sStr+i) != '\0' ; i++ ) { fprintf(gpfOut, "\\%03o", *(sStr+i) & 0x7f); } fprintf(gpfOut, ") ashow\n"); } else { fprintf(gpfOut, "%.2f %.2f scale\n", gfKanjiWidth-0.2, gfKanjiHeight); fprintf(gpfOut, "("); for ( i = 0 ; *(sStr+i) != '\0' ; i++ ) { fprintf(gpfOut, "\\%03o", *(sStr+i) & 0x7f); } fprintf(gpfOut, ") show\n"); fprintf(gpfOut, "1.0 %.2f div 1.0 %.2f div scale\n", gfKanjiWidth-0.2, gfKanjiHeight); } } break; } } return; } /* New Line */ void newline(uchar uMode, char *sStr, char *sFileName) { print(uMode, sStr); gfX = gfLeftMargin; gfY -= gfFontSize * gfNlRate; giLine++; /* New Page? */ if ( gfY < gfLeftMargin || giLine > giMaxLine ) { /* New Page */ newpage(sFileName); giLine = 1; } else { fprintf(gpfOut, "\n%.2f %.2f moveto\n", gfX, gfY); } return; } /* New Page */ void newpage(char *sFileName) { char sStr[STRMAX]; /* Page++ */ giPage++; if ( giPage > 1 ) fprintf(gpfOut, "\n\ngrestore\n\n"); /* PosctScript Page++? */ if ( ( guStyle == 0x00 ) || ( guStyle == 0x01 && ( giPage % 2 ) == 1 ) || ( guStyle == 0x02 && ( giPage % 4 ) == 1 ) || ( guStyle == 0x03 && ( giPage % 4 ) == 1 ) || ( guStyle == 0x10 ) || ( guStyle == 0x11 && ( giPage % 2 ) == 1 ) || ( guStyle == 0x12 && ( giPage % 4 ) == 1 ) || ( guStyle == 0x13 && ( giPage % 4 ) == 1 ) ) { giPsPage++; if ( giPage > 1 ) fprintf(gpfOut, "showpage\n\n"); fprintf(gpfOut, "%%%%Page: %d %d\n\n", giPsPage, giPsPage); /* First Position */ gfX = gfLeftMargin; gfY = giHeight - gfTopMargin; /* Message of Big File */ if ( ( giPsPage % 100 ) == 0 ) { if ( guJapanese ) { fprintf(stderr, "%% %d ページ目出力中\n", giPsPage); } else { fprintf(stderr, "%% Page %d is being outputed...\n", giPsPage); } } } /* Keep PostScript State */ fprintf(gpfOut, "gsave\n\n"); switch ( guStyle ) { case 0x00: /* Landscape */ fprintf(gpfOut, "90 rotate\n"); fprintf(gpfOut, "0 -%d translate\n", giHeight); break; case 0x01: /* Landscape Double */ fprintf(gpfOut, "%.2f %.2f scale\n", SQRT, SQRT); if ( ( giPage % 2 ) == 1 ) { /* Odd page */ fprintf(gpfOut, "0 %d translate\n", giHeight); } break; case 0x02: /* Landscape Quartet */ fprintf(gpfOut, "0.5 0.5 scale\n"); fprintf(gpfOut, "90 rotate\n"); switch ( giPage % 4 ) { case 1: fprintf(gpfOut, "0 -%d translate\n", giHeight); break; case 2: fprintf(gpfOut, "0 -%d translate\n", 2*giHeight); break; case 3: fprintf(gpfOut, "%d -%d translate\n", giWidth, giHeight); break; case 0: fprintf(gpfOut, "%d -%d translate\n", giWidth, 2*giHeight); break; } break; case 0x03: /* Landscape Quartet Vertical */ fprintf(gpfOut, "0.5 0.5 scale\n"); fprintf(gpfOut, "90 rotate\n"); switch ( giPage % 4 ) { case 1: fprintf(gpfOut, "0 -%d translate\n", giHeight); break; case 2: fprintf(gpfOut, "%d -%d translate\n", giWidth, giHeight); break; case 3: fprintf(gpfOut, "0 -%d translate\n", 2*giHeight); break; case 0: fprintf(gpfOut, "%d -%d translate\n", giWidth, 2*giHeight); break; } break; case 0x10: /* Portrait */ /* Do nothing */ break; case 0x11: /* Portrait Double */ fprintf(gpfOut, "%.2f %.2f scale\n", SQRT, SQRT); fprintf(gpfOut, "90 rotate\n"); switch ( giPage % 2 ) { case 1: /* Odd page */ fprintf(gpfOut, "0 -%d translate\n", giHeight); break; case 0: /* Even page */ fprintf(gpfOut, "%d -%d translate\n", giWidth, giHeight); break; } break; case 0x12: /* Portrait Quartet */ fprintf(gpfOut, "0.5 0.5 scale\n"); switch ( giPage % 4 ) { case 1: fprintf(gpfOut, "0 %d translate\n", giHeight); break; case 2: fprintf(gpfOut, "%d %d translate\n", giWidth, giHeight); break; case 3: break; case 0: fprintf(gpfOut, "%d 0 translate\n", giWidth); break; } break; case 0x13: /* Portrait Quartet Vertical */ fprintf(gpfOut, "0.5 0.5 scale\n"); switch ( giPage % 4 ) { case 1: fprintf(gpfOut, "0 %d translate\n", giHeight); break; case 2: break; case 3: fprintf(gpfOut, "%d %d translate\n", giWidth, giHeight); break; case 0: fprintf(gpfOut, "%d 0 translate\n", giWidth); break; } break; } /* Box printing */ if ( guBox ) { fprintf(gpfOut, "\ngsave\n"); fprintf(gpfOut, " 1.0 setlinewidth \n"); fprintf(gpfOut, " newpath\n"); fprintf(gpfOut, " %.2f %.2f moveto\n", LEFT-5.0, BOTTOM-5.0); fprintf(gpfOut, " %.2f %.2f lineto\n", LEFT-5.0, giHeight-TOP+15.0); fprintf(gpfOut, " %.2f %.2f lineto\n", giWidth-RIGHT+5.0, giHeight-TOP+15.0); fprintf(gpfOut, " %.2f %.2f lineto\n", giWidth-RIGHT+5.0, BOTTOM-5.0); fprintf(gpfOut, " closepath\n"); fprintf(gpfOut, " %.2f %.2f moveto\n", LEFT-5.0, giHeight-TOP-5.0); fprintf(gpfOut, " %.2f %.2f lineto\n", giWidth-RIGHT+5.0, giHeight-TOP-5.0); fprintf(gpfOut, " stroke\n"); fprintf(gpfOut, "grestore\n"); } /* First Position */ gfX = gfLeftMargin; gfY = (float)giHeight-gfTopMargin; /* Header */ if ( guHeader ) { fprintf(gpfOut, "\n%% Header\n"); /* Date*/ if ( guKanjiCode == 0 ) { print_header(gsNowTime, "HEAD findfont 12 scalefont setfont", "HEAD-KANJI findfont 12 scalefont setfont", gfX, gfY, 0); } else { fprintf(gpfOut, "\n%.2f %.2f moveto\n", gfX, gfY); fprintf(gpfOut, "HEAD findfont 12 scalefont setfont\n"); fprintf(gpfOut, "(%s) show\n", gsNowTime); } /* FileName or Title */ if ( gsHeadStr[0] != '\0' ) { strcpy(sStr, gsHeadStr); } else { strcpy(sStr, sFileName); } if ( guKanjiCode == 0 ) { print_header(sStr, "HEAD-BOLD findfont 14 scalefont setfont", "HEAD-KANJI-BOLD findfont 14 scalefont setfont", (float)giWidth/2.0, gfY, 1); } else { fprintf(gpfOut, "HEAD-BOLD findfont 14 scalefont setfont\n"); fprintf(gpfOut, "%.2f (%s) stringwidth pop sub 2 div %.2f moveto\n", (float)giWidth, sStr, gfY); fprintf(gpfOut, "(%s) show\n", sStr); } /* Page */ sprintf(sStr, "%s %d", gsPageStr, giPage); if ( guKanjiCode == 0 ) { print_header(sStr, "HEAD findfont 12 scalefont setfont", "HEAD-KANJI findfont 12 scalefont setfont", (float)giWidth-gfRightMargin, gfY, 2); } else { fprintf(gpfOut, "HEAD findfont 12 scalefont setfont\n"); fprintf(gpfOut, "%.2f (%s %d) stringwidth pop sub %.2f moveto\n", giWidth-gfRightMargin, gsPageStr, giPage, gfY); fprintf(gpfOut, "(%s %d) show\n\n", gsPageStr, giPage); } /* Move to first position */ gfY -= gfFontSize * gfNlRate + 14.0; fprintf(gpfOut, "\n%.2f %.2f moveto\n", gfX, gfY); } else { fprintf(gpfOut, "\n%.2f %.2f moveto\n", gfX, gfY); } return; } /* Font */ void print_font(char *sFont) { if ( !strcmp(sFont, gsAsciiFont) ) { fprintf(gpfOut, "A-R "); } else if ( !strcmp(sFont, gsKanjiFont) ) { fprintf(gpfOut, "K-R "); } else if ( !strcmp(sFont, gsBoldItalicAsciiFont) ) { fprintf(gpfOut, "A-BI "); } else if ( !strcmp(sFont, gsBoldItalicKanjiFont) ) { fprintf(gpfOut, "K-BI "); } return; } /* Print Header */ void print_header(char *sStr, char *sAscii, char *sKanji, float fX, float fY, uchar uAlign) { uchar *sEUC; /* Change to EUC code */ sEUC = change2euc(sStr); if ( sEUC == NULL ) return; /* Check Align */ switch ( uAlign ) { default: case 0: /* Left */ fprintf(gpfOut, "%.2f %.2f moveto\n", fX, fY); print_header_string(sEUC, sAscii, sKanji); /* fprintf(gpfOut, "%s\n", sAscii); */ /* fprintf(gpfOut, "(%s) show\n", sEUC); */ break; case 1: /* Center */ fprintf(gpfOut, "%.2f %.2f moveto\n", fX, fY); /* fprintf(gpfOut, "%s\n", sAscii); */ /* fprintf(gpfOut, "%.2f (%s) stringwidth pop sub 2 div %.2f moveto\n", fX, sEUC, fY); */ /* fprintf(gpfOut, "(%s) show\n", sEUC); */ print_header_size(sEUC, sAscii, sKanji); fprintf(gpfOut, "2 div neg 0 rmoveto\n"); print_header_string(sEUC, sAscii, sKanji); break; case 2: /* Right */ fprintf(gpfOut, "%.2f %.2f moveto\n", fX, fY); /* fprintf(gpfOut, "%s\n", sAscii); */ /* fprintf(gpfOut, "%.2f (%s) stringwidth pop sub %.2f moveto\n", fX, sEUC, fY); */ /* fprintf(gpfOut, "(%s) show\n", sEUC); */ print_header_size(sEUC, sAscii, sKanji); fprintf(gpfOut, "neg 0 rmoveto\n"); print_header_string(sEUC, sAscii, sKanji); break; } free(sEUC); return; } /* Print header string size */ void print_header_size(uchar *sStr, char *sAscii, char *sKanji) { char sTmp[STRMAX]; uchar uMode, uStart; int i, j, iSize; iSize = strlen(sStr); uStart = 0; j = 0; sTmp[0] = '\0'; uMode = 0; for ( i = 0 ; i < iSize ; i++ ) { if ( *(sStr+i) < 0x80 ) { if ( uMode == 1 && j > 0 ) { fprintf(gpfOut, "%s\n(", sKanji); for ( j = 0 ; sTmp[j] != '\0' ; j++ ) { fprintf(gpfOut, "\\%03o", sTmp[j] & 0x7f); } if ( uStart == 0 ) { fprintf(gpfOut, ") stringwidth pop\n"); uStart = 1; } else { fprintf(gpfOut, ") stringwidth pop add\n"); } j = 0; sTmp[0] = '\0'; } sTmp[j++] = *(sStr+i); sTmp[j] = '\0'; uMode = 0; } else { if ( uMode == 0 && j > 0 ) { if ( uStart == 0 ) { fprintf(gpfOut, "%s\n(%s) stringwidth pop\n", sAscii, sTmp); uStart = 1; } else { fprintf(gpfOut, "%s\n(%s) stringwidth pop add\n", sAscii, sTmp); } j = 0; sTmp[0] = '\0'; } sTmp[j++] = *(sStr+i++); sTmp[j++] = *(sStr+i); sTmp[j] = '\0'; uMode = 1; } } if ( j > 0 ) { if ( uMode == 0 ) { if ( uStart == 0 ) { fprintf(gpfOut, "%s\n(%s) stringwidth pop\n", sAscii, sTmp); uStart = 1; } else { fprintf(gpfOut, "%s\n(%s) stringwidth pop add\n", sAscii, sTmp); } } else { fprintf(gpfOut, "%s\n(", sKanji); for ( j = 0 ; sTmp[j] != '\0' ; j++ ) { fprintf(gpfOut, "\\%03o", sTmp[j] & 0x7f); } if ( uStart == 0 ) { fprintf(gpfOut, ") stringwidth pop\n"); uStart = 1; } else { fprintf(gpfOut, ") stringwidth pop add\n"); } } j = 0; sTmp[0] = '\0'; } return; } /* Print header string */ void print_header_string(uchar *sStr, char *sAscii, char *sKanji) { char sTmp[STRMAX]; uchar uMode; int i, j, iSize; iSize = strlen(sStr); j = 0; sTmp[0] = '\0'; uMode = 0; for ( i = 0 ; i < iSize ; i++ ) { if ( *(sStr+i) < 0x80 ) { if ( uMode == 1 && j > 0 ) { fprintf(gpfOut, "%s\n(", sKanji); for ( j = 0 ; sTmp[j] != '\0' ; j++ ) { fprintf(gpfOut, "\\%03o", sTmp[j] & 0x7f); } fprintf(gpfOut, ") show\n"); j = 0; sTmp[0] = '\0'; } sTmp[j++] = *(sStr+i); sTmp[j] = '\0'; uMode = 0; } else { if ( uMode == 0 && j > 0 ) { fprintf(gpfOut, "%s\n(%s) show\n", sAscii, sTmp); j = 0; sTmp[0] = '\0'; } sTmp[j++] = *(sStr+i++); sTmp[j++] = *(sStr+i); sTmp[j] = '\0'; uMode = 1; } } if ( j > 0 ) { if ( uMode == 0 ) { fprintf(gpfOut, "%s\n(%s) show\n", sAscii, sTmp); } else { fprintf(gpfOut, "%s\n(", sKanji); for ( j = 0 ; sTmp[j] != '\0' ; j++ ) { fprintf(gpfOut, "\\%03o", sTmp[j] & 0x7f); } fprintf(gpfOut, ") show\n"); } j = 0; sTmp[0] = '\0'; } return; } /* Escape */ char *escape(char ch) { if ( ch == '(' || ch == ')' || ch == '<' || ch == '>' || ch == '\\' ) { sprintf(gsEscapedStr, "\\%c", ch); } else { sprintf(gsEscapedStr, "%c", ch); } return gsEscapedStr; } /* malloc string area */ char *setstring(char *sStr) { char *sMalloc; if ( sStr == NULL || *sStr == '\0' ) return NULL; if ( ( sMalloc = (char *)malloc(sizeof(char)*(strlen(sStr)+1)) ) == NULL ) { if ( guJapanese ) { fprintf(stderr, "メモリが足りません。\n"); } else { fprintf(stderr, "Memory overflow.\n"); } exit(0); } strcpy(sMalloc, sStr); return sMalloc; } /* malloc string area2 */ char *setstringsize(int iSize) { char *sMalloc; if ( iSize <= 0 ) return NULL; if ( ( sMalloc = (char *)malloc(sizeof(char)*iSize) ) == NULL ) { if ( guJapanese ) { fprintf(stderr, "メモリが足りません。\n"); } else { fprintf(stderr, "Memory overflow.\n"); } exit(0); } return sMalloc; } /* string realloc */ char *addstring(char *sOrigin, char *sStr) { char *sRealloc; int length; if ( sStr == NULL || *sStr == '\0' ) return sOrigin; if ( sOrigin == NULL ) return setstring(sStr); length = strlen(sOrigin) + strlen(sStr); if ( ( sRealloc = (char *)realloc(sOrigin, sizeof(char)*(length+1)) ) == NULL ) { if ( guJapanese ) { fprintf(stderr, "メモリが足りません。\n"); } else { fprintf(stderr, "Memory overflow.\n"); } exit(0); } strcat(sRealloc, sStr); return sRealloc; } /* Signal of Quit */ void quit(int sig) { signal(sig, SIG_IGN); exit(1); } /* Error and Help */ void help(char *sStr) { if ( sStr != NULL && *sStr != '\0' ) { fprintf(stderr, "\n%s\n", sStr); } fprintf(stderr, "\n'%s' Version %.2f (%s) --- White Tools Presents.\n", gsCommand, VERSION/100.0, DATE); fprintf(stderr, " Copyright (c) %s %s\n\n", COPYRIGHTYEAR, CREATOR); if ( guJapanese ) { fprintf(stderr, "使い方 : %s\n", gsCommand); fprintf(stderr, " [-l|-l2|-l4|-lv4|-p|-p2|-p4|-pv4] [-af ascii-font] [-abf ascii-bold]\n"); fprintf(stderr, " [-abif ascii-bolditalic] [-size fontsize] [-ls nlrate] [-line line]\n"); fprintf(stderr, " [-a4|-b4|-le] [-ohp] [-box] [-tm margin] [-bm margin] [-lm margin]\n"); fprintf(stderr, " [-rm margin][-nh] [-P printer] [-date string] [-head string]\n"); #ifdef TEKTRO fprintf(stderr, " [-page string] [-e] [-j] [-copy num] [-dup] [-h|--help] [-v|--version] \n"); fprintf(stderr, " [-fl] [-lib] [filenames...]\n\n"); #else fprintf(stderr, " [-page string] [-e] [-j] [-h|--help] [-v|--version] [-fl] [-lib]\n"); fprintf(stderr, " [filenames...]\n\n"); #endif fprintf(stderr, " -l : ランドスケープ\n"); fprintf(stderr, " -l2 : ランドスケープ2面表示\n"); fprintf(stderr, " -l4 : ランドスケープ4面表示\n"); fprintf(stderr, " -lv4 : ランドスケープ4面表示縦順\n"); fprintf(stderr, " -p : ポートレイト\n"); fprintf(stderr, " -p2 : ポートレイト2面表示 (デフォルト)\n"); fprintf(stderr, " -p4 : ポートレイト4面表示\n"); fprintf(stderr, " -pv4 : ポートレイト4面表示縦順\n"); fprintf(stderr, " -af ascii-font : アスキーフォント (%s)\n", gsAsciiFont); fprintf(stderr, " -abf ascii-bold : ボールドフォント (%s)\n", gsBoldAsciiFont); fprintf(stderr, " -abif ascii-bolditalic : ボールドイタリック (%s)\n", gsBoldItalicAsciiFont); fprintf(stderr, " -size fontsize : フォントサイズ (%.1f)\n", FONTSIZE); fprintf(stderr, " -afw magnification : アスキー横倍率 (%.1f)\n", ASCIIWIDTH); fprintf(stderr, " -afh magnification : アスキー縦倍率 (%.1f)\n", ASCIIHEIGHT); fprintf(stderr, " -kfw magnification : 漢字横倍率 (%.1f)\n", KANJIWIDTH); fprintf(stderr, " -kfh magnification : 漢字縦倍率 (%.1f)\n", KANJIHEIGHT); fprintf(stderr, " -ls nlrate : 改行比率 (%.1f)\n", NLRATE); fprintf(stderr, " -line line : ページの最大行数 (%d)\n", MAXLINE); fprintf(stderr, " -a4 : A4サイズ印刷 (デフォルト)\n"); fprintf(stderr, " -b4 : B4サイズ印刷\n"); fprintf(stderr, " -le : レターサイズ印刷\n"); fprintf(stderr, " -ohp : OHP用印刷 (フォントサイズ:%0.1f)\n", OHPFONTSIZE); fprintf(stderr, " -box : 枠印刷 (looks like a2ps)\n"); fprintf(stderr, " -tm margin : 上余白\n"); fprintf(stderr, " -bm margin : 下余白\n"); fprintf(stderr, " -lm margin : 左余白\n"); fprintf(stderr, " -rm margin : 右余白\n"); fprintf(stderr, " -nh : ヘッダなし\n"); fprintf(stderr, " -Pprinter : プリンタセット\n"); fprintf(stderr, " -date string : 日付文字列 (%s)\n", gsNowTime); fprintf(stderr, " -head string : ヘッダ文字列\n"); fprintf(stderr, " -page string : ページ文字列 (デフォルト:Page)\n"); #ifdef JIS_PS fprintf(stderr, " -e : EUCフォントを利用して印刷\n"); fprintf(stderr, " -j : JISフォントを利用して印刷(デフォルト)\n"); #else fprintf(stderr, " -e : EUCフォントを利用して印刷(デフォルト)\n"); fprintf(stderr, " -j : JISフォントを利用して印刷\n"); #endif #ifdef TEKTRO fprintf(stderr, " -dup : 両面印刷\n"); fprintf(stderr, " -copy number : 部数指定印刷 (1)\n"); #endif fprintf(stderr, " -h | --help : ヘルプの表示\n"); fprintf(stderr, " -v | --version : バージョンの表示\n"); fprintf(stderr, " -fl : フォントリスト表示\n"); fprintf(stderr, " -lib : 各種環境表示\n\n"); } else { fprintf(stderr, "Usage : %s\n", gsCommand); fprintf(stderr, " [-l|-l2|-l4|-lv4|-p|-p2|-p4|-pv4] [-af ascii-font] [-abf ascii-bold]\n"); fprintf(stderr, " [-abif ascii-bolditalic] [-size fontsize] [-ls nlrate] [-line line]\n"); fprintf(stderr, " [-a4|-b4|-le] [-ohp] [-box] [-tm margin] [-bm margin] [-lm margin]\n"); fprintf(stderr, " [-rm margin] [-nh] [-P printer] [-date string] [-head string]\n"); #ifdef TEKTRO fprintf(stderr, " [-page string] [-e] [-j] [-copy num] [-dup] [-h|--help] [-v|--version]\n"); fprintf(stderr, " [-fl] [-lib] [filenames...]\n\n"); #else fprintf(stderr, " [-page string] [-e] [-j] [-h|--help] [-v|--version] [-fl] [-lib]\n"); fprintf(stderr, " [filenames...]\n\n"); #endif fprintf(stderr, " -l : landscape\n"); fprintf(stderr, " -l2 : landscape 2 pages/paper\n"); fprintf(stderr, " -l4 : landscape 4 pages/paper\n"); fprintf(stderr, " -lv4 : landscape vertical 4 pages/paper\n"); fprintf(stderr, " -p : portrate\n"); fprintf(stderr, " -p2 : portrate 2 pages/paper (default)\n"); fprintf(stderr, " -p4 : portrate 4 pages/paper\n"); fprintf(stderr, " -pv4 : portrate vertical 4 pages/paper\n"); fprintf(stderr, " -af ascii-font : ASCII font (%s)\n", gsAsciiFont); fprintf(stderr, " -abf ascii-bold : ASCII bold font (%s)\n", gsBoldAsciiFont); fprintf(stderr, " -abif ascii-bolditalic : ASCII bold italic font (%s)\n", gsBoldItalicAsciiFont); fprintf(stderr, " -size fontsize : font size (%0.1f)\n", FONTSIZE); fprintf(stderr, " -afw magnification : ASCII width (%.1f)\n", ASCIIWIDTH); fprintf(stderr, " -afh magnification : ASCII height (%.1f)\n", ASCIIHEIGHT); fprintf(stderr, " -kfw magnification : ASCII width (%.1f)\n", KANJIWIDTH); fprintf(stderr, " -kfh magnification : ASCII height (%.1f)\n", KANJIHEIGHT); fprintf(stderr, " -ls nlrate : space ratio between lines (%0.1f)\n", NLRATE); fprintf(stderr, " -line line : max lines (%d)\n", MAXLINE); fprintf(stderr, " -a4 : A4 paper (default)\n"); fprintf(stderr, " -b4 : B4 paper\n"); fprintf(stderr, " -le : letter paper\n"); fprintf(stderr, " -ohp : OHP printing (font size:%0.1f)\n", OHPFONTSIZE); fprintf(stderr, " -box : print page frame-line (looks like a2ps)\n"); fprintf(stderr, " -tm margin : top margin\n"); fprintf(stderr, " -bm margin : bottom margin\n"); fprintf(stderr, " -lm margin : left margin\n"); fprintf(stderr, " -rm margin : right margin\n"); fprintf(stderr, " -nh : not print headers\n"); fprintf(stderr, " -Pprinter : printer\n"); fprintf(stderr, " -date string : date string (%s)\n", gsNowTime); fprintf(stderr, " -head string : header string\n"); fprintf(stderr, " -page string : page string (Page)\n"); #ifdef JIS_PS fprintf(stderr, " -e : print with EUC postscript font\n"); fprintf(stderr, " -j : print with JIS postscript font(default)\n"); #else fprintf(stderr, " -e : print with EUC postscript font(default)\n"); fprintf(stderr, " -j : print with JIS postscript font\n"); #endif #ifdef TEKTRO fprintf(stderr, " -dup : double side printing\n"); fprintf(stderr, " -copy number : number of papers (1)\n"); #endif fprintf(stderr, " -h | --help : show help\n"); fprintf(stderr, " -v | --version : show version\n"); fprintf(stderr, " -fl : show font list\n"); fprintf(stderr, " -lib : show library\n\n"); } exit(1); } /*============================================================================= end =============================================================================*/ e2ps-4.34/e2ps.h0100644000175000017500000000646507530652075012322 0ustar kohdakohda/*============================================================================= e2ps.h by Nobuyuki SHIRAKI Last change : Wed 21 August 2002 17:51:05 =============================================================================*/ #ifndef WT_E2PS_H #define WT_E2PS_H #include #include #include #include #include #include /* System Information */ #define NAME "e2ps" #define LPRNAME "e2lpr" #define VERSION (434) #define DATE "08/21/2002" #define CREATOR "Nobuyuki Shiraki" #define COPYRIGHTYEAR "1999-2002" /* Character Code */ #define BACKSPACE (0x08) /* BS */ #define TAB (0x09) /* TAB */ #define NEWLINE (0x0a) /* CR */ #define NEWPAGE (0x0c) /* NP */ #define ESC (0x1b) /* Escape */ /* Paper */ #define A4WIDTH (594) #define A4HEIGHT (840) #define LEWIDTH (612) #define LEHEIGHT (796) #define B4WIDTH (730) #define B4HEIGHT (1030) /* sqrt(0.5) */ #define SQRT (0.707106781186548) /* ASCII Fonts */ #ifndef ASCII #define ASCII "Courier" #endif #ifndef ASCII_BOLD #define ASCII_BOLD "Courier-Bold" #endif #ifndef ASCII_BOLDITALIC #define ASCII_BOLDITALIC "Courier-BoldOblique" #endif /* KANJI Fonts */ #define KANJI "Ryumin-Light-H" #define EUC_KANJI "Ryumin-Light-EUC-H" #define KANJI_BOLD "GothicBBB-Medium-H" #define EUC_KANJI_BOLD "GothicBBB-Medium-EUC-H" #define KANJI_BOLDITALIC "GothicBBB-Medium-H-Italic" #define EUC_KANJI_BOLDITALIC "GothicBBB-Medium-EUC-H-Italic" /* Font Size */ #ifndef FONTSIZE #define FONTSIZE (10.0) #endif #ifndef OHPFONTSIZE #define OHPFONTSIZE (25.0) #endif #ifndef ASCIIWIDTH #define ASCIIWIDTH (0.6) #endif #ifndef ASCIIHEIGHT #define ASCIIHEIGHT (1.0) #endif #ifndef KANJIWIDTH #define KANJIWIDTH (1.2) #endif #ifndef KANJIHEIGHT #define KANJIHEIGHT (1.0) #endif /* TAB Width */ #ifndef TABSTOP #define TABSTOP (8) #endif /* Space ratio between lines */ #ifndef NLRATE #define NLRATE (1.1) #endif /* Paper Setting */ #ifndef TOP #define TOP (40.0) /* Top margin */ #endif #ifndef BOTTOM #define BOTTOM (40.0) /* Bottom margin */ #endif #ifndef LEFT #define LEFT (40.0) /* Left margin */ #endif #ifndef RIGHT #define RIGHT (40.0) /* Right margin */ #endif #ifndef MAXLINE #define MAXLINE (66) /* Lines */ #endif /* Y2K */ #ifndef Y2K #define Y2K (0) #endif /* String size */ #define STRMAX (1024) /* Typedef */ typedef unsigned char uchar; /* Functions */ extern char *ps_font(char *,float *); extern int check_kanjicode(uchar *); extern void change_jis2euc(uchar *, uchar *); extern void change_sjis2euc(uchar *, uchar *); extern void print(uchar, char *); extern void newline(uchar, char *, char *); extern void newpage(char *); extern void print_font(char *); extern void print_header(char *, char *, char *, float, float, uchar); extern void print_header_size(uchar *, char *, char *); extern void print_header_string(uchar *, char *, char *); extern char *escape(char); extern char *setstring(char *); extern char *setstringsize(int); extern char *addstring(char *, char *); extern void quit(int); extern void help(char *); /* Global variables */ extern uchar guJapanese; #endif /* WT_E2PS_H */ /*============================================================================= end =============================================================================*/ e2ps-4.34/README.euc0100644000175000017500000001230707530652372012723 0ustar kohdakohda○○○○○○○○○○ e2ps(EUC to PS) Vesion 4.34 08/21/2002 テキスト印刷ツール Copyright 1999-2002 Nobuyuki SHIRAKI (White Tools Presents) 最終更新日時 : 2002年 8月21日(水) 17時54分15秒 ep2sは,テキストファイルを PostScript に変換するツールです. EUCを主に扱うので 'e'2ps と名付けました. ○インストール方法 ・Makefile を変更 Makefile中で主に変更すべき個所は, E2PS_INST_DIR バイナリを最終的にインストールするディレクトリ です.たいていは,/usr/local/bin 等を指定するといいと思います. ・makeする 準備が終わったら, make make install でインストール完了です.E2PS_INST_DIR に,e2ps と e2lpr (e2psへのシンボリックリンク)が作成されます. ○使い方 ・e2ps [引数] [ファイル名・・・] ファイルを(複数)指定しても,標準入力でテキストデータを入力しても 構いません.結果はPostScriptファイルとして出力されます. ・e2lpr は,直接プリンタへ出力します. ・e2ps -h で引数のヘルプが出ます.主に使用する引数を以下の通りです. -p : ポートレイト (縦向き) -p2 : ポートレイト2面印刷 (デフォルト) -p4 : ポートレイト4面印刷 例: 1 2 3 4 -pv4 : ポートレイト4面縦順印刷 例: 1 3 2 4 -l : ランドスケープ (横向き) -l2 : ランドスケープ2面印刷 -l4 : ランドスケープ4面印刷 -lv4 : ランドスケープ4面縦順印刷 -box : ページの枠を印刷 -size fontsize : フォントサイズ (10.0) -line line : ページの最大行数 (66) -nh : ヘッダをなくす -Pprinter : プリンタ設定 (lp) -h | --help : ヘルプを表示する -v | --version : バージョンを表示する ○難しい引数の解説 ・-af (デフォルト: Courier) ・-abf (デフォルト: Courier-Bold) ・-abif (デフォルト: Courier-BoldOblique) PostScritpのアスキーフォント(太字,太字斜体)を指定します. -fl 引数で,フォントのリストが見られますが,すべて使えるわけでは ありません.指定できるフォントは,プリンタに依存します. 例: -af Times-Roman Times-Romanフォントで印刷されます ・-afw (デフォルト: 0.6) ・-afh (デフォルト: 1.0) ・-kfw (デフォルト: 1.2) ・-kfh (デフォルト: 1.0) 印刷する文字の幅や高さの倍率を指定します. -afw, -afh がアスキーフォントの幅と高さで, -kfw, -kfh が漢字フォントの幅と高さです. -ahf,-kfh ともに,1.0以上の値は無視されます. Courierフォントは,高さに対してもともと 0.6倍の幅であるため, アスキーフォントのデフォルト値が 0.6 になっています. 漢字フォントは,幅も高さも同じ大きさですが,通常の印刷では Courierフォントに合わせて 1.2倍の幅にして印刷しています. そのため,デフォルト値が 1.2 になっています. 例: -afw 0.3 アスキーフォントが通常の半分の幅で印刷されます -afw 1.2 アスキーフォントが通常の2倍の幅で印刷されます -afh 0.5 アスキーフォントが通常の半分の高さで印刷されます -afh 1.2 アスキーフォントは通常と同じ高さで印刷されます -kfw 1.0 漢字フォントが隙間なく密に印刷されます -kfw 0.5 漢字フォントが通常の半分の幅で印刷されます -kfw 2.0 漢字フォントが隙間が通常よりも広く印刷されます -kfh 0.5 漢字フォントが通常の半分の高さで印刷されます -kfh 1.2 漢字フォントは通常と同じ高さで印刷されます ・-ohp OHPに印刷するように,フォントを大きく(25.0)して,へッダを印刷 しないようにします. ・-date ページ左上に印刷される日付の文字列を指定します. 日本語も指定できます. ・-head ページ中央上に印刷されるファイル名の文字列を指定します. 日本語も指定できます. ・-page ページ右上に印刷されるページの文字列を指定します. 「指定した文字+ページ数」のように印刷されます. 日本語も指定できます. ○変更点 ・version 4.34 ヘッダの文字列指定で,日本語を指定できるように変更 LANG環境変数取得に関するバグを修正 ・version 4.33 巨大ファイル処理が遅かったので高速化 ・version 4.32 4面縦順印刷を行う -pv4, -lv4 の引数を追加 ・version 4.31 0バイトのデータを入力すると落ちるバグを修正 ・version 4.30 フォントの表示幅の倍率と表示高さの倍率の設定機能を追加 引数 -afw, -afhm, -kfw, -kfh を追加 OHP印刷でポートレイト2面印刷になっていたのを1面印刷に変更 漢字コード変換処理を変更 その他もろもろの修正 ・version 4.29 PowerPC arm s390 の char architecture 依存の問題を修正 SJISに関するバグを修正 横向きに出力する際の向きを反対向きに変更 その他もろもろの修正 ・version 4.28 アスキーフォントの指定に関するバグを修正 ・version 4.27 ヘッダのフォントがおかしかったのを修正 ・version 4.26 2000年問題への対応が少し甘かったので修正 ソースを少し洗練 改行率を変更可能に ・version 4.25 ヘルプ表示と環境表示中のフォント表示ミスを修正 ps-font.c中のフォントサイズの記述ミスを修正 ・version 4.24 「著作権等」の記述を修正 -boxでA4以外の紙に対応できていなかったバグを修正 ・version 4.23 全体に(特にps-font.c)軽量化 ・version 4.22 a2psのように枠を出力することを可能に ・version 4.21 2000年問題が発覚したので対応(defineにより対処) ・version 4.20 英語版のヘルプ表示などを作成 EUC印刷とJIS印刷を引数で設定可能に 印刷の枚数をstderrに出力 ・version 4.11 Tektronixプリンタの部数指定印刷と両面印刷に対応(-DTEKTRO) ・version 4.1 EUCフォントを持っていないプリンタに対応(-DJIS_PS) ○著作権等 'e2ps'の著作権は,GPLに従います. ○連絡先(2002年8月現在) e2psの全部または一部を使用する場合には,下記あてに連絡して下さるよう 希望します. n-shiraki@mosk.tytlabs.co.jp shiraki@mx9.freecom.ne.jp 'wt', 'White Tools'は,私の作るツールの象徴です. e2ps-4.34/README.sjis0100644000175000017500000001254707530652452013124 0ustar kohdakohda e2ps(EUC to PS) Vesion 4.34 08/21/2002 eLXgc[ Copyright 1999-2002 Nobuyuki SHIRAKI (White Tools Presents) IXV : 2002N 821() 175415b ep2sCeLXgt@C PostScript c[D EUC 'e'2ps tD CXg[@ EMakefile X MakefileXC E2PS_INST_DIR oCiIICXg[fBNg DC/usr/local/bin wvD Emake IC make make install CXg[DE2PS_INST_DIR Ce2ps e2lpr (e2psV{bNN)D g Ee2ps [] [t@CEEE] t@C()wCWeLXgf[^ \DPostScriptt@CoD Ee2lpr Cv^oD Ee2ps -h wvoDgpD -p : |[gCg (c) -p2 : |[gCg2 (ftHg) -p4 : |[gCg4 : 1 2 3 4 -pv4 : |[gCg4c : 1 3 2 4 -l : hXP[v () -l2 : hXP[v2 -l4 : hXP[v4 -lv4 : hXP[v4c -box : y[Wg -size fontsize : tHgTCY (10.0) -line line : y[Ws (66) -nh : wb_ -Pprinter : v^ (lp) -h | --help : wv\ヲ -v | --version : o[W\ヲ E-af iftHg: Courierj E-abf iftHg: Courier-Boldj E-abif iftHg: Courier-BoldObliquej PostScritpAXL[tHgiCホjwD -fl CtHgXgCg DwtHgCv^D : -af Times-Roman Times-RomantHg E-afw iftHg: 0.6j E-afh iftHg: 1.0j E-kfw iftHg: 1.2j E-kfh iftHg: 1.0j {wD -afw, -afh AXL[tHgC -kfw, -kfh tHgD -ahfC-kfh C1.0lD CouriertHgC 0.6{C AXL[tHgftHgl 0.6 D tHgCC CouriertHg 1.2{D CftHgl 1.2 D : -afw 0.3 AXL[tHg -afw 1.2 AXL[tHg2{ -afh 0.5 AXL[tHg -afh 1.2 AXL[tHg -kfw 1.0 tHg -kfw 0.5 tHg -kfw 2.0 tHgL -kfh 0.5 tHg -kfh 1.2 tHg E-ohp OHPCtHgi25.0jCb_ D E-date y[WtwD {wD E-head y[Wt@CwD {wD E-page y[WEy[WwD uw{y[WvD {wD X_ Eversion 4.34 wb_wC{wX LANGoOC Eversion 4.33 t@Cx Eversion 4.32 4cs -pv4, -lv4 Eversion 4.31 0oCgf[^oOC Eversion 4.30 tHg\ヲ{\ヲ{@\ -afw, -afhm, -kfw, -kfh OHP|[gCg21X R[hX C Eversion 4.29 PowerPC arm s390 char architecture C SJISoOC oX C Eversion 4.28 AXL[tHgwoOC Eversion 4.27 wb_tHgC Eversion 4.26 2000NC \[X sX\ Eversion 4.25 wv\ヲ\ヲtHg\ヲ~XC ps-font.ctHgTCYLq~XC Eversion 4.24 uvLqC -boxA4OoOC Eversion 4.23 Sips-font.cjy Eversion 4.22 a2psgo\ Eversion 4.21 2000No(define) Eversion 4.20 pwv\ヲ EUCJIS\ stderro Eversion 4.11 Tektronixv^w(-DTEKTRO) Eversion 4.1 EUCtHgv^(-DJIS_PS) 'e2ps'CGPL]D A(2002N8) e2psSgpCLA ]D n-shiraki@mosk.tytlabs.co.jp shiraki@mx9.freecom.ne.jp 'wt', 'White Tools'Cc[D e2ps-4.34/README.english0100644000175000017500000001224307530652436013600 0ustar kohdakohda==================== e2ps(EUC to PS) Vesion 4.34 08/21/2002 Tool for printing text files by ps Copyright 1999-2002 Nobuyuki SHIRAKI (White Tools Presents) Last change : Wed 21 August 2002 17:54:51 e2ps is a tool for printing Japanese EUC code text. Because it processes mainly EUC files, I named this tool 'e'2ps. == How to install - arrange Makefile You have to configure following values for your system. E2PS_INST_DIR Set directory to install binaries. - run 'make' command After configuration, run make make install In E2PS_INST_DIR, e2ps and e2lpr(synbolic link to e2ps) are created. == How to use (simply) - e2ps [arguments] [filenames...] filename and standard-input are both OK. The output is to standard-out as postscript text. - e2lpr sends postscript text to the default printer directly. - e2ps -h shows arguments help. frequently used arguments follows: -p : portrait -p2 : portrait 2 pages/paper (default) -p4 : portrait 4 pages/paper -pv4 : portrait 4 pages/paper vertical Ex: 1 2 3 4 -l : landsacpe -l2 : landscape 2 pages/paper -l4 : landscape 4 pages/paper -lv4 : landscape 4 pages/paper vertical Ex: 1 3 2 4 -box : page frame line print -size fontsize : fontsize (10.0) -line line : max lines/page (66) -nh : not print headers -Pprinter : printer name -h | --help : show this help -v | --version : show version == Complex arguments - -af (default: Courier) - -abf (default: Courier-Bold) - -abif (default: Courier-BoldOblique) Specify PostScript ASCII-fonts (bold, bold-italic). You can read font-list with -fl argument, but every fonts can be used. Available font is based on the printer. Example: -af Times-Roman print with Times-Roman - -afw (default: 0.6) - -afh (default: 1.0) - -kfw (default: 1.2) - -kfh (default: 1.0) Specify scales of font-width and font-height. -afw and -afh specify ASCII-font's width and height. -kfw and -kfh specify KANJI-font's width and height. A value over 1.0 of either -afh or -kfh is ignored. Courier font width is 0.6 times as large as its height. Kanji font width is equal to its height, but Kanji font is printed with 1.2 times width. So default value is 1.2. Example: -afw 0.3 ASCII-font is printed with half width -afw 1.2 ASCII-font is printed with 2 times width -afh 0.5 ASCII-font is printed with half height -afh 1.2 ASCII-font is printed normally -kfw 1.0 KANJI-font is printed densely -kfw 0.5 KANJI-font is printed with half width -kfw 2.0 KANJI-font is printed with 2 times width -kfh 0.5 KANJI-font is printed with half height -kfh 1.2 KANJI-font is printed normally - -ohp printing on OHP sheet with big size font (25.0) and without headers. - -date Specifies date-character-string printed on top-left of a page. Your printer can use EUC-font, you can specify EUC character strings. - -head Specifies file-name-character-string printed on top-center of a page. Your printer can use EUC-font, you can specify EUC character strings. - -page Specifies page-character-string printed on top-right of a page. ' specified-string + page-number ' is the print-style. Your printer can use EUC-font, you can specify EUC character strings. == Chages - version 4.34 enabled Japanese header strings. corrected bugs of LANG environment. - version 4.33 make process of big-size files much faster. - version 4.32 added functions of 4 pages/paper vertical printing. added arguments:-pv4, -lv4 - version 4.31 corrected a problem about 0 byte input. - version 4.30 added a function of setting font-width and font-height magnification. added arguments: -afw, -afhm, -kfw, -kfh changed portrait 2 pages/paper to portrait 1 in OHP printing. changed process of KANJI code convertion. corrected other problems. - version 4.29 corrected PowerPC arm s390's char architecture problem. corrected SJIS problems. corrected other problems. - version 4.28 corrected ASCII fonts arguments's problems. - version 4.27 corrected header fonts problems. - version 4.26 corrected Y2K problem again. arrange sources a little. became able to change space ratio between lines. - version 4.25 corrected help and library mistakes which are misprinting fonts. corrected font size mistakes in ps-font.c - version 4.24 corrected the 'Copyright' expression. corrected the argument '-box' problems. - version 4.23 became smaller especially for ps-font.c. - version 4.22 became able to print page box like a2ps. - version 4.21 corrected Y2K problem. - version 4.20 made English help etc. changed EUC and JIS printing with argument. output number of printing papers to stndard error. - version 4.11 became able to deal with Tektronix printers. (-DTEKTRO) - version 4.1 became able to deal with printers without EUC fonts. (-DJIS_PS) == Copyright The copyright of 'e2ps' is according to GPL. == E-mail Address (Aug/2002) If you want to use whole or part of e2ps, I wish you e-mail to me. n-shiraki@mosk.tytlabs.co.jp shiraki@mx9.freecom.ne.jp 'wt' and 'White Tools' mean the tools I made. e2ps-4.34/README.jis0100644000175000017500000001461107530652452012733 0ustar kohdakohda$B!{!{!{!{!{!{!{!{!{!{(B e2ps(EUC to PS) Vesion 4.34 08/21/2002 $B%F%-%9%H0u:~%D!<%k(B Copyright 1999-2002 Nobuyuki SHIRAKI (White Tools Presents) $B:G=*99?7F|;~(B : 2002$BG/(B 8$B7n(B21$BF|(B($B?e(B) 17$B;~(B54$BJ,(B15$BIC(B ep2s$B$O!$%F%-%9%H%U%!%$%k$r(B PostScript $B$KJQ49$9$k%D!<%k$G$9!%(B EUC$B$rIU$1$^$7$?!%(B $B!{%$%s%9%H!<%kJ}K!(B $B!&(BMakefile $B$rJQ99(B Makefile$BCf$G!&!&!&(B] $B%U%!%$%k$r(B($BJ#?t(B)$B;XDj$7$F$b!$I8=`F~NO$G%F%-%9%H%G!<%?$rF~NO$7$F$b(B $B9=$$$^$;$s!%7k2L$O(BPostScript$B%U%!%$%k$H$7$F=PNO$5$l$^$9!%(B $B!&(Be2lpr $B$O!$D>@\%W%j%s%?$X=PNO$7$^$9!%(B $B!&(Be2ps -h $B$G0z?t$N%X%k%W$,=P$^$9!%e$NCM$OL5;k$5$l$^$9!%(B Courier$B%U%)%s%H$O!$9b$5$KBP$7$F$b$H$b$H(B 0.6$BG\$NI}$G$"$k$?$a!$(B $B%"%9%-!<%U%)%s%H$N%G%U%)%k%HCM$,(B 0.6 $B$K$J$C$F$$$^$9!%(B $B4A;z%U%)%s%H$O!$I}$b9b$5$bF1$8Bg$-$5$G$9$,!$DL>o$N0u:~$G$O(B Courier$B%U%)%s%H$K9g$o$;$F(B 1.2$BG\$NI}$K$7$F0u:~$7$F$$$^$9!%(B $B$=$N$?$a!$%G%U%)%k%HCM$,(B 1.2 $B$K$J$C$F$$$^$9!%(B $BNc(B: -afw 0.3 $B%"%9%-!<%U%)%s%H$,DL>o$NH>J,$NI}$G0u:~$5$l$^$9(B -afw 1.2 $B%"%9%-!<%U%)%s%H$,DL>o$N(B2$BG\$NI}$G0u:~$5$l$^$9(B -afh 0.5 $B%"%9%-!<%U%)%s%H$,DL>o$NH>J,$N9b$5$G0u:~$5$l$^$9(B -afh 1.2 $B%"%9%-!<%U%)%s%H$ODL>o$HF1$89b$5$G0u:~$5$l$^$9(B -kfw 1.0 $B4A;z%U%)%s%H$,7d4V$J$/L)$K0u:~$5$l$^$9(B -kfw 0.5 $B4A;z%U%)%s%H$,DL>o$NH>J,$NI}$G0u:~$5$l$^$9(B -kfw 2.0 $B4A;z%U%)%s%H$,7d4V$,DL>o$h$j$b9-$/0u:~$5$l$^$9(B -kfh 0.5 $B4A;z%U%)%s%H$,DL>o$NH>J,$N9b$5$G0u:~$5$l$^$9(B -kfh 1.2 $B4A;z%U%)%s%H$ODL>o$HF1$89b$5$G0u:~$5$l$^$9(B $B!&(B-ohp OHP$B$K0u:~$9$k$h$&$K!$%U%)%s%H$rBg$-$/!J(B25.0$B!K$7$F!$$X%C%@$r0u:~(B $B$7$J$$$h$&$K$7$^$9!%(B $B!&(B-date $B%Z!<%8:8>e$K0u:~$5$l$kF|IU$NJ8;zNs$r;XDj$7$^$9!%(B $BF|K\8l$b;XDj$G$-$^$9!%(B $B!&(B-head $B%Z!<%8Cf1{>e$K0u:~$5$l$k%U%!%$%kL>$NJ8;zNs$r;XDj$7$^$9!%(B $BF|K\8l$b;XDj$G$-$^$9!%(B $B!&(B-page $B%Z!<%81&>e$K0u:~$5$l$k%Z!<%8$NJ8;zNs$r;XDj$7$^$9!%(B $B!V;XDj$7$?J8;z!\%Z!<%8?t!W$N$h$&$K0u:~$5$l$^$9!%(B $BF|K\8l$b;XDj$G$-$^$9!%(B $B!{JQ99E@(B $B!&(Bversion 4.34 $B%X%C%@$NJ8;zNs;XDj$G!$F|K\8l$r;XDj$G$-$k$h$&$KJQ99(B LANG$B4D6-JQ?t$b$m$b$m$N=$@5(B $B!&(Bversion 4.29 PowerPC arm s390 $B$N(B char architecture $B0MB8$NLdBj$r=$@5(B SJIS$B$K4X$9$k%P%0$r=$@5(B $B2#8~$-$K=PNO$9$k:]$N8~$-$rH?BP8~$-$KJQ99(B $B$=$NB>$b$m$b$m$N=$@5(B $B!&(Bversion 4.28 $B%"%9%-!<%U%)%s%H$N;XDj$K4X$9$k%P%0$r=$@5(B $B!&(Bversion 4.27 $B%X%C%@$N%U%)%s%H$,$*$+$7$+$C$?$N$r=$@5(B $B!&(Bversion 4.26 2000$BG/LdBj$X$NBP1~$,>/$74E$+$C$?$N$G=$@5(B $B%=!<%9$r>/$7@vN}(B $B2~9TN($rJQ992DG=$K(B $B!&(Bversion 4.25 $B%X%k%WI=<($H4D6-I=<(Cf$N%U%)%s%HI=<(%_%9$r=$@5(B ps-font.c$BCf$N%U%)%s%H%5%$%:$N5-=R%_%9$r=$@5(B $B!&(Bversion 4.24 $B!VCx:n8"Ey!W$N5-=R$r=$@5(B -box$B$G(BA4$B0J30$N;f$KBP1~$G$-$F$$$J$+$C$?%P%0$r=$@5(B $B!&(Bversion 4.23 $BA4BN$K!JFC$K(Bps-font.c$B!K7ZNL2=(B $B!&(Bversion 4.22 a2ps$B$N$h$&$KOH$r=PNO$9$k$3$H$r2DG=$K(B $B!&(Bversion 4.21 2000$BG/LdBj$,H/3P$7$?$N$GBP1~(B(define$B$K$h$jBP=h(B) $B!&(Bversion 4.20 $B1Q8lHG$N%X%k%WI=<($J$I$r:n@.(B EUC$B0u:~$H(BJIS$B0u:~$r0z?t$G@_Dj2DG=$K(B $B0u:~$NKg?t$r(Bstderr$B$K=PNO(B $B!&(Bversion 4.11 Tektronix$B%W%j%s%?$NIt?t;XDj0u:~$HN>LL0u:~$KBP1~(B(-DTEKTRO) $B!&(Bversion 4.1 EUC$B%U%)%s%H$r;}$C$F$$$J$$%W%j%s%?$KBP1~(B(-DJIS_PS) $B!{Cx:n8"Ey(B 'e2ps'$B$NCx:n8"$O!$(BGPL$B$K=>$$$^$9!%(B $B!{O"Mm@h(B(2002$BG/(B8$B7n8=:_(B) e2ps$B$NA4It$^$?$O0lIt$r;HMQ$9$k>l9g$K$O!$2<5-$"$F$KO"Mm$7$F2<$5$k$h$&(B $B4uK>$7$^$9!%(B n-shiraki@mosk.tytlabs.co.jp shiraki@mx9.freecom.ne.jp 'wt', 'White Tools'$B$O!$;d$N:n$k%D!<%k$N>]D'$G$9!%(B e2ps-4.34/wtkf.c0100644000175000017500000001617407427523762012422 0ustar kohdakohda/*============================================================================= wtkf.c by Nobuyuki SHIRAKI Last change : Tue 5 February 2002 0:38:16 =============================================================================*/ #include "wtkf.h" unsigned char *wtkf_setstring(unsigned char *); /*----------------------------------------------------------------------------- KANJI code Functions -----------------------------------------------------------------------------*/ /* Automatic detection of KANJI code */ int checkkanjicode(unsigned char *data) { int euc, jis, sjis; unsigned long int i, length; euc = jis = sjis = 1; /* NULL data check */ if ( data == NULL || *data == '\0' ) return -1; length = strlen(data); /* Check KANJI Code */ for ( i = 0 ; i < length ; i++ ) { /* Check JIS Code */ if ( *(data+i) == WT_JP_CODE_ESC && ( ( i + 2 < length && *(data+i+1) == '$' && ( *(data+i+2) == '@' || *(data+i+2) == 'B' || *(data+i+2) == 'D' ) ) || ( i + 3 < length && *(data+i+1) == '$' && *(data+i+2) == '(' && *(data+i+3) == 'D' ) || ( i + 5 < length && *(data+i+1) == '$' && *(data+i+2) == '@' && *(data+i+3) == WT_JP_CODE_ESC && *(data+i+4) == '$' && *(data+i+5) == 'B' ) || ( i + 2 < length && *(data+i+1) == '(' && ( *(data+i+2) == 'J' || *(data+i+2) == 'H' || *(data+i+2) == 'B' || *(data+i+2) == 'I' ) ) ) ) { jis = 1; euc = sjis = 0; break; } /* Not JIS Code */ if ( *(data+i) >= (unsigned char)0x80 ) { jis = 0; } if ( *(data+i) >= (unsigned char)0x81 && *(data+i) <= (unsigned char)0x9f && *(data+i) != (unsigned char)0x8e && *(data+i) != (unsigned char)0x8f ) { /* SJIS Code */ sjis = 1; jis = euc = 0; break; } } if ( jis + euc + sjis != 1 ) { euc = 1; sjis = jis = 0; } if ( jis ) { return 1; } else if ( sjis ) { return 2; } else { return 0; } } /* Change any codes to EUC code */ unsigned char *change2euc(unsigned char *data) { int code; unsigned char *ret = NULL; unsigned long int length; /* NULL data check */ if ( data == NULL || *data == '\0' ) return NULL; /* Check KANJI code */ code = checkkanjicode(data); /* Calculate string length */ length = strlen(data); /* Change KANJI code */ switch ( code ) { default: case 0: /* from EUC code (not change) */ ret = wtkf_setstring(data); break; case 1: /* from JIS code */ ret = jis2euc(data); break; case 2: /* from SJIS code */ ret = sjis2euc(data); break; } return ret; } /* Change JIS code to EUC code */ unsigned char *jis2euc(unsigned char *data) { int mode; unsigned long int i, j; unsigned long int length, size; unsigned char *ret, *tmp; /* Temporary area */ size = WT_JP_CODE_STRMAX; if ( ( tmp = (unsigned char *)malloc(sizeof(unsigned char)*size) ) == NULL ) { return NULL; } length = strlen(data); j = mode = 0; for ( i = 0 ; i < length ; i++ ) { if ( *(data+i) == WT_JP_CODE_ESC ) { if ( *(data+i+1) == '(' && *(data+i+2) == 'B' ) mode = 0; if ( *(data+i+1) == '(' && *(data+i+2) == 'J' ) mode = 1; if ( *(data+i+1) == '(' && *(data+i+2) == 'H' ) mode = 1; if ( *(data+i+1) == '(' && *(data+i+2) == 'I' ) mode = 2; if ( *(data+i+1) == '$' && *(data+i+2) == '@' ) mode = 3; /* JIS1978 */ if ( *(data+i+1) == '$' && *(data+i+2) == 'B' ) mode = 3; /* JIS1983 */ if ( *(data+i+1) == '$' && *(data+i+2) == 'D' ) mode = 4; i += 2; continue; } else { switch ( mode ) { case 0: /* ASCII */ *(tmp+j) = *(data+i); j++; break; case 1: /* JIS Roman */ *(tmp+j) = *(data+i); j++; break; case 2: /* Katakana */ *(tmp+j) = (unsigned char)0x8e; j++; *(tmp+j) = *(data+i) | 128; j++; break; case 3: /* Kanji */ *(tmp+j) = *(data+i) | 128; i++; j++; *(tmp+j) = *(data+i) | 128; j++; break; case 4: /* Sub Kanji */ *(tmp+j) = (unsigned char)0x8f; j++; *(tmp+j) = *(data+i) | 128; i++; j++; *(tmp+j) = *(data+i) | 128; j++; break; } } if ( j + 3 >= size ) { size += WT_JP_CODE_STRMIN; if ( ( tmp = (unsigned char *)realloc(tmp, sizeof(unsigned char)*size) ) == NULL ) { return NULL; } } } *(tmp+j) = '\0'; ret = wtkf_setstring(tmp); free(tmp); return ret; } /* Change SJIS code to EUC code */ unsigned char *sjis2euc(unsigned char *data) { int mode; unsigned long int i, j; unsigned long int length, size; unsigned char *ret, *tmp; /* Temporary area */ size = WT_JP_CODE_STRMAX; if ( ( tmp = (unsigned char *)malloc(sizeof(unsigned char)*size) ) == NULL ) { return NULL; } length = strlen(data); j = mode = 0; for ( i = 0 ; i < length ; i++ ) { if ( ( *(data+i) & 0x80 ) == 0x00 ) mode = 0; if ( *(data+i) >= (unsigned char)0xa1 && *(data+i) <= (unsigned char)0xdf ) mode = 1; if ( *(data+i) >= (unsigned char)0x81 && *(data+i) <= (unsigned char)0x9f ) mode = 2; if ( *(data+i) >= (unsigned char)0xe0 && *(data+i) <= (unsigned char)0xef ) mode = 3; switch ( mode ) { case 0: /* ASCII */ *(tmp+j) = *(data+i); j++; break; case 1: /* Katakana */ *(tmp+j) = (unsigned char)0x8e; j++; *(tmp+j) = *(data+i); j++; break; case 2: /* Kanji 1 */ if ( *(data+i+1) <= (unsigned char)0x9e ) { *(tmp+j) = 0x80 | ((( *(data+i) - (unsigned char)0x81 ) * 2 ) + (unsigned char)0x21 ); i++; j++; if ( *(data+i) <= (unsigned char)0x7e ) { *(tmp+j) = *(data+i) + 0x61; j++; } else { *(tmp+j) = *(data+i) + 0x60; j++; } } else { *(tmp+j) = 0x80 | ((( *(data+i) - (unsigned char)0x81 ) * 2 ) + (unsigned char)0x22 ); i++; j++; *(tmp+j) = *(data+i) + 0x02; j++; } break; case 3: /* Kanji 2 */ if ( *(data+i+1) <= (unsigned char)0x9e ) { *(tmp+j) = 0x80 | ((( *(data+i) - (unsigned char)0xe0 ) * 2 ) + (unsigned char)0xdf ); i++; j++; if ( *(data+i) <= (unsigned char)0x7e ) { *(tmp+j) = *(data+i) + 0x61; j++; } else { *(tmp+j) = *(data+i) + 0x60; j++; } } else { *(tmp+j) = 0x80 | ((( *(data+i) - (unsigned char)0xe0 ) * 2 ) + (unsigned char)0xe0 ); i++; j++; *(tmp+j) = *(data+i) + 0x02; j++; } break; } if ( j + 2 >= size ) { size += WT_JP_CODE_STRMIN; if ( ( tmp = (unsigned char *)realloc(tmp, sizeof(unsigned char)*size) ) == NULL ) { return NULL; } } } *(tmp+j) = '\0'; ret = wtkf_setstring(tmp); free(tmp); return ret; } /* Keep string area */ unsigned char *wtkf_setstring(unsigned char *string) { unsigned char *ret; unsigned long int length; if ( string == NULL || *string == '\0' ) return NULL; length = strlen(string) + 1; if ( ( ret = (unsigned char *)malloc(sizeof(unsigned char)*length) ) == NULL ) { return NULL; } strcpy(ret, string); return ret; } /*============================================================================= end =============================================================================*/ e2ps-4.34/wtkf.h0100644000175000017500000000200607427523762012414 0ustar kohdakohda/*============================================================================= wtkf.h by Nobuyuki SHIRAKI Last change : Tue 5 February 2002 0:38:12 =============================================================================*/ /*----------------------------------------------------------------------------- KANJI code Filter -----------------------------------------------------------------------------*/ #ifndef WTKF_H #define WTKF_H /* Includes */ #include #include /* Defines */ #define WT_JP_CODE_ESC (0x1b) #define WT_JP_CODE_STRMAX (1024) #define WT_JP_CODE_STRMIN (256) /* Functions */ extern int checkkanjicode(unsigned char *); extern unsigned char *change2euc(unsigned char *); extern unsigned char *jis2euc(unsigned char *); extern unsigned char *sjis2euc(unsigned char *); #endif /* WTKF_H */ /*============================================================================= end =============================================================================*/