1
// $Id: xtndfont.c 11289 2010-10-29 20:44:17Z airwin $
5
// Utility to generate extended font set.
10
extern short int *hersh[];
11
extern short int *findex[];
12
extern short int *buffer[];
17
short j, k, ib, nindx, nchars, nleng, htab, zero;
23
hrshlst = (short *) malloc( 4 * 176 * sizeof ( short ) );
26
for ( j = 0; j < 4; j++ )
27
for ( k = 0; k < 176; k++ )
28
hrshlst[ib++] = *( hersh[j] + k );
30
pdfs = pdf_fopen( PL_XFONT, "wb+" );
33
printf( "Error opening extended font file.\n" );
39
pdf_wr_2bytes( pdfs, htab );
40
pdf_wr_2nbytes( pdfs, (U_SHORT *) hrshlst, 4 * 176 );
45
fpos = ftell( pdfs->file );
46
pdf_wr_2bytes( pdfs, nindx );
47
for ( j = 0; j < 30; j++ )
49
for ( k = 0; k < 100; k++ )
51
ib = *( findex[j] + k );
54
pdf_wr_2bytes( pdfs, zero );
59
pdf_wr_2bytes( pdfs, nleng );
63
ix = *( buffer[ib / 100] + ib % 100 ) / 128 - 64;
64
iy = *( buffer[ib / 100] + ib % 100 ) % 128 - 64;
71
if ( ix == 64 && iy == 64 )
77
fseek( pdfs->file, fpos, 0 );
78
pdf_wr_2bytes( pdfs, nindx );
80
fseek( pdfs->file, 0, 2 );
81
fpos = ftell( pdfs->file );
84
pdf_wr_2bytes( pdfs, nleng );
85
for ( j = 0; j < 30; j++ )
87
for ( k = 0; k < 100; k++ )
89
ib = *( findex[j] + k );
94
ix = *( buffer[ib / 100] + ib % 100 ) / 128 - 64;
95
iy = *( buffer[ib / 100] + ib % 100 ) % 128 - 64;
101
fputc( ix, pdfs->file );
102
fputc( iy, pdfs->file );
104
if ( ix == 64 && iy == 64 )
112
fseek( pdfs->file, fpos, 0 );
113
pdf_wr_2bytes( pdfs, nleng );
116
printf( "There are %d characters in font set.\n", nchars - 1 );