首页 / 浏览问题 / 组件GIS / 问题详情
C# iobject 逐代码加载TrueType文件
3EXP 2022年02月05日

在supermap程序开发帮助文档中找不到System.Drawing.Font可以赋值的类,请问是被封装了还是我没找到呢?

1个回答

您好,System库不是SuperMap iobject的库,是c#原生的库哈,希望可以帮助到您。
10,588EXP 2022年02月07日
那,请问iobject中有无可以存储Font的接口呢?
最好是功能类似于ArcEngine中的ICharacterMarkerSymbol?
你这边具体是想实现什么效果啊?

我想使用iobject打开存在计算机中的TrueType文件,不想使用

 // 打开点符号库管理器
 SymbolDialog.ShowDialog(resources,geoStyle, SymbolType.Marker);

这种方式,想要具体的,一步一步的

TrueType是电脑的字体文件,我们iobject.net底层提供了字体直接转点符号的功能了,正常使用点符号管理器就可以,如果您想要对TrueType字体进行其他操作那您需要寻找读写TrueType的功能的库哈。
使用TrueType字体符号的话,导入后在点符号库中都是有id的,可以直接取到。
我看了一下,加载TrueType字体暂时只有读取字体文件所在地址这一种方法,而不能精确到一个个读取,当然也可以把整个.ttf读取出来,然后自己遍历获取,但是该用哪个接口来存储信息呢??
对于TrueType本质上是字体,字体的加载是依赖于本计算机已经安装好了的字体,所以读取来说字体地址的路径本身就是精准的,对于iobject组件来说符号的导入要不使用我们内嵌封装好符号管理器,要不就用SymbolMarker自行构建符号后加入到符号库里去,SymbolMarker构建是有多种接口的,具体用那种构建取决于您自己选择。
符号的操作的话,不论你用哪种方式导入加入到符号库里的符号,即使原文件是TrueType符号的在符号库里都是可以用id取用成 Symbol 的哈。
...