Embedding a font in delphi

ChuckO picture ChuckO · Jun 6, 2010 · Viewed 8.2k times · Source

I'm working on an app that requires a particular barcode true type font that is unlikely to be on the user's PC.

Can I somehow embed the font in the app, or do I need to use the installer to install the font?

Answer

blerontin picture blerontin · Jun 28, 2013

In my opinion the most easy way is to use AddFontMemResourceEx in case the font is embedded as a resource into the EXE. It allows loading the font directly from memory, no need to save the font to file.

Code Example:

function LoadResourceFont( const ResourceName : string ) : boolean;
var
   ResStream : tResourceStream;
   FontsCount : integer;
   hFont : tHandle;
begin
   ResStream := tResourceStream.Create(hInstance, ResourceName, RT_RCDATA);
   hFont := AddFontMemResourceEx(ResStream.Memory, ResStream.Size, nil, @FontsCount);
   result := (hFont <> 0);
   ResStream.Free();
end;