THotPDF Shaping Subset and ToUnicode Mapping Methods

THotPDF API reference

 

THotPDF Methods  Auto Shaping  GSUB
IsRTLSyntheticGIDReports whether a glyph ID resolves to an RTL synthetic codepoint

Documents the glyph-subset and ToUnicode plumbing that makes shaped GIDs render and extract correctly

function GetSyntheticCodepointForGID(GID: Word): Word;

procedure MarkSyntheticCpRTL(Cp: Word);

function IsRTLSyntheticCp(Cp: Word): Boolean;

function IsRTLSyntheticGID(GID: Word): Boolean;

 

Delphi syntax

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;

 

Covered APIs

APIUsage notes
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

 

Usage notes

Use these APIs when a shaping workflow emits glyph IDs that are not reachable through a normal Unicode cmap entry. Synthetic codepoints route rendering through CIDToGIDMap, whilst reverse mappings recover the original source codepoints for text extraction

 

See also: AssignSyntheticCodepointForGID GSUB lookup methods Indic shaping methods