我正在从Delphi应用程序编写DXF文件并尝试理解文本样式
我的文字样式一般都在工作,但我很难在DXF参考文献中找到有关1071组代码如何工作的信息。
1071组代码后跟一个长值,其中包含truetype字体的音高和族,charset,斜体和粗体标志。
我找不到有关如何创建此值的任何文档。我已经获得了使用CAD程序生成的示例DXF文件,并将这些值的变化进行了比较,但我无法理解这些差异。看起来4个字节中的每个位都具有特定含义。
非常感谢任何帮助。感谢。
答案 0 :(得分:3)
免责声明:这个答案是我对随机测试结果的解释。使用风险自负!
这里是一个带有随机文本样式定义的DXF文件的测试结果的屏幕截图:
所以,假设:
应该是安全的$01000000
位,$02000000
位,然后,挑战似乎是获得家庭charset价值。您可以尝试省略它,因为它是由字体名称和文件名定义的。但是,删除整个1071组的测试也会清除字体样式,尽管字体文件名也是如此。
答案 1 :(得分:0)
DXF规范说组码1071是"一个长值,包含truetype字体的音高和族,charset,斜体和粗体标记"。正如NGLN指出的那样,位掩码0x1000000
和0x2000000
分别标识斜体和粗体文本。
Pitch,family和charset是Windows GDI LOGFONT struct的属性;实际值在WMF规范中给出(pitch,family,charset)。据我所知,最右边的四位代表音高,接下来的四位代表族,接下来的八位代表字符集。
这是一个典型的1071值:
0000 0000 0000 0000 0000 0000 0010 0010
BI _charset_ fmly ptch
这种字体是非粗体,非斜体,ANSI字符集(现在相当无意义),瑞士家族(即sans-serif)和可变间距(即不是等宽字体)。
至于编写DXF文件,AutoCAD似乎很乐意接受1071个值,其中pitch,charset和family都为零。
AutoCAD文本样式不包含有关下划线和删除线的信息。