首页  编辑  

判断TrueType字体

Tags: /超级猛料/Font.字体/   Date Created:

判断TrueType字体

function IsTrueTypeFont(FontName : string) : boolean;

const

PITCH_MASK: byte = $0F;

var

TxMetric: TTextMetric;

TempCanvas : TCanvas;

PitchTest : byte;

begin

TempCanvas := TCanvas.Create;

TempCanvas.Handle := CreateCompatibleDC(0));

TempCanvas.Font.Name := FontName;

GetTextMetrics(TempCanvas.Handle, TxMetric);

PitchTest := TxMetric.tmPitchAndFamily and PITCH_MASK;

Result := ((PitchTest and TMPF_TRUETYPE) <> 0));

TempCanvas.free;

end;

判断是否有TrueType字体

function IsTrueTypeAvailable : bool;

var

{$IFDEF WIN32}

rs : TRasterizerStatus;

{$ELSE}

rs : TRasterizer_Status;

{$ENDIF}

begin

result := false;

if not GetRasterizerCaps(rs, sizeof(rs)) then exit;

if rs.WFlags and TT_AVAILABLE <> TT_AVAILABLE then exit;

if rs.WFlags and TT_ENABLED <> TT_ENABLED then exit;

result := true;

end;