まあ、すでに2つの「ショートカット」が見つかりました。 FontBBoxは、フォント内のすべてのグリフの境界ボックスを重ねて表示します。 false charpath flattenpath pathbbox
は、指定された文字列のボックスを与えます。
タイプ3(ユーザー定義)フォントの場合、これはあなたが期待することができるすべてです。より一般的なタイプ1フォントでは、ののフォントと「メトリック」ファイル(他のアプリケーションの場合)のメトリック情報が豊富に用意されています。
これは私があまりよく知らない部分です。ですから、私は(Adobe Type 1のマニュアルで)読み上げて、この回答を後で展開します。
編集:実際には、これらは一般的に最良の方法であるようです。
はです。/ Privateディクショナリの/ BlueValuesという名前のタイプ1フォントの垂直配置値の配列です。フォントがそれらを尊重する保証はありません。アレイの最初の番号はベースラインオーバーシュートです。これはベースラインの下に落ちる「O」のような文字の下端です。アレイの最大値は、昇順のオーバーシュートまたはのキャップのオーバーシュート(どちらか高い方の値)のいずれかになります。しかし、これらの値に関係なく、個々の文字をプロットすることができます(したがって、保証はありません)。
一方、FontBBox自体は、エンコーディングベクターを介してアクセスできるかどうかにかかわらず、フォント内に存在する「特殊」文字の境界ボックスを反映することがあります(つまり、show
それらはglyphshow
でなければなりません)。
おそらく、使用する予定のすべての文字の文字列をpathbbox
とすることをお勧めします。これは存在するかもしれないがあなたの目的に無関係な他の文字の貢献を無視するでしょう。 flattenpath
を忘れずに(実際の境界ボックスの外にある可能性がある)カーブからコントロールポイントを削除してください。