THPDFPage.AddRichTextField Méthode

 

THPDFPage.AddRichTextField

THPDFPage

 

Haut

Ajoute à la page courante un widget de texte enrichi AcroForm PDF 1.5+ (ISO 32000-1 12.7.4.3 + Annexe L). Le widget contient le repli texte brut standard /V + /DV utilisé par les lecteurs qui ne parsèment pas le texte enrichi, ainsi que le nouveau corps XHTML de texte enrichi /RV et les entrées de style par défaut /DS qu’Acrobat et Foxit consomment directement pour rendre le texte mis en forme. Le bit RichText (26) de /Ff est combiné automatiquement

 

Syntaxe Delphi :

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

 

Syntaxe C++ :

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

 

Description

Le widget est émis comme un champ de formulaire Tx avec /FT /Tx, /DA (/Helv 12 Tf 0 0 0 rg), /Ff avec le bit RichText activé, le InitialValue fourni à la fois pour /V et /DV, RichValue pour /RV et DefaultStyle pour /DS. InitialValue, RichValue et DefaultStyle détectent automatiquement le contenu multioctet et basculent vers un encodage de chaîne hexadécimale UTF-16BE lorsque nécessaire, comme le comportement existant de AddTextField pour les champs texte internationaux

Le rendu du texte enrichi se fait dans le lecteur : Acrobat, Foxit, Edge et le visionneur PDF de Chrome analysent tous /RV lorsque le bit RichText est activé et récupèrent les polices de secours Unicode du système, de sorte que le contenu CJK, cyrillique, arabe et latin accentué s’affiche correctement sans qu’HotPDF n’intègre une police CID dans les ressources /DR. Pour le chemin AutoFormAppearances propre à HotPDF, la branche AP vide de remplacement pour le texte multioctet reste en place, la tâche de la v2.56.0+ ; les lecteurs compatibles avec le texte enrichi ignorent cet AP et rendent directement à partir de /RV

 

FieldName - le nom partiel /T du champ de formulaire PDF, qui doit être unique dans son parent. Les espaces et les octets non ASCII sont acceptés ; les caractères non ASCII déclenchent un encodage UTF-16BE sur la chaîne /T émise

InitialValue - chaîne texte PDF en clair écrite dans /V et /DV. Les lecteurs qui ne parsèment pas /RV reviennent à cette valeur pour l’affichage

RichValue - corps XHTML balisé de l’Annexe L de PDF 1.7, dont la forme la plus portable commence par <?xml version="1.0"?> et une racine XHTML <body> portant l’attribut d’espace de noms xfa:contentType="text/html". La mise en forme en ligne utilise <span style="..."> avec des propriétés CSS telles que font-family, font-size, font-weight, font-style, color, etc.

DefaultStyle - chaîne de style de type CSS appliquée aux caractères saisis par l’utilisateur au moment du remplissage lorsqu’aucun style par caractère n’est présent dans /RV. Exemple : 'font: 12pt Helvetica; color: #000000'

Rectangle - le /Rect du widget dans les coordonnées écran de HotPDF, avec origine en haut à gauche ; la projection Y s’effectue automatiquement lorsque le rectangle est converti dans l’espace utilisateur PDF

MaxLen - optionnel ; lorsqu’il est supérieur à zéro, émet une entrée /MaxLen qui limite le nombre de caractères saisis par l’utilisateur. La valeur par défaut est 0, sans limite

Flags - optionnel ; tous les drapeaux supplémentaires à combiner dans /Ff au-delà du bit RichText ajouté automatiquement. Drapeaux supplémentaires courants : ffMultiline pour les corps de texte enrichi à plusieurs paragraphes, ffReadOnly pour le texte mis en forme en affichage seul. Le drapeau ffRichText est toujours ajouté, donc l’appelant n’a pas à l’inclure

 

Exemple de code

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

 

Voir aussi

AddTextField, AutoFormAppearances, Version, Prise en charge AcroForm