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