7

Мне прислали документ QuarkXPress, который содержит ряд необычных шрифтов, которые также были отправлены мне. Шрифты находились в папке с именем fonts, а затем все они были упакованы в один архив, содержащий папку документов и шрифтов. Я считаю, что это было сделано на компьютере под управлением Mac OS X.

Я разархивировал архив, но все файлы в папке шрифтов не имеют размера - то есть они представляют собой файлы размером 0 байт. Однако есть также папка __MACOSX, в которой есть подпапка fonts. Здесь я вижу все файлы шрифтов (с префиксом ._), и все они имеют размер, то есть не 0 байтов. Предположительно это фактические файлы шрифтов, которые мне нужны, но я не могу понять, как установить их в Windows.

Я попытался переименовать файлы с расширениями .ttf и .otf, а затем установить их, но, похоже, это не сработало - я просто получаю сообщение "Invalid font file file".

Есть другие идеи?

3 ответа3

8

Для некоторых шрифтов Mac информация о шрифтах хранится полностью в ресурсной ветке файла. В Mac OS X такие шрифты выглядят как обычные файлы в Finder, но из таких инструментов, как ls (и все, что использует слой POSIX), они выглядят как файлы с нулевым байтом.

__MACOSX/._* из Zip-файла - это кодированные AppleDouble версии комбинации ветвления ресурса и некоторой дополнительной информации Finder из исходных файлов. Файлы AppleDouble используются Mac OS X при хранении файлов с ветвлением ресурса или информацией Finder в файловых системах, которые не поддерживают вилки ресурсов и информацию Finder (здесь Zip считается файловой системой).

Я не пользователь Windows, и мои поиски не включали никаких готовых инструментов для этого. Я нашел набор инструментов, которые могли бы работать. Лучше всего запускать их на Mac, но они могут работать и на Windows.


Если у вас есть доступ к Mac

  • распакуйте архив Zip на этот Mac (дважды щелкните его, не используйте распаковку из командной строки) и
  • используйте инструмент типа Fondu для извлечения TTF (или чего-либо еще) из ветки ресурсов
    • (Я только что нашел фондю, я никогда не использовал его раньше; будьте бдительны)

Если у вас нет доступа к Mac, вы все равно сможете использовать fondu, но вам нужно будет скомпилировать fondu самостоятельно (похоже, что его можно построить на Linux, так что вы также можете его встроить в (например) Cygwin). Следующая проблема заключается в том, что fondu не может читать файлы AppleDouble, поэтому вам придется найти что-то, что может извлечь пустую ветвь ресурса из файла ._* закодированного AppleDouble. Я не уверен, какие специфичные для Windows инструменты могут декодировать AppleDouble, но модуль Perl Mac::AppleSingleDouble может это сделать:

perl -MMac::AppleSingleDouble -e 'for(@ARGV) {
    $a = new Mac::AppleSingleDouble($_);
    if(open $f, ">", $_.".rsrc") {
        binmode $f;
        print $f $a->get_entry(2);
        close $f;
    }
}'__MACOSX/._Webdings
# now I have a __MACOSX/._Webdings.rsrc file from which fondu can extract Webdings.ttf

Если вы знакомы со сборкой инструментов Unix-oid, создание фондю должно быть простым. Для бита Perl вы должны быть в состоянии использовать инструмент cpan , который поставляется с большинством установок Perl (или, если вы знакомы с компоновкой и установкой модулей Perl, просто скачайте файл AppleSingleDouble.pm и поместите его в соответствующий место).

2

Модуль Perl, о котором упоминает Крис Джонсен, превосходен - как и его маленький скрипт командной строки! Мне нужна эта информация сама.

Из других новостей: команда t1unmac в пакете t1utils выполняет точно такой же шрифт "unmaccing", но имеет встроенную двойную поддержку!

0

Утилита CrossFont работала для меня. Это создает .otf или другой файл двойного щелчка для установки шрифта для Windows.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .