DrawShapedText
Text
Beschreibung
Diese Seite beschreibt DrawShapedText in PDFlibPas im Themenbereich „Text". API-Namen, Parameter, Klassennamen, Dateinamen und literale Werte bleiben unverändert, damit sie zur Delphi-Bibliothek und den DLL-Einstiegspunkten passen.
Prüfen Sie Syntax, Parameter und Rückgabewerte, bevor Sie die Funktion aufrufen.
Syntax
Delphi
Function TPDFlib.DrawShapedText(XPos, YPos: Double; Const FontName: WideString; Size: Double; Const Text: WideString; Options: Integer): Integer;
Parameter
XPos/YPos positionieren den Text in Seiteneinheiten. FontName benennt einen installierten Schriftschnitt (z. B. Arial). Size ist die Textgröße in Punkt. Text ist die zu formende und zu zeichnende Zeichenfolge. Options Bit 0 wählt eine Basis-Absatzrichtung von rechts nach links; setzen Sie dieses Bit für arabischen oder hebräischen Text.
Rückgabewerte
Gibt 1 bei Erfolg zurück; 0, wenn die Shaping-Engine nicht verfügbar ist, der Schriftschnitt nicht installiert ist oder Text leer ist.
Hinweise
Der Text wird vor dem Zeichnen mit der System-Shaping-Engine geformt, sodass arabische Buchstaben ihre korrekten Wortanfangs-, Medial-, End- oder Einzelformen annehmen, obligatorische Ligaturen wie Lam-Alef angewendet werden und Rechts-nach-links-Läufe in der richtigen visuellen Reihenfolge ausgegeben werden. Die geformten Glyphen werden über einen Begleit-Type0-Font (Identity-H) per Glyphenindex geschrieben, was Formen, die keinen eigenen Zeichencode haben, korrekt darstellt. Pro Schriftschnitt wird ein Begleitfont erstellt und bei späteren Aufrufen im selben Dokument wiederverwendet. Beim Speichern des Dokuments wird das eingebettete Schriftprogramm auf die im Dokument angezeigten Glyphen reduziert, mit echten glyphenspezifischen Breiten und einer ToUnicode-Zuordnung, die jede geformte Glyphe zurück zu ihren Quellzeichen übersetzt – so gibt kopierter oder extrahierter Text aus der Ausgabe die ursprüngliche Zeichenfolge inklusive Ligaturen zurück. Die Positionierung ist exakt: Jeder Glyphenvorschub aus der Shaping-Engine wird in den Inhaltsstrom geschrieben, sodass das gedruckte Layout mit der geformten Messung aus GetShapedTextWidth übereinstimmt.