I thought I'd make a font from the pictures in the Imagewriter manual, since I always liked that font, and it doesn't look too bad.

Code
chars = {
"        "..
"        "..
"        "..
"        "..
"        "..
"        "..
"        "..
"        "..
"        ",
"   x    "..
"   x    "..
"   x    "..
"   x    "..
"        "..
"        "..
"   x    "..
"        "..
"        ",
"  x x   "..
"  x x   "..
"  x x   "..
"        "..
"        "..
"        "..
"        "..
"        "..
"        ",
"  x  x  "..
"  x  x  "..
" xxxxxx "..
"  x  x  "..
" xxxxxx "..
"  x  x  "..
"  x  x  "..
"        "..
"        ",
...
"   x    "..
"  x x   "..
" x   x  "..
"x     x "..
"xxxxxxx "..
"x     x "..
"x     x "..
"        "..
"        ",
" xxxxx  "..
" x    x "..
" x    x "..
" xxxxx  "..
" x    x "..
" x    x "..
" xxxxx  "..
"        "..
"        ",
...
}

-- just a quick test to see if it works

rmargin=125
lmargin=5
xpos=lmargin*8
tmargin=5

function printchar(c)
  c = c & 0x7f
  if c==13 or c==10 then xpos=lmargin*8 ypos=ypos+12 return end
  if xpos > rmargin*8 then xpos=lmargin*8 ypos=ypos+12 end
  if c<32 then c=32 end
  for col=0,7 do
    headdots = 0
    for row=0,8 do
      dot = chars[c-32+1]:sub(1+row*8+col,1+row*8+col)
      if dot == " " then dot=0 else dot=1 end
      headdots = headdots | (dot << row)
    end
    renderhead(headdots)      
    print(col.."  "..headdots)
    xpos = xpos+1      
  end
end

function printstring(s) for i=1,s:len() do printchar(string.byte(s,i)) end end


[Linked Image from i.imgur.com]