Могу ли я преобразовать встроенный шрифт с кодировкой base64 в файл шрифта?

У меня есть правило @font-face, и оно выглядит так:

@font-face{
    font-family:'F';
src:url("") format("embedded-opentype"),
url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAA ... ETC... ETC

Можно ли преобразовать это в файл шрифта?

Спасибо!

Ответ 1

Скопируйте закодированную часть base64 и преобразуйте ее. Есть много способов сделать это.

Linux

base64 -d base64_encoded_font.txt > font.woff

Mac OS X

openssl base64 -d -in base64_encoded_font.txt -out font.woff

WIndows

Перейдите в http://www.motobit.com/util/base64-decoder-encoder.asp и вставьте текст. Выберите "декодировать данные из строки Base64 (base64 decoding)" и "экспортировать в двоичный файл".

Ответ 2

@mcrumley ответ правильный, но для тех из вас, кто не может понять это и/или боится командной строки, у меня есть альтернативный метод.

Я просто ответил на ваш вопрос и нашел http://base64converter.com/, который может конвертировать/декодировать (и кодировать) любой файл base64 обратно в исходное формат. Я использовал его для кодирования и декодирования изображений base64 в прошлом, но это была моя первая попытка с помощью шрифта. В качестве теста я подключил встроенную информацию о шрифте base64, которую я нашел в файле css случайной веб-страницы. Вам не нужна вся запись, оставьте поле css info или конверсия не удастся.

  • (Например) удалите эту информацию, предшествующую base64:

    @font-face{font-family:"Example";src:url(data:application/x-font-woff;base64,
    
  • Удалить это с конца:

    ;font-weight:400;font-style:normal}
    
  • Остались данные с кодировкой base64, вставьте их в поле "Input", выберите "Decode" для вывода и нажмите кнопку. Он создаст файл под названием download.bin: щелкните его, чтобы загрузить его. Затем измените расширение файла с bin на woff (ваш тип файла шрифта может быть другим, но он скажет в css). Я смог открыть файл .woff, и преобразование работало отлично; не только были сохранены все контуры, но также были имена глифов, функции opentype, кернинг и все такое.

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

Если файлы woff не то, что вам нужно, есть множество онлайн-инструментов для преобразования woff в формат по вашему выбору. Или, если вам нужен автономный инструмент, проверьте этот вопрос, который я задал, и ответы, которые я получил:

Изменить Python Script для пакетной конвертации всех "WOFF" Файлы в каталоге