Настройка шрифтов для визуализации электронных таблиц

Возможные сценарии использования

API Aspose.Cells предоставляет возможность визуализации электронных таблиц в форматах изображений, а также преобразования их в форматы PDF и XPS. Для максимизации точности преобразования необходимо, чтобы используемые в электронных таблицах шрифты были доступны в системной папке шрифтов операционной системы. В случае отсутствия необходимых шрифтов API Aspose.Cells будет пытаться заменить необходимые шрифты имеющимися.

Выбор шрифтов

Ниже приведен процесс, который API Aspose.Cells следует за кулисами.

  1. API пытается найти шрифты на файловой системе, соответствующие точному имени шрифта, используемому в электронной таблице.
  2. Если API не может найти шрифты с точно таким же именем, он пытается использовать шрифт по умолчанию, указанный в свойстве DefaultStyle.Font книги.
  3. Если API не может найти шрифт, определенный в свойстве DefaultStyle.Font книги, он пытается использовать шрифт, указанный в свойствах PdfSaveOptions.DefaultFont или ImageOrPrintOptions.DefaultFont.
  4. Если API не может найти шрифт, определенный в свойствах PdfSaveOptions.DefaultFont или ImageOrPrintOptions.DefaultFont, он пытается использовать шрифт, указанный в свойстве FontConfigs.DefaultFontName.
  5. Если API не может найти шрифт, определенный в свойстве FontConfigs.DefaultFontName, он пытается выбрать наиболее подходящие шрифты из всех доступных шрифтов.
  6. Наконец, если API не может найти шрифты на файловой системе, он визуализирует электронную таблицу с использованием шрифта Arial.

Установка пользовательских каталогов шрифтов

API Aspose.Cells ищет каталог шрифтов операционной системы по умолчанию для необходимых шрифтов. В случае отсутствия необходимых шрифтов в каталоге шрифтов системы API выполняет поиск по пользовательским (заданным пользователем) каталогам. Класс FontConfigs предоставляет несколько способов установки пользовательских каталогов шрифтов, описанных ниже.

  1. FontConfigs.setFontFolder: Этот метод полезен, если нужно установить только одну папку.
  2. FontConfigs.setFontFolders: Этот метод полезен, когда шрифты находятся в нескольких папках, и пользователь хочет установить каждую папку отдельно, а не объединить все шрифты в одну папку.
  3. FontConfigs.setFontSources: Этот механизм полезен, когда пользователь хочет загружать шрифты из нескольких папок или одного файла шрифта или данных шрифта из массива байтов.

Механизм подстановки шрифтов

API Aspose.Cells также обеспечивает возможность указать запасной шрифт для целей рендеринга. Этот механизм полезен, когда необходимый шрифт недоступен на машине, где должно происходить преобразование. Пользователи могут предоставить список названий шрифтов в качестве альтернативы исходно требуемому шрифту. Для этого API Aspose.Cells предоставляют метод setFontSubstitutes, который принимает 2 параметра. Первый параметр имеет тип String, который должен быть именем шрифта, который требуется заменить. Второй параметр - массив типа String. Пользователи могут предоставить список названий шрифтов в качестве заменителей для оригинального шрифта (указанного в первом параметре).

Вот простой сценарий использования.

 //Substituting the Arial font with Times New Roman & Calibri

FontConfigs.setFontSubstitutes("Arial", new String[] { "Times New Roman", "Calibri" });

Сбор информации

Кроме вышеупомянутых методов, API Aspose.Cells также предоставляют средства для сбора информации о том, какие источники и замены были установлены.

  1. FontConfigs.getFontSources: Этот метод возвращает массив типа FontSourceBase, содержащий список указанных источников шрифтов. В случае отсутствия установленных источников метод FontConfigs.getFontSources вернет пустой массив.
  2. FontConfigs.getFontSubstitutes: Этот метод принимает параметр типа String, позволяя указать имя шрифта, для которого задано замещение. В случае, если для указанного имени шрифта замещение не было установлено, метод FontConfigs.getFontSubstitutes вернет null.