I really can't figure out what is going on. Even when we have 2 customers now with the problem, this is not a common thing. In fact I could only find another email in all our email history about a similar issue, and the email was from Kipper Gerald, the same customer that created this issue here. We have tens of thousands of registered users and if this was something common, I would expect to have heard more about it.
But yes, you are having an issue, and somehow we aren't reading the fonts right (or not the right fonts). Excel can embed them but that doesn't mean much, since latest Excels tend to come with their own fonts and don't use those in c:\Windows\Fonts. But the part I can't understand at all is that if I use the fonts you are having issues here, I don't see any message.
So ok, let's try a new test. This code will create some .font files for all the font files it is reading, please zip them and send them. Also let me know which FontFlags you get.
program Project2;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
FlexCel.VCLSupport,
_PdfTrueType.TPdfTrueType,
_PdfTrueType.TFontDataReader,
_PdfTrueType.TChunkByteArray,
_UIClasses.TUIFont,
_PdfFontFactory.PdfFontFactory,
_UIClasses.TUIFontStyle,
Classes,
_PdfConsts.TPdfFontFolderNotFoundAction;
procedure DumpFont(const Name: string; const fs: TUIFontStyleSet);
var
pdf: TPdfTrueType;
FontData: TChunkByteArray;
begin
FontData := PdfFontFactory.GetFontData(TUIFont.CreateNew(Name, 12, fs), 'c:\windows\Fonts', TPdfFontFolderNotFoundAction.DefaultBehavior);
pdf := TPdfTrueType.Create(TFontDataReader.Create(FontData), 'test', true);
var FontBytes := TFileStream.Create('..\..\' + pdf.PostcriptName + IntToStr(byte(fs)) + '.font', fmCreate);
try
FontData.WriteTo(FontBytes, 0, FontData.Length);
finally
FontBytes.Free;
end;
WriteLn('Name: ', pdf.PostcriptName);
WriteLn('EmbedForbidden: ', pdf.EmbedForbidden);
WriteLn('FontFlags: ', pdf.FontFlags);
WriteLn;
end;
begin
DumpFont('Calibri', []);
DumpFont('Calibri', [TUIFontStyle.fsBold]);
DumpFont('Calibri', [TUIFontStyle.fsItalic]);
DumpFont('Calibri', [TUIFontStyle.fsBold, TUIFontStyle.fsItalic]);
DumpFont('Calibri Light', []);
DumpFont('Calibri Light', [TUIFontStyle.fsBold]);
DumpFont('Calibri Light', [TUIFontStyle.fsItalic]);
DumpFont('Calibri Light', [TUIFontStyle.fsBold, TUIFontStyle.fsItalic]);
readln;
end.