Closed maykon-t closed 3 years ago
sorry but it is very difficult to follow the pull requests on SynPdf - almost every time someone supply a patch, it somewhat works in his/her context, but it breaks something for other users
Thank you very much for the prompt reply.
Here is the code I used to test this.
The output was: MS Sans Serif 2 Microsoft Sans Serif 2 Courier New 1 Courier 1
This means that "(ALogFont.lfPitchAndFamily and 3) = FIXED_PITCH" would evaluate for the parameter AIsFixedWidth to
MS Sans Serif 2 => False Microsoft Sans Serif 2 => False Courier New 1 => True Courier 1 => True
This is correct.
@maykon-t can you test on your computer?
// JCL_DEBUG_EXPERT_GENERATEJDBG OFF
program TestFonts;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, Windows;
function EnumFontsProc(var LogFont: TLogFont; var TextMetric: TTextMetric;
FontType: Integer; Data: Pointer): Integer; stdcall;
begin
WriteLn(string(LogFont.lfFaceName), ' ', LogFont.lfPitchAndFamily and 3);
Result := 1;
end;
var
DC: HDC;
F: LOGFONTW;
begin
DC := GetDC(0);
try
FillChar(F, sizeof(F), 0);
F.lfCharset := DEFAULT_CHARSET;
EnumFontFamiliesEx(DC, F, @EnumFontsProc, 0, 0);
finally
ReleaseDC(0, DC);
end;
ReadLn;
end.
Hellooooooooo! Any news here?
I created an issue for this: https://github.com/synopse/SynPDF/issues/52
This reverts a change in commit: da8902dac344010eaf58340a2c149e63f96319ee Made on 29 May 2020
Pull request https://github.com/synopse/mORMot/pull/296 changed this line but at least for me it's returning exact the opposite it should, which leads to characters overlapping when using "MS Sans Serif" font.
Tested with "MS Sans Serif" and "Courier New" fonts before my modification, first was evaluated as fixed width (condition returns true) and second as proportional (condition returns false). Should be inverted results.