Преобразование шрифта из WOFF (Web Open Font Format) в формат, который я могу использовать в MS Word


26

У меня есть файл WOFF, загруженный с веб-сайта, который я хочу преобразовать для использования в документах Microsoft Word и т. Д. Есть ли бесплатный способ сделать это? После долгих поисков я не нашел пути, поэтому обращаюсь к Super User за помощью.


3
Если бы вы включили название шрифта (или URL-адрес, где вы нашли файл WOFF), мы могли бы найти источник для версии TTF или OTF, который не нуждался бы в преобразовании и мог бы содержать больше символов.
Дэн Д.

Ответы:


23

Да, формат WOFF является контейнером для табличной структуры sfnt (используется TrueType и OpenType). Он добавляет некоторые метаданные к шрифту TTF / OTF, а также может сжимать фактические данные шрифта.

Если вы хотите конвертировать из WOFF в обернутый шрифт TTF / OTF, вы можете использовать инструмент woff2sfnt, созданный Джонатаном Кью из Mozilla. Он предоставляет предварительно скомпилированные двоичные файлы для инструмента sfnt2woff (конвертировать из TTF / OTF в WOFF) для OS X и Windows, но не для инструмента woff2sfnt (конвертировать из WOFF в TTF / OTF), поэтому вы должны скомпилировать из источник. Это легко сделать, если у вас есть работающая цепочка инструментов компилятора - просто скачайте исходный zip-файл и запустите make.

Когда у вас есть работающий бинарный файл woff2sfnt, вы просто делаете:

$ ./woff2sfnt font.woff > font.otf

Результирующий шрифт - это обычный шрифт TTF / OTF, который вы можете использовать, но учтите, что если вы загружаете шрифт WOFF с веб-сайта, вы должны соблюдать лицензию этого шрифта. Лицензионная информация может быть включена в метаданные WOFF.


5
woff2sfnt-tool не может его найти ...
Мухаммед Умер

1
-1 не предоставил правильную ссылку
Supuhstar

2
Извините меня? Ссылки, которые я предоставил (более года назад), все еще работают. Я также четко заявляю, что вы должны скомпилировать инструмент самостоятельно. Пожалуйста, прочитайте до голосования.
Эрик Тьернлунд

6
Для Ubuntu Linux и подобных систем пакет содержит woff2sfntи sfnt2woffназываетсяwoff-tools
yuvilio

2
ссылка не работает?
PrimitiveNom

4

По ссылке Эрика Тьернлунда я скачал исходный код и скомпилировал исполняемый файл i386 для Windows woff2sfntи sfnt2woffдля Windows. Вы можете скачать его с моего Dropbox здесь.

(Обратите внимание, что это также работает на компьютерах с архитектурой x86-64. Фактически, вы не можете создать его для компьютеров с архитектурой x86-64, поскольку двоичный объект, предоставленный Джонатаном Кью, предназначен для типа архитектуры i386.)


cygwin1.dll не был найден
Мухаммед Умер

@MuhammadUmer Очевидно, вам нужно установить Cygwin, чтобы он заработал.
Пол Ламмерцма

Для тех, кто читает без опыта работы с Cygwin, вам понадобится cygwin1.dll (из «cygwin»), cygz.dll (из «zlib0») и cyggcc_s-1.dll (из «libgcc1»). Как только они окажутся в одном каталоге, все будет работать нормально.
чайка

2

Вы можете использовать FontForge для конвертации - это приложение, которое может создавать и редактировать файлы шрифтов.

Вы устанавливаете его, а затем вы можете щелкнуть правой кнопкой мыши по файлу шрифта и выбрать «Свойства». Рядом с «Открыть с помощью» нажмите «Изменить», затем перейдите к «Обзор»: введите описание изображения здесь

Затем вам нужно найти местоположение исполняемого файла FontForge - в Windows 7 64bit он находится здесь:

C:\Program Files (x86)\FontForge\run_fontforge.exe

Открыв шрифт, вы игнорируете большинство ошибок, связанных с неправильными типами таблиц и прочим, и нажимаете «Сгенерировать шрифты»:

Выберите место сохранения и ttfили otfв качестве формата экспорта. Шрифты OTF иногда могут иметь более высокое качество в зависимости от импортируемого шрифта.

введите описание изображения здесь

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

введите описание изображения здесь


2

я получил исходный код woff2sfnt для компиляции для windows 10 x64 со следующими шагами, собранными из других ссылок (т.е. я не претендую на какую-либо оригинальную мысль здесь)

  • исходный хост mozilla, кажется, мертв, нашел его здесь: https://github.com/wget/sfnt2woff ... распаковал все это в рабочую папку
  • использовал http://tdm-gcc.tdragon.net/ как дружественный установщик стека компилятора gcc
  • добавлен #include <fcntl.h> вверху woff2sfnt.c под #ifdef WIN32, в дополнение к io.h уже там
  • скачал исходный код zlib с http://www.zlib.net/ и скопировал все его корневые файлы .c и .h в мою рабочую папку
  • моя командная строка gcc: gcc -o woff2sfnt.exe woff2sfnt.c woff.c compress.c uncompr.c deflate.c inflate.c adler32.c inffast.c crc32.c trees.c zutil.c inftrees.c

я понимаю, что все это очень грубая сила, потому что я простой программист на C # с мягким подбрюшком, предоставляемым современными инструментами, не связанным с правильной работой gcc.


1

конвертировать файлы WOFF2 в ttf на macOS, попробуйте

brew install fonttools
ttx font.woff
ttx font.ttx

ttx font.woffпреобразует ваш .woffфайл в .ttxфайл (формат файла шрифта XML). Тогда ttx font.ttxбудет преобразовать .ttxк .ttf.

Если файл, который вы получили, ttx font.ttxне может быть импортирован, вы можете попробовать перетащить его font.ttfв «Книгу шрифтов», прочитав, что это за ошибки (щелкните стрелку вниз рядом с именем шрифта) и исправив их в .ttxфайле. Например, мне пришлось добавить namerecord.


Для пакетного преобразования попробуйте

for f in *.woff; do ttx $f; done
for f in *.ttx; do ttx $f; done

Я также попробовал Google Woff2 из этого репо

brew tap bramstein/webfonttools
brew install woff2
woff2_decompress font.woff

но это не создавало ничего .ttfили .otfфайлы.


В конце концов, я погуглил "fontname otf" и установил его вместо этого.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.