THPDFPage.AddRichTextField Method

 

THPDFPage.AddRichTextField

THPDFPage

 

Sus

Adaugă pe pagina curentă un widget AcroForm de text bogat PDF 1.5+ (ISO 32000-1 12.7.4.3 + Annex L). Widgetul poartă fallback-ul standard de text simplu /V + /DV folosit de cititoarele care nu interpretează rich text, plus noul corp XHTML rich-text /RV și intrările de stil implicit /DS pe care Acrobat și Foxit le consumă direct pentru a reda textul stilizat. Bitul RichText din /Ff (26) este OR-uit automat

 

Sintaxă Delphi:

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

 

Sintaxă C++:

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

 

Descriere

Widgetul este emis ca un câmp de formular Tx cu /FT /Tx, /DA (/Helv 12 Tf 0 0 0 rg), /Ff cu bitul RichText setat, InitialValue furnizat ca atât /V cât și /DV, RichValue ca /RV și DefaultStyle ca /DS. InitialValue, RichValue și DefaultStyle detectează automat conținutul pe mai mulți octeți și trec la codarea UTF-16BE hex-string când este nevoie, în același fel ca comportamentul existent al AddTextField pentru câmpurile internaționale de text simplu

Redarea rich-text are loc în cititor: Acrobat / Foxit / Edge / Chrome PDF viewer interpretează toate /RV atunci când bitul RichText este activ și preiau fallback-urile de font Unicode din sistem, astfel încât conținutul CJK, chirilic, arab și latin accentuat se afișează corect fără ca HotPDF să încorporeze un font CID în resursele /DR. Pentru propria rută AutoFormAppearances a HotPDF, ramura de rezervă empty-AP pentru text pe mai mulți octeți rămâne în vigoare (sarcina v2.56.0+); cititoarele care știu rich text ignoră acel AP și redau direct din /RV

 

FieldName - numele parțial /T al câmpului de formular PDF (trebuie să fie unic în cadrul părintelui său). Spațiile și octeții non-ASCII sunt acceptați; non-ASCII declanșează codarea UTF-16BE pentru șirul /T emis

InitialValue - șir PDF de text simplu scris în /V și /DV. Cititoarele care nu interpretează /RV revin la această valoare pentru afișare

RichValue - corp XHTML etichetat din PDF 1.7 Annex L (forma cea mai portabilă începe cu <?xml version="1.0"?> și un rădăcină XHTML <body> care poartă atributul de spațiu de nume xfa:contentType="text/html"). Stilizarea inline folosește <span style="..."> cu proprietăți CSS (font-family, font-size, font-weight, font-style, color etc.)

DefaultStyle - șir de stil asemănător CSS aplicat caracterelor pe care utilizatorul le tastează la completare când în /RV nu există stil per caracter. Exemplu: 'font: 12pt Helvetica; color: #000000'

Rectangle - /Rect al widgetului în coordonate de ecran HotPDF (origine în colțul stânga-sus); proiecția pe axa Y se face automat când dreptunghiul este convertit în spațiul utilizator PDF

MaxLen - opțional; când este mai mare decât zero, emite o intrare /MaxLen care limitează numărul de caractere introduse de utilizator. Valoarea implicită este 0 (fără limită)

Flags - opțional; orice steaguri suplimentare de câmp care se OR-ează în /Ff dincolo de bitul RichText adăugat automat. Steaguri suplimentare tipice: ffMultiline pentru corpuri rich-text cu mai multe paragrafe, ffReadOnly pentru text formatat doar pentru afișare. Steagul ffRichText este adăugat întotdeauna, astfel încât apelantul nu trebuie să-l includă

 

Exemplu de cod

// 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