Synchronet v3.20d-Win32 (install) has been released (Mar-2025).

You can donate to the Synchronet project using PayPal.

TheDraw Fonts (TDF)

TheDraw fonts or tdf for short, are packages of graphical fonts created for use with TheDraw, an ANSI art program for MSDOS.

Synchronet can natively use these font packages in menus and other files without the need for an external program.

The .tdf files may contain single or multiple fonts. They can be accessed by zero-based index number. If a font with a given index doesn't exist then the first font found will be used. Up to 34 fonts can exist in a single .tdf file but, in reality, that's not usually the case.

tdfiglet.js

There is a utility script included with Synchronet for using TheDraw Font files to generate ornamental text output (so-called “figlets”), e.g. executable using JSexec or the exec sysop command.

usage: tdfiglet [options] input

    -f [font] Specify font file used.
    -j l|r|c  Justify left, right, or center. Default is left.
    -w n      Set screen width. Default is auto-detect or 80.
    -m n      Set margin/offset (for left or right justification).
    -a        Color sequences: ANSI. Default is Synchronet Ctrl-A.
    -u        Encode charaters as UTF-8. Default is CP437.
    -x n      Index to font within file. Default is 0.
    -i        Print font details.
    -r        Use random font.
    -h        Print usage.

tdfonts_lib.js

There is a JavaScript library included with Synchronet for using TheDraw Font files.

Example

Please keep in mind the interface may to the library may change since this is a new feature.

// Load the tdf library
var tdf = load({}, "tdfonts_lib.js");

// Set various options (explained below)
tdf.opt = {
    justify: tdf.LEFT_JUSTIFY,
    width: tdf.DEFAULT_WIDTH,
    ansi: false, // Default: Synchronet Ctrl-A attribute codes
    utf8: false, // Default: CP437 character set/encoding
    random: false,
    info: false,
    index: 3
};

// Choose the font file
// These are installed in ctrl/tdfonts
var fontfile = "voidx.tdf";

// You can read the font-encoded output into a variable to
// be manipulated or displayed later.
var output = tdf.output("TEST", fontfile);
writeln(output);

Options

You can pass several options to tdfonts using the opt object.

Property Description Default
justify Determine the position of the text on the screen. You can use LEFT_JUSTIFY RIGHT_JUSTIFY or CENTER_JUSTIFY LEFT_JUSTIFY
margin Offset (in columns) from edge of terminal. For use with LEFT or RIGHT justification. 0
width Specify the screen width. For use with CENTER or RIGHT justification. auto-detect or 80
ansi Determines if output should use ANSI terminal escape sequences false (use Synchronet Ctrl-A attribute sequences)
utf8 Whether output encoding should use UTF-8 false (use CP437 character set/encoding)
info Print information about the font such as its name and available characters false
random Use a random font. A fontname need not be specified when using the random option. false
index 0 based index of the font within the font file random or 0

See Also