THPDFPage.AddRichTextField Method

 

THPDFPage.AddRichTextField

THPDFPage

 

Överst

Lägger till en PDF 1.5+ AcroForm-rich-text-textwidget (ISO 32000-1 12.7.4.3 + Annex L) på aktuell sida. Widgeten bär standardfallbacken /V + /DV för plain text som används av läsare som inte parsar rich text, plus de nya posterna /RV rich-text XHTML body och /DS default style som Acrobat och Foxit konsumerar direkt för att rendera formaterad text. RichText-biten (26) i /Ff OR:as in automatiskt.

 

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

 

Beskrivning

Widgeten skrivs som ett Tx-formulärfält med /FT /Tx, /DA (/Helv 12 Tf 0 0 0 rg), /Ff med RichText-biten satt, det angivna InitialValue som både /V och /DV, RichValue som /RV och DefaultStyle som /DS. InitialValue, RichValue och DefaultStyle identifierar automatiskt flerbytesinnehåll och byter vid behov till hex-strängkodning i UTF-16BE (på samma sätt som befintliga AddTextField gör för internationella fält med vanlig text)

Rich-text-rendering sker i läsaren: Acrobat / Foxit / Edge / Chrome PDF viewer parsar alla /RV när RichText-biten är på och hämtar Unicode-fontfallbacks från systemet, så CJK-, Cyrillic-, Arabic- och accentuerat Latin-innehåll visas korrekt utan att HotPDF bäddar in en CID-font i /DR Resources. För HotPDF:s egen AutoFormAppearances-väg ligger placeholder-grenen med tom AP för flerbytetext kvar (v2.56.0+-uppgiften); rich-text-medvetna läsare ignorerar denna AP och renderar direkt från /RV.

 

FieldName - PDF-formulärfältets partiella /T-namn (måste vara unikt inom sin parent). Mellanslag och icke-ASCII-byte accepteras; icke-ASCII utlöser UTF-16BE-kodning på den emitterade /T-strängen.

InitialValue - plain-text PDF-textsträng skriven till /V och /DV. Läsare som inte parsar /RV faller tillbaka till detta värde för visning.

RichValue - PDF 1.7 Annex L taggad XHTML-kropp (den mest portabla formen börjar med <?xml version="1.0"?> och har en XHTML-rot <body> med namnrymdsattributet xfa:contentType="text/html"). Inbäddad formatering använder <span style="..."> med CSS-egenskaper (font-family, font-size, font-weight, font-style, color med flera)

DefaultStyle - CSS-liknande formatsträng som tillämpas på tecken som användaren skriver vid ifyllning när ingen teckenspecifik formatering finns i /RV. Exempel: 'font: 12pt Helvetica; color: #000000'

Rectangle - widgetens /Rect i HotPDF-skärmkoordinater (origo uppe till vänster); sker automatiskt när rect konverteras till PDF user space.

MaxLen - valfri; om värdet är större än noll skrivs en /MaxLen-post som begränsar antalet tecken användaren kan skriva. Standardvärdet är 0 (ingen gräns)

Flags - valfritt; extra fältflaggor att OR:a in i /Ff utöver den automatiskt tillagda RichText-biten. Typiska extra flaggor: ffMultiline för rich-text bodies med flera stycken, ffReadOnly för visningsbar formaterad text. Flaggan ffRichText läggs alltid till, så anroparen behöver inte inkludera den.

 

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;

 

Se även

AddTextField, AutoFormAppearances, Version, AcroForm Support