examples
-subdirectory of the distribution as t1example1.c
.
This program must be compiled to object format and then linked with
the library libt1.a
or libt1.so
, respectively. On most systems
the commandline
cc -o t1example1 -I ../lib t1example1.c -L../lib -lt1 -lmshould do it. For convenience reasons a
Makefile.in
is included in the
examples directory and the stuff is built automatically.
At runtime, a
well defined setup must be found, i.e., a configuration file with path
definitions and a font database file. These also are located in the
examples
subdirectory.
#include <stdio.h> #include <stdlib.h> #include <t1lib.h> /* All needed declarations */ int main( void) { GLYPH *glyph; int i; /* Set our environment to an existent config file directory */ putenv( "T1LIB_CONFIG=./t1lib.config"); /* Pad bitmaps to 16 bits, the default being 8 bits */ T1_SetBitmapPad( 16); /* Initialize t1lib and return if error occurs. No logfile will be generated */ if ((T1_InitLib(NO_LOGFILE)==NULL)){ fprintf(stderr, "Initialization of t1lib failed\n"); return(-1); } /* For every font in the database, generate a glyph for the string "Test" at 25 bp. Use Kerning. Then dump an ASCII representation of the glyph to stdout */ for( i=0; i<T1_Get_no_fonts(); i++){ glyph=T1_SetString( i, "Test", 0, 0, T1_KERNING, 25.0, NULL); T1_DumpGlyph( glyph); } /* Close library and free all data */ T1_CloseLib(); return( 0); }
We assume that in the current directory there is a file
FontDataBase
which declares two fonts, Souvenir Light and a bold
italic variant and further, that these fonts and their
AFM files can be found using the paths from the configuration
file.
If the resulting program is run, it produces some output like the following on
stdout
:
Dataformat: T1_bit=0, T1_byte=1, T1_wordsize=16, T1_pad=16 GlyphInfo: h=18, w=44, paddedW=48 .XXXXXXXXXXXXXX. ................ ................ XXX....XX....XXX ................ ................ X......XX......X ................ ........X....... .......XX....... ................ ........X....... .......XX....... ................ .......XX....... .......XX....... ................ .......XX....... .......XX....... ...XXXX.......XX XXX..XXXXXXX.... .......XX....... .XX...XX.....XX. ..XX...XX....... .......XX....... XX.....XX...XX.. ...X...XX....... .......XX....... XX.....XX...XX.. .......XX....... .......XX......X X......XX...XXX. .......XX....... .......XX......X X....XXX.....XXX XXX....XX....... .......XX......X XXXXXXX.......XX XXXX...XX....... .......XX......X XX.............. ..XXX..XX....... .......XX......X X............... ...XX..XX....... .......XX....... XX......XX..X... ...XX..XX....... .......XX....... XXX....X....XX.. ..XX...XX....... .....XXXXXX..... ..XXXXX.......XX XXX....XXXXX.... Dataformat: T1_bit=0, T1_byte=1, T1_wordsize=16, T1_pad=16 GlyphInfo: h=18, w=51, paddedW=64 .XXXXXXXXXXXXXXX X............... ................ ................ .XXXXXXXXXXXXXXX X............... ................ ................ .XX....XXXX....X X............... ...............X X............... .X.....XXXX..... X............... ...............X X............... ......XXXXX..... ................ ..............XX X............... ......XXXXX..... ................ ..............XX X............... ......XXXX...... ....XXXXXX...... .XXXXX.....XXXXX XXX............. ......XXXX...... ..XXXXXXXXXX...X XXXXXXXX...XXXXX XXX............. ......XXXX...... .XXXX...XXXX..XX XX...XXX....XXXX ................ ......XXXX...... XXXX....XXXX..XX XX....XX....XXXX ................ .....XXXXX...... XXXX...XXXX...XX XXXX........XXXX ................ .....XXXXX.....X XXX..XXXXX.....X XXXXXX......XXXX ................ .....XXXX......X XXXXXXXX........ XXXXXXXX....XXXX ................ .....XXXX......X XXX............. ..XXXXXX...XXXX. ................ .....XXXX......X XXX.......X..XX. ....XXXX...XXXX. ................ .....XXXX....... XXXX....XXX.XXXX ....XXXX...XXXXX XX.............. ....XXXXXX...... XXXXXXXXXX...XXX XXXXXXX....XXXXX XX.............. ...XXXXXXX...... ..XXXXXX.......X XXXXX......XXXX. ................