THPDFPage.AddRichTextField Method

 

THPDFPage.AddRichTextField

THPDFPage

 

Vrh

Dodaje PDF 1.5+ AcroForm rich-text text widget (ISO 32000-1 12.7.4.3 + Annex L) na trenutnu stranicu. Widget nosi standardni /V + /DV plain-text fallback koji koriste čitači što ne parsiraju rich text, plus novi /RV rich-text XHTML body i /DS default style unose koje Acrobat i Foxit direktno koriste za prikaz stilizovanog teksta. /Ff RichText bit (26) se automatski OR-uje

 

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());

 

Opis

Widget se emituje kao Tx form polje sa /FT /Tx, /DA (/Helv 12 Tf 0 0 0 rg), /Ff sa postavljenim RichText bitom, prosleđenim InitialValue kao /V i /DV, RichValue kao /RV i DefaultStyle kao /DS. InitialValue, RichValue i DefaultStyle automatski otkrivaju višebajtni sadržaj i po potrebi prelaze na UTF-16BE heksadekadno string kodiranje (što odgovara postojećem ponašanju AddTextField za međunarodna polja običnog teksta)

Rich-text rendering se dešava u čitaču: Acrobat / Foxit / Edge / Chrome PDF viewer svi parsiraju /RV kada je RichText bit uključen i preuzimaju Unicode font fallback-ove iz sistema, tako da se CJK, ćirilični, arapski i akcentovani latinični sadržaj prikazuje ispravno bez HotPDF-ovog ugrađivanja CID fonta u /DR Resources. Za HotPDF-ovu sopstvenu AutoFormAppearances putanju placeholder empty-AP grana za višebajtni tekst ostaje na mestu (zadatak v2.56.0+); rich-text-aware čitači ignorišu taj AP i renderuju direktno iz /RV

 

FieldName - /T parcijalno ime PDF form polja (mora biti jedinstveno unutar svog roditelja). Razmaci i ne-ASCII bajtovi su prihvaćeni; ne-ASCII pokreće UTF-16BE kodiranje na emitovanom /T stringu

InitialValue - plain-text PDF tekst string upisan u /V i /DV. Čitači koji ne parsiraju /RV vraćaju se na ovu vrednost za prikaz

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 - CSS-like string stila primenjen na znakove koje korisnik unosi pri popunjavanju kada u /RV nije prisutan stil po znaku. Primer: 'font: 12pt Helvetica; color: #000000'

Rectangle - /Rect widgeta u HotPDF screen koordinatama (poreklo gore levo); YProjection se dešava automatski kada se pravougaonik pretvara u PDF user space

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

Flags - opciono; bilo koje dodatne field zastavice koje treba OR-ovati u /Ff pored automatski dodatog RichText bita. Tipične dodatne zastavice: ffMultiline za višepasusevne rich-text sadržaje, ffReadOnly za formatirani tekst samo za prikaz. ffRichText zastavica se uvek dodaje tako da pozivalac ne mora da je uključuje

 

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;

 

Vidi i

AddTextField, AutoFormAppearances, Version, AcroForm Support