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

时间:2016-01-07 19:29:43

标签: winapi unicode fonts character-encoding

我正在研究传统的Delphi 6 / Nevrona Rave 4应用程序。我有一些使用Code128A.ttf字体的报告。他们打印到打印机很好。但是,我正在使用TReportSystem.RenderObject,TRPRenderPDF更新程序以生成PDF输出。除Code128A字体外,PDF格式正确生成,显示为ANSI。

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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