2

我正在从 Delphi 应用程序编写 DXF 文件并尝试理解文本样式。
我有一般工作的文本样式,但我很难在 DXF 参考文献中找到关于 1071 组代码如何工作的信息。
1071 Group Code 后跟一个 long 值,其中包含 truetype 字体的间距和系列、字符集以及斜体和粗体标志。我找不到任何有关如何创建此值的文档。我有使用 CAD 程序生成的示例 DXF 文件,在比较它们时,这个值会发生变化,但我无法理解这些差异。看起来这 4 个字节中的每一位都有特定的含义。将不胜感激任何帮助。谢谢。

4

2 回答 2

3

免责声明:这个答案是我对随机测试结果的解释。使用风险自负!

下面是从带有随机文本样式定义的 DXF 文件中获得的测试结果的屏幕截图:

在此处输入图像描述

因此,可以安全地假设:

  • 斜体样式有$01000000位设置,
  • 大胆的风格有$02000000位设置,
  • 值的第一个指定家族字符集。

然后剩下的挑战似乎是获得家庭字符集值。您可以尝试省略它,因为它是由字体名称和文件名定义的。但是,删除整个 1071 组的测试也会清除字体样式,尽管字体文件名也是如此定义的。

于 2013-11-21T22:44:10.580 回答
0

DXF 规范说组代码 1071 是“一个长值,其中包含一个 truetype 字体的间距和系列、字符集以及斜体和粗体标志”。正如 NGLN 所指出的,位掩码0x10000000x2000000分别标识斜体和粗体文本。

Pitch、family 和 charset 是Windows GDI LOGFONT 结构的属性;实际值在 WMF 规范中给出(pitchfamilycharset)。据我所知,最右边的四位代表音高,接下来的四位代表系列,接下来的八位代表字符集。

这是一个典型的 1071 值:

0000 0000 0000 0000 0000 0000 0010 0010
       BI           _charset_ fmly ptch

这种字体是非粗体、非斜体、ANSI 字符集(这些天几乎没有意义)、瑞士家族(即无衬线)和可变间距(即非等宽)。

至于编写 DXF 文件,AutoCAD 似乎很乐意接受音高、字符集和族全为零的 1071 值。

AutoCAD 文字样式不包含有关下划线和删除线的信息。

于 2018-01-01T04:30:13.167 回答