Сохранить обновленные файлы шрифтов на диск

Решение C++ API для сохранения ранее загруженных из потока шрифтов.

 

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

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

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

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

На этой странице описывается вариант сохранения шрифта TrueType на диск, но все остальные фрагменты кода о том, как использовать решение, размещены в Aspose Github Project .

Для сохранения файлов шрифтов нам потребуется:

  • Aspose.Font for C++ API — многофункциональный, мощный и простой в использовании API для работы с документами и преобразования для платформы C++.

  • Откройте диспетчер пакетов NuGet, найдите Aspose.Font и установите его. Вы также можете использовать следующую команду из консоли диспетчера пакетов.

Package Manager Console Command


    PM> Install-Package Aspose.Font

Действия по сохранению ранее измененного шрифта с помощью C++:

Aspose.Font для C++ предлагает возможность изменять файлы шрифтов и сохранять измененные файлы на диске. В приведенном ниже примере кода показано, как сохранить измененный файл шрифта TTF.

  1. Создайте новый объект FontFileDefinition .
  2. Установите FontType как TTF и FontFileDefinition как .ttf.
  3. Установите объект TtfFont и откройте файл шрифта с помощью объекта FontDefinition, определенного ранее.
  4. Сохраните TtfFont на диск, вызвав метод Save() и передав имя выходного файла с полным путем. Сохраненный файл шрифта будет иметь обновленные изменения.

Код C++ для сохранения шрифта TrueType на диск

    using Aspose::Font;
    using Aspose::Font::Sources;
    using Aspose::Font::Ttf;
    //byte array to load Font from
    System::String dataDir = RunExamples::GetDataDir_Data();
    
    System::ArrayPtr<uint8_t> fontMemoryData = System::IO::File::ReadAllBytes(dataDir + u"Montserrat-Regular.ttf");
    System::SharedPtr<FontDefinition> fd = System::MakeObject<FontDefinition>(Aspose::Font::FontType::TTF, System::MakeObject<FontFileDefinition>(u"ttf", System::MakeObject<ByteContentStreamSource>(fontMemoryData)));
    System::SharedPtr<TtfFont> ttfFont = System::DynamicCast_noexcept<Aspose::Font::Ttf::TtfFont>(Aspose::Font::Font::Open(fd));
    
    //Work with data from the just loaded TtfFont object
    
    //Save The TtfFont to disk
    //Output the Font file name with the full path
    System::String outputFile = RunExamples::GetDataDir_Data() + u"Montserrat-Regular_out.ttf";
    
    ttfFont->Save(outputFile);



Часто задаваемые вопросы

1. Как сохранить шрифты на жесткий диск?

Когда вы загрузили шрифт и хотите сохранить его на свой диск, вам нужно вставить его файл в папку Fonts, например, C:>Windows>Fonts, если операционная система Windows.

2. Могу ли я копировать шрифты с одного компьютера на другой?

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

3. Как сохранить измененные шрифты?

Чтобы сохранить шрифт на диск, сначала объявите имя выходного файла шрифта с полным путем. Затем используйте метод Save().