PDFium Delphi Component Docs

AddShapedText Methode

Komponente: TPdf  ·  Units: PDFium, FPdfTextShaping

Syntax

function AddShapedText(const Text, Font: WString; FontSize: Single; X, Y: Double; out Shaped: TPdfShapedText; Direction: TPdfTextDirection = ptdAuto; Color: TColor = clBlack; Alpha: Byte = $FF): Boolean;

Description

Formt Unicode-Text über die native Windows-Skript-Engine, lädt die ausgewählte Systemschrift einmal und schreibt explizit positionierte Glyphen über die CID-Type-2-Schrift-API von PDFium

ptdAuto löst die Absatz-Grundrichtung aus dem ersten starken Zeichen auf, während explizite Links-nach-rechts- und Rechts-nach-links-Modi für anwendungsgesteuertes Layout verfügbar sind

Unicode-Semantik

Jede Glyphe erhält eine begrenzte CID-Zuordnung und einen generierten ToUnicode-Eintrag, einschließlich cluster-bewusster Zuordnungen für Ligaturen und kontextuelle Formen

Das Textobjekt trägt die ursprüngliche logische Zeichenkette in ActualText, sodass konforme Konsumenten die logische Lesereihenfolge selbst dann wiederherstellen können, wenn die positionierte Glyphengeometrie visuell geordneter Bidi-Inhalt ist

TPdf.Text folgt der physischen Bidi-Extraktionsreihenfolge von PDFium und kann daher von der ursprünglichen logischen Eingabereihenfolge abweichen

Formungsergebnis

TPdfShapedText liefert Schriftbytes, Gesamtbreite, Glyphen- und logische Zeichenanzahlen sowie visuelle Läufe mit Bidi-Ebenen, Glyphen-IDs, Vorschüben, Versätzen und Quellclustern

Verwenden Sie ShapePdfText für das Formen ohne Änderung eines Dokuments, oder instanziieren Sie TPdfUniscribeTextShaper mit TPdfTextShapingOptions, wenn explizite Zeichen-, Glyphen- und Laufbudgets erforderlich sind

Sicherheit und Leistung

Eingabe-, Glyphen- und Laufgrenzen schlagen vor unbegrenzter Zuweisung fehlgeschlossen zu

Läufe, die sich eine Grundlinie teilen, werden als ein Textobjekt ausgegeben, und Glyphenpositionen werden in linearer Zeit erzeugt

Die Methode erfordert die PDFium-Exporte für CID-Type-2-Schriften, Zeichencodes, Positionen, Marked Content und Inhaltsneugenerierung

See Also

AddText, GetStructuredText, GenerateLayout