متدهای فاصله‌گذاری و قرارگیری GPOS در THotPDF

مرجع API برای THotPDF

 

متدهای THotPDF  شکل‌دهی خودکار  GSUB

پرس‌وجوهای GPOS مربوط به pair-kerning، contextual kerning، vertical kerning، cursive-anchor، mark-positioning و mark-to-ligature در HotPDF را به همراه پرچم‌های ShapingFeatures که آن‌ها را هنگام خروجی متن اعمال می‌کنند مستند می‌کند

 

Delphi syntax

function HasGPOSKerning: Boolean;

function GetGPOSPairAdjustment(FirstGID, SecondGID: Word): Integer;

function GetGPOSPairAdjustment(FirstGID, SecondGID: Word; out AXPlacement, AYPlacement, AYAdvance: Integer): Integer;

function GetGPOSContextualKernRun(const GIDs: array of Word): TArray<Integer>;

function HasGPOSVerticalKern: Boolean;

function GetGPOSVerticalKern(FirstGID, SecondGID: Word): Integer;

function GetGPOSMarkOffset(BaseGID, MarkGID: Word; out DX, DY: Integer): Boolean;

function GetGPOSMarkMarkOffset(BaseMarkGID, AttachMarkGID: Word; out DX, DY: Integer): Boolean;

function HasGPOSCursive: Boolean;

function GetGPOSCursiveAnchors(GID: Word; out EntryX, EntryY, ExitX, ExitY: Integer; out HasEntry, HasExit: Boolean): Boolean;

function GetGPOSMarkToLigatureOffset(LigGID: Word; ComponentIndex: Integer; MarkGID: Word; out DX, DY: Integer): Boolean;

function GetGPOSLigatureComponentCount(LigGID: Word): Integer;

function ApplyMarkToLigatureShaping(const Wide: UnicodeString): UnicodeString;

 

APIهای پوشش‌داده‌شده

APIیادداشت‌های استفاده
HasGPOSKerningگزارش می‌کند آیا فونت Unicode ثبت‌شده lookupهای GPOS kerning را در اختیار می‌گذارد
GetGPOSPairAdjustmentتنظیم advance با علامت برای یک جفت glyph مرتب را برمی‌گرداند و از طریق overload می‌تواند offsetهای X/Y آگاه از placement را هم برگرداند
GetGPOSContextualKernRunتنظیم‌های contextual kern را به ازای هر glyph با resolve کردن ruleهای positioning نوع 7 و نوع 8 GPOS روی یک glyph run برمی‌گرداند
HasGPOSVerticalKernگزارش می‌کند آیا فونت Unicode ثبت‌شده lookupهای kerning عمودی یا تنظیم proportional عمودی را در اختیار می‌گذارد
GetGPOSVerticalKernتنظیم vertical YAdvance با علامت را از lookupهای vkrn یا vpal برای یک جفت glyph مرتب برمی‌گرداند
GetGPOSMarkOffsetoffsetهای placement نوع Mark-to-Base را برای وصل کردن یک glyph mark به یک glyph پایه برمی‌گرداند
GetGPOSMarkMarkOffsetoffsetهای placement نوع Mark-to-Mark را برای چیدن یک glyph mark روی دیگری برمی‌گرداند
HasGPOSCursiveگزارش می‌کند آیا فونت Unicode ثبت‌شده lookupهای اتصال cursive در GPOS را در اختیار می‌گذارد
GetGPOSCursiveAnchorsanchorهای cursive ورودی و خروجی را برای یک glyph وقتی فونت یک rule اتصال cursive فراهم می‌کند برمی‌گرداند
GetGPOSMarkToLigatureOffsetoffsetهای placement نوع Mark-to-Ligature را برای وصل کردن یک mark به یک مؤلفه ligature مشخص برمی‌گرداند
GetGPOSLigatureComponentCountتعداد مؤلفه‌های mark-attachment ثبت‌شده برای یک glyph ligature را برمی‌گرداند تا فراخواننده بتواند پیش از فراخوانی GetGPOSMarkToLigatureOffset یک ComponentIndex معتبر انتخاب کند
ApplyMarkToLigatureShapingمالکیت مؤلفه ligature را ثبت می‌کند تا offsetهای mark-to-ligature بتوانند هنگام emit متن اعمال شوند
sfKerningتنظیم‌های pair-kerning مربوط به GPOS را هنگام emit متن Unicode چپ‌به‌راست فعال می‌کند
sfMarkPositioningoffsetهای Mark-to-Base و Mark-to-Mark در GPOS را برای نشانه‌های ترکیبی فعال می‌کند
sfMarkToLigatureoffsetهای Mark-to-Ligature در GPOS را برای نشانه‌هایی که به مؤلفه‌های منفرد ligature وصل شده‌اند فعال می‌کند
sfCursiveAttachmentهم‌ترازی anchorهای ورودی و خروجی cursive در GPOS را هنگام emit متن Unicode فعال می‌کند، از جمله runهای عربی راست‌به‌چپ که توسط sfArabicGSUB شکل داده شده‌اند
sfVerticalKerningتنظیم vertical advance در vkrn و vpal را در مسیر خروجی متن عمودی فعال می‌کند

 

یادداشت‌های استفاده

Pair kerning تنظیم‌های advance و placement با علامت را در یک em با واحد 1000 برمی‌گرداند. Contextual kerning lookupهای Type 7 و Type 8 را در سراسر یک glyph run resolve می‌کند. Mark positioning anchorهای Mark-to-Base، Mark-to-Mark و Mark-to-Ligature را پوشش می‌دهد. ApplyMarkToLigatureShaping داده‌های مؤلفه ligature در سطح run را که توسط sfMarkToLigature استفاده می‌شود آماده می‌کند. اتصال cursive یک anchor خروجی را روی یک glyph به یک anchor ورودی روی glyph بعدی تراز می‌کند و پس از آن‌که shaping بومی Arabic GSUB GIDهای contextual ویژه فونت را که آن anchorها را حمل می‌کنند تولید کرده باشد بیشترین فایده را دارد. مسیر emit این‌ها را فقط وقتی پرچم shaping متناظر فعال باشد اعمال می‌کند

 

همچنین ببینید: ShapingFeatures OpenType GSUB Engine Automatic Shaping Pipeline