Các phương thức GPOS về kerning và định vị của THotPDF

THotPDF API reference

 

THotPDF Methods  Auto Shaping  GSUB

Ghi tài liệu các truy vấn GPOS của HotPDF cho pair-kerning, contextual kerning, vertical kerning, cursive-anchor, mark-positioning và mark-to-ligature, cùng các cờ ShapingFeatures áp dụng chúng trong quá trình xuất văn bản

 

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 được bao phủ

APIGhi chú sử dụng
HasGPOSKerningBáo cho biết phông Unicode đã đăng ký có cung cấp các tra cứu GPOS kerning hay không
GetGPOSPairAdjustmentTrả về độ điều chỉnh advance có dấu cho một cặp glyph có thứ tự và cũng có thể trả về các độ lệch X/Y theo vị trí thông qua overload
GetGPOSContextualKernRunTrả về các điều chỉnh contextual kern theo từng glyph bằng cách giải quyết các quy tắc định vị GPOS Type 7 và Type 8 trên một glyph run
HasGPOSVerticalKernBáo cho biết phông Unicode đã đăng ký có cung cấp tra cứu vertical kerning hoặc vertical proportional adjustment hay không
GetGPOSVerticalKernTrả về điều chỉnh YAdvance có dấu từ các tra cứu vkrn hoặc vpal cho một cặp glyph có thứ tự
GetGPOSMarkOffsetTrả về các độ lệch vị trí Mark-to-Base để gắn một mark glyph vào một base glyph
GetGPOSMarkMarkOffsetTrả về các độ lệch vị trí Mark-to-Mark để chồng một mark glyph lên glyph khác
HasGPOSCursiveBáo cho biết phông Unicode đã đăng ký có cung cấp tra cứu GPOS cursive attachment hay không
GetGPOSCursiveAnchorsTrả về các anchor cursive vào và ra cho một glyph khi phông có quy tắc cursive attachment
GetGPOSMarkToLigatureOffsetTrả về các độ lệch vị trí Mark-to-Ligature để gắn một mark vào một thành phần ligature cụ thể
GetGPOSLigatureComponentCountReturns the number of mark-attachment components recorded for a ligature glyph so callers can choose a valid ComponentIndex before calling GetGPOSMarkToLigatureOffset
ApplyMarkToLigatureShapingGhi lại quyền sở hữu thành phần ligature để các độ lệch mark-to-ligature có thể được áp dụng khi phát văn bản
sfKerningBật điều chỉnh GPOS pair-kerning trong khi phát văn bản Unicode trái sang phải
sfMarkPositioningBật các độ lệch GPOS Mark-to-Base và Mark-to-Mark cho các combining mark
sfMarkToLigatureBật các độ lệch GPOS Mark-to-Ligature cho các mark gắn vào từng thành phần ligature riêng lẻ
sfCursiveAttachmentEnables GPOS cursive entry/exit anchor alignment during Unicode text emission, including right-to-left Arabic runs shaped by sfArabicGSUB
sfVerticalKerningBật điều chỉnh vertical advance GPOS vkrn và vpal trong đường xuất văn bản dọc

 

Ghi chú sử dụng

Pair kerning trả về các điều chỉnh advance và vị trí có dấu trong một em 1000 đơn vị. Contextual kerning giải quyết các tra cứu Type 7 và Type 8 trên toàn bộ glyph run. Mark positioning bao gồm các anchor Mark-to-Base, Mark-to-Mark và Mark-to-Ligature. ApplyMarkToLigatureShaping chuẩn bị dữ liệu thành phần ligature ở mức run mà sfMarkToLigature dùng. Cursive attachment căn chỉnh anchor ra của glyph này với anchor vào của glyph kế tiếp, hữu ích nhất sau khi shaping Arabic GSUB gốc đã tạo ra các glyph ID theo ngữ cảnh đặc thù của phông có chứa các anchor đó. Đường phát chỉ áp dụng các xử lý này khi cờ shaping tương ứng được bật

 

Xem thêm: ShapingFeatures OpenType GSUB Engine Automatic Shaping Pipeline