THotPDF Shaping Subset and ToUnicode Mapping Methods

THotPDF API リファレンス

 

THotPDF メソッド  自動シェーピング  GSUB

シェーピング済みの GID が正しく描画・抽出されるための、グリフサブセットと ToUnicode まわりの仕組みを説明します

 

Delphi 構文

procedure EnableShapingFeatureForSubset(const FeatureTag: AnsiString); overload;

procedure EnableShapingFeatureForSubset(Feature: THPDFShapingFeature); overload;

procedure MarkUnicodeGlyphUsed(GID: Word);

procedure RegisterToUnicodeReverseMapping(SubstCodepoint: Cardinal; const SourceCodepoints: array of Cardinal);

procedure ClearToUnicodeReverseMappings;

function ToUnicodeReverseMappingCount: Integer;

function AssignSyntheticCodepointForGID(GID: Word; out SyntheticCP: Word): Boolean;

function GetSyntheticCodepointForGID(GID: Word): Word;

procedure MarkSyntheticCpRTL(Cp: Word);

function IsRTLSyntheticCp(Cp: Word): Boolean;

function IsRTLSyntheticGID(GID: Word): Boolean;

 

対象 API

API使用上の注意
EnableShapingFeatureForSubset出力グリフを埋め込みサブセットに保持すべき GSUB フィーチャーをマークします
MarkUnicodeGlyphUsed返された代替 GID を、埋め込みフォントサブセットのクロージャーへ追加します
RegisterToUnicodeReverseMappingテキスト抽出とアクセシビリティのために、代替コードポイントからソースコードポイントへのマッピングを登録します
ClearToUnicodeReverseMappings現在のドキュメントについて、呼び出し側が登録したすべての逆マッピングを消去します
ToUnicodeReverseMappingCount登録されている逆マッピングの数を返します
AssignSyntheticCodepointForGIDCIDToGIDMap 経由でグリフ ID を描画できる、プライベート使用領域の合成コードポイントを割り当てます
GetSyntheticCodepointForGIDグリフ ID に既に割り当てられている合成コードポイントを返します
MarkSyntheticCpRTL合成コードポイントを右から左への記述としてマークし、出力順序が正しく保たれるようにします
IsRTLSyntheticCp合成コードポイントが右から左への出力対象としてマークされているかどうかを報告します
IsRTLSyntheticGIDグリフ ID が、右から左への出力対象としてマークされた合成コードポイントに解決されるかどうかを報告します

 

使用上の注意

シェーピングワークフローが、通常の Unicode cmap エントリーからは到達できないグリフ ID を出力するときに、これらの API を使います。合成コードポイントは描画を CIDToGIDMap 経由に回し、逆マッピングはテキスト抽出のために元のソースコードポイントを復元します

 

関連項目: AssignSyntheticCodepointForGID GSUB ルックアップメソッド Indic シェーピングメソッド