5.7.1.4. Использование Unicode и больших шрифтов (Big Fonts)

Источник здесь[перевод не проверен];[Переводчик: Вадим Семёнов]

    AutoCAD поддерживает стандарт кодировки символов Unicode. Шрифт Unicode может содержать 65 535 символов, с формами (shapes) для многих языков. Все контурные SHX шрифты AutoCAD которые поставляются с продуктом (с Autocad, прим переводчика) поддерживают шрифты Unicode.

    Текстовые файлы для некоторых алфавитов содержат тысячи не-ASCII символов. Для размещения такого текста, AutoCAD поддерживает специальный тип определения форм (shapes) известный как файл Больших шрифтов (Big Font). Вы можете устанавливать стили, используя оба [типа шрифтов. Примечание переводчика], как обычные, так и файлы Больших Шрифтов (Big Font). Устанавливайте обычные шрифты, используя свойство FileName. Устанавливайте Большие Шрифты (Big Fonts), используя свойство BigFontFileName.

Примечание Имена файлов шрифтов не могут содержать запятые.

    AutoCAD поддерживает задание альтернативного шрифта для использования, когда местоположение файла установленного шрифта не может быть определено. Используйте системную переменную FONTALT  и метод члена Приложения(Application) SetSystemVariable, для изменения используемого альтернативного шрифта.
 
Изменение файлов шрифта

    Следующий пример кода меняет свойства FileName и BigFontFileName. Вам необходимо изменить пути к файлам и названия файлов в этом примере, в соответствии с существующими  в вашей системе. 

Код VB.NET

   1:  Imports Autodesk.AutoCAD.Runtime
   2:  Imports Autodesk.AutoCAD.ApplicationServices
   3:  Imports Autodesk.AutoCAD.DatabaseServices
   4:   
   5:  <CommandMethod("ChangeFontFiles")> _
   6:  Public Sub ChangeFontFiles()
   7:    '' Устанавливаем текущий документ и базу данных
   8:    Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
   9:    Dim acCurDb As Database = acDoc.Database
  10:   
  11:    '' Запускаем транзакцию 
  12:    Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
  13:   
  14:        '' Открываем текущий текстовый стиль для записи
  15:        Dim acTextStyleTblRec As TextStyleTableRecord
  16:        acTextStyleTblRec = acTrans.GetObject(acCurDb.Textstyle, _
  17:                                              OpenMode.ForWrite)
  18:   
  19:        '' Меняем файлы шрифта используемые для Больших (Big) и Обычных     
  20:        '' (Regular)шрифтов
  21:        acTextStyleTblRec.BigFontFileName = "C:\AutoCAD\Fonts\bigfont.shx"
  22:        acTextStyleTblRec.FileName = "C:\AutoCAD\Fonts\italic.shx"
  23:   
  24:        ''Сохраняем изменения и очищаем транзакцию
  25:        acTrans.Commit()
  26:    End Using
  27:  End Sub

Код C#

   1:  using Autodesk.AutoCAD.Runtime;
   2:  using Autodesk.AutoCAD.ApplicationServices;
   3:  using Autodesk.AutoCAD.DatabaseServices;
   4:   
   5:  [CommandMethod("ChangeFontFiles")]
   6:  public static void ChangeFontFiles()
   7:  {
   8:    // Устанавливаем текущий документ и базу данных
   9:    Document acDoc = Application.DocumentManager.MdiActiveDocument;
  10:    Database acCurDb = acDoc.Database;
  11:   
  12:    // Запускаем транзакцию
  13:    using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
  14:    {
  15:        // Открываем текущий текстовый стиль для записи
  16:        TextStyleTableRecord acTextStyleTblRec;
  17:        acTextStyleTblRec = acTrans.GetObject(acCurDb.Textstyle,
  18:                                              OpenMode.ForWrite) as TextStyleTableRecord;
  19:   
  20:        // Меняем файлы шрифта используемые для Больших (Big) и Обычных
  21:        //(Regular)шрифтов
  22:        acTextStyleTblRec.BigFontFileName = "C:/AutoCAD/Fonts/bigfont.shx";
  23:        acTextStyleTblRec.FileName = "C:/AutoCAD/Fonts/italic.shx";
  24:   
  25:        // Сохраняем изменения и очищаем транзакцию
  26:        acTrans.Commit();
  27:    }
  28:  }

Код VBA/ActiveX

   1:  Sub ChangeFontFiles()
   2:      ThisDrawing.ActiveTextStyle.BigFontFile = _
   3:                    "C:/AutoCAD/Fonts/bigfont.shx"
   4:   
   5:      ThisDrawing.ActiveTextStyle.fontFile = _
   6:                    "C:/AutoCAD/Fonts/italic.shx"
   7:  End Sub

Comments