Aspose.Diagram Операции со шрифтами

Как указать расположение шрифтов TrueType

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

Работа со шрифтами

Где Aspose.Diagram ищет шрифты TrueType на Windows

Aspose.Diagram ищет шрифты вWindows\Шрифты папка. Этот параметр по умолчанию работает большую часть времени, поэтому указывайте свои собственные папки со шрифтами только в том случае, если вам это действительно нужно.

Как явно указать папку со шрифтами

Aspose.Diagram API-интерфейсы предоставили свойство FontDirs дляDiagram class, чтобы указать папки шрифтов, как описано ниже.

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

Образец программирования

В приведенном ниже примере кода показано, как настроить Aspose.Diagram для поиска шрифтов TrueType в нескольких папках при отображении или внедрении шрифтов.

Получение уведомлений об отсутствующих шрифтах и замене шрифтов во время рендеринга

Aspose.Diagram API требует доступа к точному шрифту для правильного отображения чертежа в формате PDF. Если требуемый шрифт недоступен на компьютере, то Aspose.Diagram API отображает любой экземпляр этого шрифта, используя шрифт по умолчанию или ближайший доступный шрифт на компьютере, поскольку эта замена может изменить внешний вид визуализированного чертежа, разработчикам может потребоваться уведомление об отсутствии шрифта и о том, каким шрифтом он будет заменен.

Уведомление об отсутствующих шрифтах и пример программирования замены шрифтов

Чтобы получать уведомления о замене шрифта во время рендеринга:

  1. Создайте класс, реализующийIWarningCallback
  2. Передайте его свойству PdfSaveOptions.WarningCallback.

При сохранении чертежа экземплярIWarningCallbackвызывается, если есть какие-либо потенциальные проблемы с точностью воспроизведения рисунка. В этом случае мы выбираем обработку только предупреждений, связанных с заменой шрифта, и вывод предупреждения на экран. В приведенном ниже примере показано, как получать уведомления о замене шрифта с помощьюIWarningCallback.

C#

 // The path to the documents directory.

string dataDir = RunExamples.GetDataDir_Intro();

// load the document to render.

Diagram diagram = new Diagram(dataDir + "Drawing1.vsdx");

// initialize PdfSaveOptions object

PdfSaveOptions saveOp = new PdfSaveOptions();

// create a new class implementing IWarningCallback which collect any warnings produced during drawing save.

HandleDocumentWarnings callback = new HandleDocumentWarnings();

saveOp.WarningCallback = callback;

// pass the save options along with the save path to the save method.

diagram.Save(dataDir + "NotificationofMissingFonts_Out.pdf", saveOp);

Реализация IWarningCallback

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

C#

 class HandleDocumentWarnings : IWarningCallback

{

    /**

    * Our callback only needs to implement the "Warning" method. This method is

    * called whenever there is a potential issue during document processing.

    * The callback can be set to listen for warnings generated during document

    * load and/or document save.

    */

    public void Warning(WarningInfo info)

    {

        // We are only interested in fonts being substituted.

        if (info.WarningType == WarningType.FontSubstitution)

        {

            Console.WriteLine("Font substitution: " + info.Description);

        }

    }

}