How to convert a bitmap font (.FON) into a truetype font (.TTF)?

Name picture Name · Sep 20, 2010 · Viewed 65.2k times · Source

My program (win32, Delphi) needs to display special chars in some columns of a table. To do that I use a special font for those columns. I got the font from my client. It is a .FON font. It works good on the screen but I often get problems as soon as I want to use it to print something.

I would like to convert this .FON font into to truetype font (.TTF) to avoid the problems. I don't care if the font does not scale good. I should just looks exactly the same when used on the screen with the same size as the default size of the original font. Do someone know a way to do that?

(It don't necessary need a source code solution. The font won't change. It's enough if I find a tool to do it)

Edit: Ideal would be to get a truetype font where each pixel of the original font is converted into a vectorial black square (I tested by redrawing a few chars manually, it would works as I want).

Edit 2, solution used: Using FontForge + Autotrace and then making corrections manually I was able to get a vector font that follow the outline of the pixels of the bitmap font. This vector font scales somewhat better than the original font and solve my printing problems. See accepted post for details.

But I'm still interested if someone knows a fully automated solution.

Answer

Name picture Name · Sep 21, 2010

Use FontForge + Autotrace then make some corrections manually.

First integrate Autotrace in Fontforge, see Autotracing bitmaps in FontForge. Here is how I have done it, as I wasn't able to use the win32 version of FontForge:

  1. Download, unzip and start Portable Ubuntu Tres. It's a special linux version that works under Windows!
  2. Choose System->Administration->Add/Remove Applications, search for FontForge and install it (administrator password is 123456). I got FontForge version 20090622 installated.
  3. Download autotrace-0.31.1.tar.gz from http://autotrace.sourceforge.net/index.html#download and copy it in your home directory in Portable Ubuntu.
  4. In Portable Ubuntu choose Applications->Accessories->Terminal to compile and install autotrace:

    sudo bash  (password is 123456)
    gunzip autotrace-0.31.1.tar.gz
    tar xf autotrace-0.31.1.tar
    cd autotrace-0.31.1
    ./configure
    make
    make install
    

Then convert your font:

  1. Start FontForge in Portable Ubuntu and open the .FON font.
  2. Save your font as a .BDF font (Loading a .FON file as background didn't work for me so I had to convert the font first): File->Generate Fonts and choose BDF as format.
  3. Create a new font and import the BDF Font as background font: File->Import and don't forget select "As Background".
  4. Select all characters and start an autotrace while holding the shift key so that you can enter parameters for autotrace. I used following parameters, which improved the recognition of the outline of the pixels but I didn't found the perfect parameters:

    -corner-surround=1 -line-threshold=10
    
  5. Correct the chars manually using mostly the function "Add a curve point". Activating View->Show->Almost Horizontal/Vertical Lines makes the work much easier.
  6. Generate a truetype font: File->Generate Fonts and choose truetype as format.