THotPDF Shaping Subset and ToUnicode Mapping Methods

THotPDF API reference

 

THotPDF Methods  Auto Shaping  GSUB

記錄讓 shaped GIDs 正確 render 與 extract 的 glyph-subset 與 ToUnicode plumbing

 

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;

 

Covered APIs

API使用注意事項
EnableShapingFeatureForSubsetMarks GSUB features whose output glyphs must be retained in the embedded subset
MarkUnicodeGlyphUsedAdds a returned substitute GID to the embedded font subset closure
RegisterToUnicodeReverseMappingRegisters a substitute codepoint to source-codepoint mapping for extraction and accessibility
ClearToUnicodeReverseMappingsClears all caller-registered reverse mappings for the current document
ToUnicodeReverseMappingCountReturns the number of registered reverse mappings
AssignSyntheticCodepointForGIDAllocates a private-use synthetic codepoint that renders a glyph ID through CIDToGIDMap
GetSyntheticCodepointForGIDReturns the synthetic codepoint already assigned to a glyph ID
MarkSyntheticCpRTLMarks a synthetic codepoint as right-to-left so emit ordering remains correct
IsRTLSyntheticCpReports whether a synthetic codepoint was marked for right-to-left emission
IsRTLSyntheticGIDReports whether a glyph ID resolves to a synthetic codepoint marked for right-to-left emission

 

使用注意事項

當 shaping workflow 輸出的 glyph IDs 無法透過一般 Unicode cmap entry 到達時,請使用這些 APIs。Synthetic codepoints 會透過 CIDToGIDMap 路由 rendering,而 reverse mappings 則會為 text extraction 還原原始 source codepoints

 

請參閱: AssignSyntheticCodepointForGID GSUB lookup methods Indic shaping methods