HPDFMeasureBaseFontWidths

ロード済み単純フォントのフォールバックパス向けに、デコード済み Unicode の送り幅を計測します

宣言

function HPDFMeasureBaseFontWidths(const BaseFont: AnsiString;
  const CodePoints: array of Cardinal; var Widths: array of Double): Boolean;

動作

この HPDFBaseFontMetrics 関数は、入力と出力の配列長の小さい方までを最大値として書き込みます。単位は 1/1000 em です

書き込み対象のすべての文字が正規の標準送り幅を持つ場合、代替フォントのロードや参照なしで計測が成功します

そうでなければ、計測はまず既存のプラットフォームバックエンドを呼び出し、その成否結果を保持します。バックエンド呼び出しが成功した後、対応する正規文字は標準送り幅を受け取り、その他の文字はバックエンドの結果を保持します

Windows は既存の GDI メトリクスバックエンドを、Linux は既存の fontconfig と TrueType メトリクスバックエンドを、これらのフォールバック文字と非正規フォント名に使います

False の結果は出力値が無変更であることを保証しません。バックエンドが失敗したら、呼び出し元は計測結果を破棄してください

HPDFBuildFontDecoder がこのフォールバックを呼ぶのは、フォントディクショナリにパース済みの /Widths 配列がない場合だけです。明示的な幅と埋め込みフォントのデコードパスが引き続き権威です

関連トピック

HPDFGetStandardFontWidth, 標準フォントの送り幅