THPDFHeadlessRichTextRun
THPDFHeadlessRichTextRun = record
Text: UnicodeString;
FontFamily: UnicodeString;
FontFamilyCandidates: THPDFHeadlessRichTextFontFamilyCandidates;
FontStyle: THPDFHeadlessRichTextFontStyle;
FontSize: Double;
LineHeightKind: THPDFHeadlessRichTextLineHeightKind;
LineHeight: Double;
LetterSpacingKind, WordSpacingKind: THPDFHeadlessRichTextSpacingKind;
LetterSpacing, WordSpacing: Double;
IsParagraphStrut: Boolean;
TextColor: array[0..2] of Double;
Underline, StrikeOut, ParagraphBreakBefore: Boolean;
Alignment: THPDFHeadlessTextAlignment;
class function Default: THPDFHeadlessRichTextRun; static;
end;
LineHeightKind tem por defeito hrlhLegacy; LineHeight tem por defeito zero, e IsParagraphStrut tem por defeito false
Um strut tem Text vazio, uma altura explícita e a face, o estilo e o tamanho reais do pai; tem de começar o parágrafo dele e contribui com métricas reais sem acrescentar texto a V
O comportamento explícito de line-height usa preparação partilhada para APs nativas tipadas e serialização RV
LetterSpacingKind e WordSpacingKind têm por defeito hrspLegacy com valores escritos zero; points e em explícitos mantêm a precisão Double com sinal e usam o layout delimitado de espaçamento CSS
Um run único de texto com estilo explícito; os tamanhos de tipos de letra têm de ser positivos e as cores têm de conter três componentes finitas de zero a um
FontFamily seleciona uma etiqueta configurada ao usar as APIs de famílias nomeadas; uma etiqueta vazia seleciona a família default delas, e o construtor existente de família única exige uma etiqueta vazia
FontFamilyCandidates retém opcionalmente uma lista ordenada de uma a dezasseis etiquetas de famílias fornecidas para o fallback de graphemes completos; Default devolve uma lista vazia, e uma lista não vazia exige FallbackFontFamilies ativo
ParagraphBreakBefore insere uma fronteira de parágrafos antes de um run posterior ao primeiro; o V plain contém um carriage return nessa fronteira
Alignment seleciona o alinhamento do parágrafo no primeiro run dele, incluindo um primeiro run vazio, e nos runs com ParagraphBreakBefore; os restantes runs inline e quebras de linha explícitas mantêm esse alinhamento