PDFium Delphi Component Docs

AddShapedText Metodo

Componente: 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

Esegue lo shaping del testo Unicode tramite il motore di script nativo di Windows, carica una volta il font di sistema selezionato e scrive glifi posizionati esplicitamente tramite l'API dei font CID Type 2 di PDFium

ptdAuto risolve la direzione di base del paragrafo dal primo carattere forte, mentre le modalità esplicite da sinistra a destra e da destra a sinistra sono disponibili per il layout controllato dall'applicazione

Unicode semantics

Ogni glifo riceve un'associazione CID limitata e una voce ToUnicode generata, incluse le associazioni con consapevolezza dei cluster per legature e forme contestuali

L'oggetto di testo trasporta la stringa logica originale in ActualText, così i consumatori conformanti possono recuperare l'ordine di lettura logico anche quando la geometria dei glifi posizionati è contenuto bidi in ordine visivo

TPdf.Text segue l'ordine di estrazione bidi fisico di PDFium e può quindi differire dall'ordine di input logico originale

Shaping result

TPdfShapedText restituisce i byte del font, la larghezza totale, i conteggi di glifi e caratteri logici e le run visive contenenti livelli bidi, ID di glifo, avanzamenti, offset e cluster sorgente

Usa ShapePdfText per lo shaping senza modificare un documento, oppure istanzia TPdfUniscribeTextShaper con TPdfTextShapingOptions quando sono richiesti budget espliciti di caratteri, glifi e run

Safety and performance

I limiti di input, glifi e run falliscono in modo chiuso prima dell'allocazione non limitata

Le run che condividono una baseline vengono emesse come un unico oggetto di testo e le posizioni dei glifi vengono generate in tempo lineare

Il metodo richiede le esportazioni PDFium di font CID Type 2, codici carattere, posizioni, contenuto marcato e rigenerazione del contenuto

See Also

AddText, GetStructuredText, GenerateLayout