You can actually render fonts on a bitmap basis as non-fixedwidthfonts (so to say analog to TTFs). The trick is, to extract from the font bitmap each letter as single bitmap, whereas you clipped the left and right pixels which cover nothing, until the letter itself comes.
I did this before and its easy: I create an alphachannel for the font and analyzed tha alpha value. Example:
Let us say, this is a semicolon, the o's are solid and the #'s are transparent.
Code:
###o###
#######
###o###
##o####
When I want a minimum column of 1px before and after the last row in which one solid pixel is placed, I crop it like this:
Code:
##o#
####
##o#
#o##
Now, if you take a string and you stitch each (cropped) letter together your returning bitmap covers a string, rendered with no blank spaces and like a TTF - but basing on a bmap!