問題タブ [compact-font-format]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - CFFのトップDICTINDEXデータエントリを解析する方法は?
CFFデータを解析しています。「TopDICTINDEX」エントリーのポイントに到達しました。バージョンデータと「NameINDEX」の解析に成功しましたが、次のエントリ「TopDICTINDEX」の解析に苦労しています。
Adobeテクニカルノート#5176セクション8によると:
これには、INDEX構造に格納されているFontSet内のすべてのフォントのトップレベルのDICTが含まれています。
したがって、配列エントリをchar配列として扱うことを除いて、このdictのインデックスをName INDEXと同じように解析するのが論理的だと思いました。ただし、DICTデータ型として解析します。ここで問題が発生しました。INDEXデータ型は、ビッグエンディアン形式で2バイト(Card16)の配列カウントを宣言します。INDEXのメタデータによると、257個のエントリがあります(2バイトに1が含まれています(data[offset] << 8) + data[++offset]
)。しかし、仕様には次のように記載されています。
このINDEXに含まれるオブジェクトは、名前INDEXのオブジェクトに順序と番号の両方で対応します。
My Name INDEXには、1つのエントリ(実際のフォントの名前)が含まれていました。それで、データ解析のどこかに1つずつオフセットの問題があるのか、実際のフォントが無効なのか、少し混乱していますか?
windows - プログラムで CFF フォントを OpenType フォントに変換する
CFF フォントの周りに opentype ラッパーを作成する方法に関する追加情報を見つけることができるポインターはありますか?
現在、私は CFF ファイル用のパーサーを持っているので、そこからあらゆる種類の情報 (cmap、グリフ名、幅、名前など) を取得できます。この情報を考えると、Opentype (truetype 形式のような) ラッパーを作成できないため、GDI を使用して Windows でフォントを使用できます。GDI は Opentype フォントをロードしません。私が知っている唯一のことは、フォントのロードに失敗することです。
追加情報、検証アプリケーション、コード例、フォントが Windows から読み込まれない理由などの追加情報を知っている人はいますか?
注: ユーティリティや変換ツールではなく、その方法に関する情報を探しています。
fonts - Adobes CFF形式の「プライベートDICTデータ」の用途は何ですか
Adobe の「コンパクト フォント フォーマット」(CFF) 仕様 ( http://partners.adobe.com/public/developer/en/font/5176.CFF.pdf ) で説明されているように、CFF 圧縮 PostScript には「プライベート」フォント ディクショナリがあります。フォント (例: TrueType アウトラインを持つ OpenType フォント)。
この CFF フォントの「Private DICT Data」が何に役立つのか、誰か説明できますか?
また、FontLab Studio などで「プライベート DICT データ」のフォントを確認するにはどうすればよいですか?
アップデート:
FontLab Studio がプライベート DICT ヒンティング データを次のように表示するようです。
fonts - サブルーチン化を元に戻すCFF(Compact Font Format)ライブラリ?
PDF フォントを埋め込む目的で、CFF OpenType ファイルから未使用のグリフのグリフ アウトライン データを削除してサイズを小さくする作業を担当しました。
問題は、TTF とは異なり、CFF がそのグリフ アウトライン データをサブルーチンに「圧縮」し、グリフ間の依存関係を作成することです。グリフとそれに一致する char を cmap とアウトライン データから削除することはできません。
CFF ファイルをサブルーチン化できる otfcc のようなオープン ソースの CFF ライブラリがいくつかあるので、逆のことを実行してサブルーチン化を元に戻すことができるライブラリがあるかどうか疑問に思っていました。
更新: 私が使用しているライブラリは otfcc と sfntly です。Sfntly には CFF パーサーがないので、拡張しています。freetype も調べましたが、CFF ローダーはありますが、サブセッターがないようです。
現在、pdfbox 用のフォントボックスを Apache から sfntly に移植する作業が途中で完了しました。パーサーは機能しますが、サブセッターはまだ不完全です。
unicode - エンコーディングと文字セットテーブルは CFF フォントファイルでどのように構成されていますか?
CFF 仕様の第 11 章から第 13 章では、ファイル内で編成されるエンコーディングと文字セット データについて大まかに説明しています。CFF仕様。ここにいくつかの質問があります。
マルチフォント ファイルが存在する可能性があること、および文字列がフォントごとにアクセスされることを考慮すると、対応するインデックスも各フォントに対してのみ意味を持つ必要があります。ただし、ファイルのエンコーディングと文字セット テーブルは最大でも 1 つだけですか? もしそうなら、グリフインデックスは文字列のものにどのように対応していますか? そうでない場合、アクセス元の TopDict に複数回表示されますか? (解決済み。以下の回答を参照してください。)
文字セットが各グリフに名前を付けているようです。エンコーディングはどうですか?各配列要素に格納されている Card8 データは何ですか? 256 の制限を考えると、エンコーディングは非常に制限されませんか? また、なぜ補足フォーマットでデータが SID 経由で送信されるのでしょうか? エンコーディングを介してグリフにアクセスするために設計された方法は何ですか (ハイブリッド文字列/コードの方法で)? また、事前定義されたエンコーディングに関しては、なぜこれらのデータ文字列なのですか?
ありがとう