THPDFPage.AddRichTextField Methode

 

THPDFPage.AddRichTextField

THPDFPage

 

Boven

Voegt aan de huidige pagina een AcroForm-tekstwidget voor rijke tekst toe voor PDF 1.5+ (ISO 32000-1 12.7.4.3 + Annex L). De widget bevat de standaard platte-tekstfallback /V + /DV die wordt gebruikt door lezers die rijke tekst niet parsen, plus de nieuwe /RV XHTML-body voor rijke tekst en de /DS default-stylevermeldingen die Acrobat en Foxit rechtstreeks gebruiken om gestileerde tekst te renderen. De /Ff RichText-bit (26) wordt automatisch OR'd

 

Delphi-syntaxis:

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

 

C++-syntaxis:

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

 

Beschrijving

De widget wordt uitgegeven als een Tx-formulierveld met /FT /Tx, /DA (/Helv 12 Tf 0 0 0 rg), /Ff met de RichText-bit ingesteld, de opgegeven InitialValue als zowel /V als /DV, RichValue als /RV en DefaultStyle als /DS. InitialValue, RichValue en DefaultStyle detecteren automatisch meerbyte-inhoud en schakelen zo nodig over op UTF-16BE-hexstringcodering, in lijn met het bestaande AddTextField-gedrag voor internationale platte-tekstvelden

Rijke-tekstweergave gebeurt in de lezer: Acrobat / Foxit / Edge / Chrome PDF viewer parsen allemaal /RV wanneer de RichText-bit aan staat en halen Unicode-lettertypefallbacks uit het systeem, zodat CJK-, Cyrillische, Arabische en geaccentueerde Latijnse inhoud correct wordt weergegeven zonder dat HotPDF een CID-lettertype in /DR Resources insluit. Voor HotPDF's eigen AutoFormAppearances-pad blijft de placeholder van de lege AP-branch voor meerbyte-tekst bestaan (de v2.56.0+-taak); rijke-tekstbewuste lezers negeren die AP en renderen rechtstreeks vanaf /RV

 

FieldName - de partiƫle naam /T van het PDF-formulierveld (moet uniek zijn binnen de ouder). Spaties en niet-ASCII-bytes zijn toegestaan; niet-ASCII veroorzaakt UTF-16BE-codering op de uitgegeven /T-string

InitialValue - platte-tekst PDF-tekenreeks die naar /V en /DV wordt geschreven. Lezers die /RV niet parsen vallen voor weergave terug op deze waarde

RichValue - gelabelde XHTML-body uit PDF 1.7 Annex L (de meest draagbare vorm begint met <?xml version="1.0"?> en een XHTML <body>-root met het namespace-attribuut xfa:contentType="text/html"). Inline-opmaak gebruikt <span style="..."> met CSS-eigenschappen (font-family, font-size, font-weight, font-style, color, enz.)

DefaultStyle - CSS-achtige stijltekenreeks die wordt toegepast op tekens die de gebruiker tijdens het invullen typt wanneer in /RV geen stijl per teken aanwezig is. Voorbeeld: 'font: 12pt Helvetica; color: #000000'

Rectangle - de /Rect van de widget in HotPDF-schermcoƶrdinaten (oorsprong linksboven); de YProjectie gebeurt automatisch wanneer de rechthoek naar de PDF user space wordt omgezet

MaxLen - optioneel; wanneer groter dan nul, wordt een /MaxLen-invoer uitgegeven die het door de gebruiker ingevoerde tekenaantal begrenst. Standaard 0 (geen limiet)

Flags - optioneel; extra veldvlaggen die naast de automatisch toegevoegde RichText-bit in /Ff moeten worden OR'd. Typische extra vlaggen: ffMultiline voor meerregelige rijke-tekstlichamen, ffReadOnly voor alleen-weergave-opgemaakte tekst. De ffRichText-vlag wordt altijd toegevoegd, zodat de aanroeper die niet hoeft op te nemen

 

Codevoorbeeld

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

 

Zie ook

AddTextField, AutoFormAppearances, Version, AcroForm-ondersteuning