"Unicode"字符集的 Win32 API LogFont.lfCharSet 值是什么?



我正在开发一个遗留的Delphi6/Nevrona Rave 4应用程序。我有一些使用Code128A.ttf字体的报告。他们在打印机上打印得很好。但是,我正在更新程序,以便使用TReportSystem.RenderObject、TRPRenderPDF生成PDF输出。PDF是正确生成的,但Code128A字体除外,这些字体显示为ANSI。

我的问题是通用的Win32 LogFont,而不是Delphi或Nevrona Rave。Nevrona文档中的一条线索表明,TReportSystem.ReportPrinter.FontCharset需要设置为所使用字体的相应Win32 API LogFont.lfCharset字节。

当我使用Windows CharacterMap应用程序(在高级模式下)查看Code128A.ttf字体时,它会"告诉"我Code128A字体的字符集是"Unicode"。它不会显示相应的lfCharset字节值。

有人知道用于Unicode ttf字体的lfCharset字节值吗?

我希望在尝试所有预定义的字节之前得到一个答案,如果这些字节都不起作用,就尝试未定义的字节。

没有为Unicode定义lfCharset值。这将首先破坏指定字符集的目的。使用字体实际实现的任何字符集。看起来它的大多数条形码字形在大多数字符集中都可用(有些字符集的字形更少)。因此,如果必须设置字符集,请尝试将lfCharset设置为0(ANSI_CHARSET)或1(DEFAULT_CHARSET)。

最新更新