我想知道如何得到一个TTF字体文件的字体名(50分)

  • 主题发起人 主题发起人 starpc
  • 开始时间 开始时间
S

starpc

Unregistered / Unconfirmed
GUEST, unregistred user!
我用AddFontResource载入了ttf后,怎么知道其中的字体名
如我载入simsun.ttf,就应该能得到"宋体"这个字体名.
 
从文件名取得字体名称函数
function GetFontNameFromFotFile(const ttf: string): string;
var
FHd: integer;
FotFile: string;
FontName: string;
ch:char;
begin
FontName:='';
try
FotFile := ChangeFileExt(ttf, '.fot');
CreateScalableFontResource(0, PChar(FotFile), PChar(ttf), nil);
if fileexists(FotFile) then
begin
try
FHd := FileOpen(FotFile,fmShareExclusive OR fmOpenRead);
if FHd >0 then
begin
if FileSeek(FHd, 1270, 0)=-1 then
ShowMessage('Error: FileSeek operation with file'+FotFile)
else
begin
FileRead(FHd,ch,1);
while ch<>#0 do
begin
FileRead(FHd,ch,1);
end;
FileRead(FHd,ch,1);
while ch<>#0 do
begin
FontName:=FontName+ch;
FileRead(FHd,ch,1);
end;
end;
end
else
begin
ShowMessage('Error: File '+FotFile+' not opened');
end;
finally
if FHd>0 then FileClose(FHd);
end;
end
else
ShowMessage('FOT-file not created');
finally
if FileExists(FotFile) then DeleteFile(FotFile);
end;
Result := FontName;
end;
 

Similar threads

后退
顶部