THPDFPage.AddRichTextField Method

 

THPDFPage.AddRichTextField

THPDFPage

 

Viršus

Prideda PDF 1.5+ AcroForm raiškiojo teksto widgetą (ISO 32000-1 12.7.4.3 + Annex L) į dabartinį puslapį. Widgetas turi standartinį /V + /DV paprasto teksto atsarginį variantą, kurį naudoja skaitytuvai, neskaitantys raiškiojo teksto, kartu su nauju /RV raiškiojo teksto XHTML turiniu ir /DS numatytojo stiliaus įrašais, kuriuos Acrobat ir Foxit tiesiogiai naudoja stiliuotam tekstui atvaizduoti. /Ff RichText bitas (26) automatiškai OR'intas

 

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

 

Aprašas

Widget išvedamas kaip Tx formos laukas su /FT /Tx, /DA (/Helv 12 Tf 0 0 0 rg), /Ff su įjungtu RichText bitu, pateiktu InitialValue kaip /V ir /DV, RichValue kaip /RV ir DefaultStyle kaip /DS. InitialValue, RichValue ir DefaultStyle automatiškai aptinka kelių baitų turinį ir, kai reikia, persijungia į UTF-16BE hex-string kodavimą (atitinkantį esamą AddTextField elgesį tarptautiniams paprasto teksto laukams)

Raiškaus teksto atvaizdavimas vyksta skaitytuvėje: Acrobat / Foxit / Edge / Chrome PDF skaitytuvai visi analizuoja /RV, kai įjungta RichText vėliava, ir pasiima Unicode šriftų atsargines kopijas iš sistemos, todėl CJK, kirilica, arabų ir lotyniškai ženklinta su diakritikais turinys rodomas teisingai, net nereikia HotPDF įterpti CID šrifto į /DR išteklius. HotPDF AutoFormAppearances kelyje laiko vietą empty-AP šakiai daug baitų tekstui (v2.56.0+), o rišliąsias žinias suprantantys skaitytuvai šią AP praleidžia ir atvaizduoja tiesiai iš /RV

 

FieldName - PDF formos lauko /T dalinis pavadinimas (turi būti unikalus savo tėvinėje struktūroje). Priimami tarpai ir ne-ASCII baitai; ne-ASCII duomenys suaktyvina UTF-16BE kodavimą įraše esamoje /T eilutėje

InitialValue - paprastos teksto PDF eilutė, rašoma į /V ir /DV. Skaitytuvai, kurie neanalizuoja /RV, atvaizduoja būtent šią reikšmę

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 style string applied to characters the user types at fill time when no per-character style is present in /RV. Example: 'font: 12pt Helvetica; color: #000000'.

Rectangle - valdiklio /Rect HotPDF ekrano koordinatėse (kairė viršūnė), YProjection automatiškai taikoma, kai stačiakampis konvertuojamas į PDF naudotojo koordinatines

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

Flags - neprivaloma; bet kokios papildomos lauko vėliavos, kurios sujungiamos su /Ff be automatiškai pridedamo RichText požymio. Dažnai naudojamos papildomos vėliavos: ffMultiline daug paragrafių turinčiam turtingam tekstui, ffReadOnly parodymui tik peržiūros režimu. ffRichText visada pridedama automatiškai, todėl iškviečiantysis jos papildomo pateikimo nereikalauja

 

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