Настройка замены шрифтов в презентациях с использованием PHP

Установить правила замены шрифтов

Aspose.Slides позволяет задавать правила для шрифтов, которые определяют, что делать в определённых ситуациях (например, когда шрифт недоступен) следующим образом:

  1. Загрузить соответствующую презентацию.
  2. Загрузить шрифт, который будет заменён.
  3. Загрузить новый шрифт.
  4. Добавить правило замены.
  5. Добавить правило в коллекцию правил замены шрифтов презентации.
  6. Сгенерировать изображение слайда, чтобы увидеть эффект.

Этот PHP‑код демонстрирует процесс замены шрифтов:

  # Загружает презентацию
  $pres = new Presentation("Fonts.pptx");
  try {
    # Загружает исходный шрифт, который будет заменён
    $sourceFont = new FontData("SomeRareFont");
    # Загружает новый шрифт
    $destFont = new FontData("Arial");
    # Добавляет правило шрифта для замены шрифта
    $fontSubstRule = new FontSubstRule($sourceFont, $destFont, FontSubstCondition->WhenInaccessible);
    # Добавляет правило в коллекцию правил подстановки шрифтов
    $fontSubstRuleCollection = new FontSubstRuleCollection();
    $fontSubstRuleCollection->add($fontSubstRule);
    # Добавляет коллекцию правил шрифтов в список правил
    $pres->getFontsManager()->setFontSubstRuleList($fontSubstRuleCollection);
    # Шрифт Arial будет использован вместо SomeRareFont, когда последний недоступен
    $slideImage = $pres->getSlides()->get_Item(0)->getImage(1.0, 1.0);
    # Сохраняет изображение на диск в формате JPEG
    try {
      $slideImage->save("Thumbnail_out.jpg", ImageFormat::Jpeg);
    } finally {
      if (!java_is_null($slideImage)) {
        $slideImage->dispose();
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Ограничения для шрифтов математических уравнений

Правила замены шрифтов участвуют в стандартном процессе выбора шрифта, используемом при рендеринге и конвертации. Они подходят для обычных текстовых сценариев, когда Aspose.Slides может заменить недоступный шрифт другим доступным шрифтом согласно настроенному правилу.

Однако в уравнениях Office Math есть важное ограничение. Если уравнение было создано с Cambria Math, Aspose.Slides всё равно может потребовать оригинальный шрифт Cambria Math для корректного расчёта и рендеринга макета уравнения. По этой причине замена Cambria Math другим математическим шрифтом, например STIX Two Math, не поддерживается при рендеринге уравнений и может привести к исключению, указывающему, что требуется Cambria Math.

Чтобы успешно конвертировать такие презентации, убедитесь, что Cambria Math доступен Aspose.Slides во время выполнения. Вы можете установить шрифт в операционной системе или предоставить его как внешний шрифт, чтобы он участвовал в обычном процессе выбора шрифта при рендеринге и конвертации.

Это ограничение относится конкретно к рендерингу уравнений. Описанные выше стандартные правила замены шрифтов по‑прежнему применяются к обычному тексту презентации, когда оригинальный шрифт недоступен.

FAQ

В чём разница между заменой шрифта и заменой шрифта (substitution)?

Замена — принудительное переопределение одного шрифта другим во всей презентации. Замена (substitution) — правило, которое срабатывает при определённом условии, например когда оригинальный шрифт недоступен, и тогда используется назначенный резервный шрифт.

Когда именно применяются правила замены?

Правила участвуют в стандартной последовательности выбора шрифта, которая оценивается во время загрузки, рендеринга и конвертации; если выбранный шрифт недоступен, применяется замена или substitution.

Каково поведение по умолчанию, если ни замена, ни substitution не настроены, а шрифт отсутствует в системе?

Библиотека попытается выбрать ближайший доступный системный шрифт, аналогично тому, как это делает PowerPoint.

Можно ли добавить пользовательские внешние шрифты во время выполнения, чтобы избежать substitution?

Да. Вы можете добавлять внешние шрифты во время выполнения, чтобы библиотека учитывала их при выборе и рендеринге, включая последующие конверсии.

Поставляет ли Aspose какие‑либо шрифты вместе с библиотекой?

Нет. Aspose не распространяет платные или бесплатные шрифты; вы добавляете и используете шрифты по своей инициативе и ответственности.

Есть ли различия в поведении substitution на Windows, Linux и macOS?

Да. Поиск шрифтов начинается с каталогов шрифтов операционной системы. Набор доступных по умолчанию шрифтов и пути поиска различаются между платформами, что влияет на их доступность и необходимость substitution.

Как подготовить окружение, чтобы минимизировать неожиданную substitution при пакетных конверсиях?

Синхронизируйте набор шрифтов между машинами или контейнерами, добавьте необходимые внешние шрифты для выходных документов и встраивайте шрифты в презентации, когда это возможно, чтобы выбранные шрифты были доступны во время рендеринга.