|
Controls HotPDF's opt-in producer-side shaping, positioning, localized-form, and script-preprocess pipeline. The default empty set keeps output byte-stable; each flag enables a specific GSUB, GPOS, or script-level path when a Unicode font and text run need it
Delphi syntax
property ShapingFeatures: THPDFShapingFeatures read FShapingFeatures write FShapingFeatures;
type THPDFShapingFeature = (sfArabicGSUB, sfStandardLigatures, sfContextualLigatures, sfStylisticAlternates, sfIndicShaping, sfContextualAlternates, sfKerning, sfMarkPositioning, sfTibetanShaping, sfMongolianShaping, sfIndicGSUB, sfLocalizedForms, sfVerticalKerning, sfThaiLaoReorder, sfHebrewReorder, sfJavaneseShaping, sfMarkToLigature, sfCursiveAttachment, sfDiscretionaryLigatures, sfHistoricalLigatures, sfSmallCaps, sfCapsToSmallCaps, sfOldstyleFigures, sfLiningFigures, sfSuperscripts, sfSubscripts, sfOrdinals, sfFractions, sfTaiVietReorder, sfMeeteiMayekShaping, sfDistancePositioning, sfKhmerShaping, sfMyanmarShaping, sfVerticalAlternates, sfCaseSensitiveForms, sfSlashedZero, sfProportionalFigures, sfTabularFigures, sfScientificInferiors, sfNumerators, sfDenominators);
Covered APIs
| API | Usage notes |
sfArabicGSUB | Enables native Arabic GSUB contextual shaping by applying the registered font's init, medi, fina, isol, rlig, calt, and rclt lookups, then emitting the resulting glyph IDs through synthetic codepoints when needed |
sfStandardLigatures | Applies standard Latin ligature substitutions such as fi, fl, ffi, and ffl when the font exposes the liga feature |
sfContextualLigatures | Adds contextual ligature substitution through clig after the standard ligature pass |
sfStylisticAlternates | Reserves the shaping flag for caller-controlled stylistic alternate workflows that query alternate glyphs explicitly |
sfIndicShaping | Runs the conservative Indic syllable reorder path before text output without forcing full GSUB feature application |
sfContextualAlternates | Applies required contextual alternates through the rclt-capable GSUB contextual lookup path |
sfKerning | Enables GPOS pair-kerning adjustments during left-to-right Unicode text emission |
sfMarkPositioning | Enables GPOS Mark-to-Base and Mark-to-Mark offsets for combining marks |
sfTibetanShaping | Enables Tibetan GSUB shaping and synthetic-codepoint emission for shaped Tibetan glyph IDs |
sfMongolianShaping | Enables Mongolian positional-form shaping through joining analysis and font GSUB lookups |
sfIndicGSUB | Runs the Indic reorder and GSUB feature chain, then emits shaped glyph IDs through synthetic codepoints |
sfLocalizedForms | Applies GSUB locl localized-form substitutions under the active script and language |
sfVerticalKerning | Enables GPOS vkrn and vpal vertical advance adjustment in the vertical text output path |
sfThaiLaoReorder | Enables Thai/Lao SARA AM decomposition and tone-mark ordering before cmap-to-GID mapping |
sfHebrewReorder | Orders Hebrew niqqud and points by canonical combining class before RTL output and mark placement |
sfJavaneseShaping | Enables Javanese pre-base vowel-sign reorder before glyph mapping |
sfMarkToLigature | Enables GPOS Mark-to-Ligature placement for combining marks attached to ligature components |
sfCursiveAttachment | Enables GPOS cursive entry/exit anchor alignment for glyph runs shaped by the font's native Arabic GSUB lookups |
sfDiscretionaryLigatures | Applies discretionary ligature substitutions through the OpenType dlig feature |
sfHistoricalLigatures | Applies historical ligature substitutions through the OpenType hlig feature |
sfSmallCaps | Applies lower-case to small-cap substitutions through the OpenType smcp feature |
sfCapsToSmallCaps | Applies capital-to-small-cap substitutions through the OpenType c2sc feature |
sfOldstyleFigures | Applies oldstyle digit substitutions through the OpenType onum feature |
sfLiningFigures | Applies lining digit substitutions through the OpenType lnum feature |
sfSuperscripts | Applies superscript glyph substitutions through the OpenType sups feature |
sfSubscripts | Applies subscript glyph substitutions through the OpenType subs feature |
sfOrdinals | Applies ordinal glyph substitutions through the OpenType ordn feature |
sfFractions | Applies numerator, fraction slash, and denominator substitutions through the OpenType frac feature |
sfTaiVietReorder | Enables Tai Viet visual-order-left vowel and mark ordering before cmap-to-GID mapping |
sfMeeteiMayekShaping | Enables Meetei Mayek Brahmic-style syllable reorder before cmap-to-GID mapping |
sfDistancePositioning | Applies GPOS distance positioning for complex-script spacing lookups beyond plain kerning |
sfKhmerShaping | Enables Khmer pre-base vowel and cluster reorder before cmap-to-GID mapping |
sfMyanmarShaping | Enables Myanmar kinzi, pre-base vowel, medial, and mark reorder before cmap-to-GID mapping |
sfVerticalAlternates | Applies vertical alternate substitutions through the OpenType vert and vrt2 features |
sfCaseSensitiveForms | Applies case-sensitive punctuation and symbol substitutions through the OpenType case feature |
sfSlashedZero | Applies slashed-zero digit substitutions through the OpenType zero feature |
sfProportionalFigures | Applies proportional digit-width substitutions through the OpenType pnum feature |
sfTabularFigures | Applies tabular digit-width substitutions through the OpenType tnum feature |
sfScientificInferiors | Applies scientific inferior glyph substitutions through the OpenType sinf feature |
sfNumerators | Applies numerator glyph substitutions through the OpenType numr feature |
sfDenominators | Applies denominator glyph substitutions through the OpenType dnom feature |
Usage notes
Use this property after RegisterUnicodeTTF and before writing text. Choose sfLocalizedForms for locl substitutions, feature-family flags for typographic alternates and figure styles, sfKerning, sfVerticalKerning, and sfDistancePositioning for GPOS advance adjustment, sfMarkPositioning, sfMarkToLigature, and sfCursiveAttachment for mark or cursive attachment, sfIndicGSUB for full Indic GSUB shaping, and the script-specific preprocess flags for Thai/Lao, Khmer, Myanmar, Tai Viet, Meetei Mayek, Hebrew, and Javanese text
See also: Automatic Shaping Pipeline GPOS methods Indic shaping methods Script shaping preprocess methods
|