DrawShapedText

Tekst

Opis

Ta strona opisuje DrawShapedText w PDFlibPas w obszarze tematycznym „Tekst”. Nazwy API, parametry, nazwy klas, pliki i wartości literalne pozostają niezmienione, tak jak widnieją w bibliotece Delphi i punktach wejścia DLL.

Przed wywołaniem funkcji należy zapoznać się ze składnią, parametrami i wartościami zwracanymi

Składnia

Delphi

Function TPDFlib.DrawShapedText(XPos, YPos: Double; Const FontName: WideString; Size: Double; Const Text: WideString; Options: Integer): Integer;

Parametry

XPos/YPos określają pozycję tekstu w jednostkach strony. FontName wskazuje zainstalowany krój czcionki (np. Arial). Size to rozmiar tekstu w punktach. Text to ciąg znaków do kształtowania i rysowania. Bit 0 parametru Options wybiera kierunek bazowy akapitu od prawej do lewej; należy go ustawić dla tekstu arabskiego lub hebrajskiego.

Wartości zwracane

Zwraca 1 w przypadku powodzenia; 0, gdy aparat kształtowania jest niedostępny, krój czcionki nie jest zainstalowany lub Text jest pusty.

Uwagi

Tekst jest kształtowany przez systemowy aparat kształtowania przed rysowaniem, dzięki czemu litery arabskie przyjmują prawidłowe formy — początkową, środkową, końcową lub izolowaną; obowiązkowe ligatury takie jak lam-alef są stosowane, a fragmenty pisane od prawej do lewej wychodzą w prawidłowej kolejności wizualnej. Ukształtowane glify są zapisywane według indeksu glifu przez towarzyszącą czcionkę Type0 (Identity-H), co pozwala prawidłowo renderować formy niemające własnego kodu znaku. Jedna czcionka towarzysząca jest tworzona dla danego kroju i ponownie używana przez kolejne wywołania w tym samym dokumencie. Podczas zapisywania dokumentu osadzony program czcionki jest podzbiorem obejmującym tylko glify użyte w dokumencie, z rzeczywistymi szerokościami na glyf i mapą ToUnicode przekładającą każdy ukształtowany glyf z powrotem na znaki źródłowe — dzięki temu tekst kopiowany lub wyodrębniany z danych wyjściowych zwraca oryginalny ciąg, łącznie z ligaturami. Pozycjonowanie jest dokładne: każdy advance glifu z aparatu kształtowania jest zapisywany w strumieniu treści, więc układ wydruku odpowiada pomiarowi uzyskanemu z GetShapedTextWidth.