this is my code iam using to create VTDB record with font. I am using some procedures not defined, but you can imagine what they do.

Code:
procedure SaveFontExtraData(PCount,StChar,EnChar:Integer;Widths,Heights:Array of Integer;out Data:Pointer;out DataSize:Integer);
var
  Write:Pointer;
  I:Integer;
begin
  DataSize:=(3+4+(PCount)*2)*sizeof(Integer);
  GetMem(Data,DataSize);
  Write:=Data;
  AddInt(Write,PCount);
  AddInt(Write,StChar);
  AddInt(Write,EnChar);
  // skip 16 reserved bytes
  for i:=0 to 3 do
    AddInt(Write,0);
  for I:= 0 to PCount - 1 do
    begin
    AddInt(Write, Widths[I]);
    AddInt(Write, Heights[I]);
    end;
end;

procedure CreateVTDFont(stchar,endchar:Integer;Widths,Heights:Array of Integer;Img:TAGFImage;out Data:Pointer;out DataSize:Integer);
var
  Write,wdata,idata:Pointer;
  wdatasize,idatasize:Integer;
begin
  SaveFontExtraData(endchar-stchar,stchar,endchar,widths,heights,wdata,Wdatasize);
  CheckError(Img.GetAGFData(iData,iDataSize));
  DataSize:=IDataSize+WDataSize+4;
  getmem(Data,DataSize);
  Write:=Data;
  AddInt(Write,SIG_FNT2);
  move(wData^,Write^,wDataSize);
  inc(integer(Write),wDataSize);
  move(iData^,Write^,iDataSize);
end;
good luck