大量のグリフを含むフォントを作成したい。千の漢字を考えてみてください。そのため、スクリプティング/バッチ処理が必要になることは間違いありません。幸いなことに、FontForge は Python スクリプトをサポートしています。残念ながら、私はそれを機能させることができませんでした。[悲しい顔]
まず、私の質問の大部分に答えたコードをここに投稿してくれたユーザーHoffに感謝します。しかし、彼のスクリプトを実行すると、さらに疑問が生じる問題に遭遇します。
Failed to find NameList: AGL For New Fonts
Warning: Font contained no glyphs
アップデート:
- 「フォントにグリフが含まれていません」というエラーは明らかに FontForge のバグであり、フォントに含まれるグリフが 1 つ以下の場合に発生します。2 番目のグリフ「B」を追加すると、これが解決されました。
- .ttf .sfd .otf などを保存するかどうかにかかわらず、同じ構文を使用できることがわかりました。
- NameList の失敗によって、実際にはフォント ファイルの書き込みが妨げられることはありません。これを発見できてうれしかったのですが、必要な NameList を提供する方法がまだわかりません。
ホフのコードは次のとおりです。
import fontforge
font = fontforge.open('blank.sfd')
glyph = font.createMappedChar('A')
glyph.importOutlines('sourceimg.svg')
font.generate('testfont.ttf')
昨日、FontForge のビルドに 5 時間も苦労した結果 (Mac での複雑なプロセス)。私はそれを適切に稼働させているようです。最初に .dmg からビルド済みのバージョンをインストールしましたが、Python のサポートがないことがわかりました。しかし、Hoff は私と同じエラーに遭遇していないように見えたので、ビルドの問題を除外していません。
いずれにせよ、AGL に関するエラーがわかりません。AGLとは?私はそれを調べました:「Adobe Glyph List - 標準グリフ命名規則」。FontForge が Unicode 値をグリフ名にマップしようとして失敗したようです。
では、なぜ AGL NameList の問題が発生するのでしょうか? 助けてくれてありがとう。