THPDFPage.AddRichTextField Method

 

THPDFPage.AddRichTextField

THPDFPage

 

Topo

Adiciona um widget de texto rich-text AcroForm PDF 1.5+ (ISO 32000-1 12.7.4.3 + Annex L) à página atual. O widget transporta o fallback standard de texto simples /V + /DV usado por leitores que não analisam rich text, mais o novo corpo XHTML rich-text /RV e as entradas de estilo predefinido /DS que o Acrobat e o Foxit consomem diretamente para renderizar texto com estilo. O bit RichText /Ff (26) é aplicado automaticamente

 

Delphi syntax:

procedure AddRichTextField(const FieldName, InitialValue: AnsiString; const RichValue, DefaultStyle: AnsiString; Rectangle: TRect; MaxLen: Integer = 0; Flags: THPDFFormFieldFlags = []);

 

C++ syntax:

void AddRichTextField(const AnsiString& FieldName, const AnsiString& InitialValue, const AnsiString& RichValue, const AnsiString& DefaultStyle, const TRect& Rectangle, int MaxLen = 0, THPDFFormFieldFlags Flags = THPDFFormFieldFlags());

 

Descrição

O widget é emitido como um campo de formulário Tx com /FT /Tx, /DA (/Helv 12 Tf 0 0 0 rg), /Ff com o bit RichText definido, o InitialValue fornecido como /V e /DV, RichValue como /RV e DefaultStyle como /DS. InitialValue, RichValue e DefaultStyle detetam automaticamente conteúdo multibyte e mudam para codificação de string hexadecimal UTF-16BE quando necessário (correspondendo ao comportamento existente de AddTextField para campos de texto simples internacionais)

A renderização rich-text acontece no leitor: Acrobat / Foxit / Edge / Chrome PDF viewer analisam todos /RV quando o bit RichText está ativo e recolhem fallbacks de fontes Unicode do sistema, pelo que conteúdo CJK, cirílico, árabe e latino acentuado é mostrado corretamente sem o HotPDF incorporar uma fonte CID em /DR Resources. Para o caminho AutoFormAppearances do próprio HotPDF, o ramo placeholder empty-AP para texto multibyte permanece em vigor (a tarefa v2.56.0+); leitores conscientes de rich-text ignoram esse AP e renderizam diretamente a partir de /RV

 

FieldName - o nome parcial /T do campo de formulário PDF (tem de ser único dentro do respetivo pai). Espaços e bytes não ASCII são aceites; caracteres não ASCII acionam codificação UTF-16BE na string /T emitida

InitialValue - string de texto simples PDF escrita em /V e /DV. Leitores que não analisam /RV recorrem a este valor para apresentação

RichValue - PDF 1.7 Annex L tagged XHTML body (the most portable form starts with <?xml version="1.0"?> and an XHTML <body> root carrying the xfa:contentType="text/html" namespace attribute). Inline styling uses <span style="..."> with CSS properties (font-family, font-size, font-weight, font-style, color, etc.).

DefaultStyle - string de estilo semelhante a CSS aplicada aos caracteres que o utilizador escreve no preenchimento quando não existe estilo por caractere em /RV. Exemplo: 'font: 12pt Helvetica; color: #000000'

Rectangle - o /Rect do widget nas coordenadas de ecrã do HotPDF (origem no canto superior esquerdo); a YProjection acontece automaticamente quando o rect é convertido para o user space PDF

MaxLen - optional; when greater than zero, emits a /MaxLen entry capping the user-entered character count. Defaults to 0 (no limit).

Flags - opcional; quaisquer flags adicionais do campo para OR em /Ff para além do bit RichText adicionado automaticamente. Flags extras típicas: ffMultiline para corpos rich-text multiparágrafo, ffReadOnly para texto formatado apenas para visualização. A flag ffRichText é sempre adicionada para que o chamador não precise incluí-la

 

Code Example

// Rich-text Tx widget with bold + italic markup
var
  Rich, DS: AnsiString;
  R: TRect;
begin
  HPDF.BeginDoc;

  Rich :=
    '<?xml version="1.0"?>' +
    '<body xmlns="http://www.w3.org/1999/xhtml" ' +
    'xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" ' +
    'xfa:contentType="text/html">' +
    '<p style="font-family:Helvetica;font-size:12pt">' +
    '<span style="font-weight:bold">Bold</span> and ' +
    '<span style="font-style:italic">italic</span> text.' +
    '</p></body>';
  DS := 'font: 12pt Helvetica; color: #000000';
  R.Left := 60; R.Top := 60; R.Right := 280; R.Bottom := 100;

  HPDF.CurrentPage.AddRichTextField(
    'Biography', 'Plain biography text', Rich, DS, R);

  HPDF.EndDoc;
end;

 

See Also

AddTextField, AutoFormAppearances, Version, AcroForm Support