Но для того чтобы уведомить пользователя, что со шрифта нет, мне же нужно это проверить.Ну так проверь наличие файла в подкаталогах, указанных в Support File Search Path. "AutoCAD API" там и ищет. Можно и через реестр проверить: запись хранится в реестре, в ветке General твоего акадовского профиля, в параметре ACAD. Делаешь split по ';' и смотришь в порядке следования записей. Первая же найденная используется.
Как с помощью AutoCAD API проверить что шрифт не установлен?
2) Хорошим решением было бы по ходу работы AutoCAD загрузитьПовторюсь:
недостающий файл шрифта взяв его из заранее известного программе источника.
Возможно если ты переопределишь для DwgHost метод FindFile так, чтобы он мог возвращать путь к файлу шрифта, а не пустую строку, то это может помочь.
Пример DwgHost: http://adndevblog.typepad.com/autocad/2012/05/fentons-recommended-hostapplicationservices-implementation-for-realdwg-net.html
У меня как получается. Если я делаю через без DwgHost, то шрифт вообще не находится.А как он может найтись если он не знает пути к нему?
Может система пытается найти shx-шрифт в папке ..\Windows\font, а shx-шрифта в ней нет.
А как он может найтись если он не знает пути к нему?
Если функция GeometricExtents нуждается в файле шрифта,Не только для GeometricExtents. В любом случае если AutoCAD нужен файл (в том числе и шрифта или формы), путь к которому он не знает, то вызывается функция обратного вызова (callback) FindFile. Тоже самое будет и со сложными типами линий, у которых используется файл шрифта/формы.
то она просит вернуть полное имя файла его через функцию FindFile(...)
Что может быть случай, когда аргумент FileNameМожет.
функции FindFile вернет имя без расширения файла?