2

昨年、誰かが PC で使えるように、OS 9 前後の古い Mac フォントを変換しなければなりませんでした。当時、フォント データは拡張属性 com.apple.ResourceFork に格納されていたことがわかりました。実際のファイル サイズは、ターミナルで 0 として表示されます。xattr -p com.apple.ResourceFork font > font.ttf を使用して拡張属性の値を出力するだけで、これを回避できました。

現在、Snow Leopard と HFS+ ファイル圧縮により状況が変わりました。ここで古いスタイルの拡張属性を出力しようとすると、値ではなく 16 進数のみが取得されます。-x オプションで指定しない限り、新しい拡張属性は 16 進数なしで表示されます。次に例を示します。

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

ResourceFork で xattr -p を実行すると 16 進数が出力され、検疫で実行すると ASCII が取得されます。明らかに、Apple は拡張属性の処理方法を変更しました。おそらく、OS 9 フォントをまだ使い続けている人々のことを忘れていたのでしょう。

ここに欠けているものはありますか、それとも16進数をASCIIに変換するスクリプトを書くだけですか?

4

2 に答える 2

5

ファイル名に「/rsrc」または「/..namedfork/rsrc」を追加して、リソース フォークにアクセスすることもできます。試してみてくださいcp Rublof/rsrc Rublof.ttf。つまり、リソース フォークは非推奨ですが、拡張属性は非推奨ではありません。「/..namedfork」メカニズムは、将来のリリースからなくなる可能性があります。その場合は、xxd を試してバイナリに戻すことができます。

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

于 2010-02-12T20:51:01.357 に答える
2

リソース フォークをデータ フォークに変換しても、必要な処理は行われません。リソース フォーク形式のままなので、何も使用できません。クロスプラットフォーム形式にするには、 fontuのようなコンバーターが必要です。古いスタイルの Mac フォント スーツケースを掘り下げて、sfnt リソース (TrueType および OpenType フォント) を .ttf および .otf ファイルに抽出し、POST リソース (PostScript フォント) を .pbf ファイルに抽出し、NFNT および FONT リソース (ビットマップ フォント) を抽出します。 .bdf ファイルに。

ところで、SourceForge のダウンロード セクションにある Mac OS/X パッケージをインストールするとエラーが表示されますが、インストールは成功しているようです。

于 2010-02-13T02:43:08.497 に答える