Вопрос

В прошлом году мне пришлось конвертировать старый шрифт Mac примерно с OS 9, чтобы кто-то мог использовать его на ПК.Я обнаружил, что тогда данные шрифта хранились в расширенном атрибуте com.apple.ResourceFork.Фактический размер файла будет отображаться как 0 в терминале.Я смог обойти это, просто распечатав значение этого расширенного атрибута с помощью xattr -p com.apple.ResourceFork шрифт > font.ttf.

Теперь, со Snow Leopard и сжатием файлов HFS +, все изменилось.Если вы сейчас попытаетесь распечатать расширенный атрибут старого стиля, вы получите только шестнадцатеричное значение, а не значение.Новые расширенные атрибуты отображаются без какого-либо шестнадцатеричного значения, если не указано с параметром -x.Вот пример:

xattr -l com.apple.FinderInfo Rublof
Rublof: com.apple.ResourceFork:
00000000  00 00 01 00 00 00 9E 50 00 00 9D 50 00 00 00 32  |.......P...P...2|
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
...
Rublof: com.apple.quarantine: 0000;4b75ae02;Mail;39396996-3C5C-48F5-8BDD-775EB40CAD9C|com.apple.mail

Запуск xattr -p на ResourceFork выведет шестнадцатеричный код, запустив его на карантине, вы получите ASCII.Очевидно, Apple изменила способ обработки расширенных атрибутов и, возможно, они забыли о людях, которые все еще используют свои шрифты OS 9.

Есть ли что-то, чего мне здесь не хватает, или мне просто написать скрипт для преобразования шестнадцатеричного значения в ASCII?

Это было полезно?

Решение

Вы также можете получить доступ к разветвлениям ресурсов, добавив "/rsrc" или "/..namedfork/rsrc" к имени файла.Попробуй cp Rublof/rsrc Rublof.ttf.Тем не менее, разветвления ресурсов устарели, в то время как расширенные атрибуты - нет.Механизм "/..namedfork" может исчезнуть из будущих выпусков.Если это произойдет, вы можете попробовать xxd преобразовать обратно в двоичный файл:

xattr -p com.apple.ResourceFork Rublof | xxd -r > Rublof.ttf

Другие советы

Преобразование разветвления ресурсов в разветвление данных не даст того, что вам нужно - оно все еще находится в формате разветвления ресурсов, так что ничто не сможет его использовать.Чтобы перевести его в кроссплатформенный формат, вам нужен конвертер, подобный fondu.Он порылся в чемоданчике шрифтов Mac старого образца и извлек ресурсы sfnt (шрифты TrueType и OpenType) в файлы .ttf и .otf, ресурсы POST (шрифты PostScript) - в файлы .pbf, а ресурсы NFNT и ШРИФТОВ (растровые шрифты) - в файлы .bdf.

Кстати, пакет Mac OS / X из раздела загрузки SourceForge выдает мне ошибку при его установке, но, похоже, все равно устанавливается успешно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top