Donnez vie à vos documents numériques !
 

Répondre à : Taille d’une zone de texte variable en fonction de son contenu

abracadabraPDF Forums PDF – Général Taille d’une zone de texte variable en fonction de son contenu Répondre à : Taille d’une zone de texte variable en fonction de son contenu

#50184
alex
Participant

Sur la page, j’ai créé deux champs texte:
Le champ “Reference”, caché en lecture seule qui est placé sur la future zone de saisie.
Le champ “MonBeauChampQuiGrandit”, future zone de saisie n’importe où, elle sera redimensionnée par le script pour couvrir le champ précédant.
En ouverture de page on ajoute le script suivant:

fsaisie=this.getField(“MonBeauChampQuiGrandit”);
fref=this.getField(“Reference”);
fsaisie.rect=fref.rect;
lg=fsaisie.value;
Dans le champ “MonBeauChampQuiGrandit”, onglet “Format>Personnalisé>Format de touche personnalisé” j’ai saisi le script suivant:
if(!event.willCommit)
{
console.clear();
rectangle=fref.rect;
//calcul de la largeur de référence
larg=rectangle[2]-rectangle[0];
//lecture du contenu du champ
lg=this.event.value;
//calcul de la nouvelle abscisse, il faudrait ajouter une limite
newlarg=(lg.length)*larg/10;
rectangle[2]=Math.max((rectangle[0]+newlarg),(rectangle[0]+larg));
//Pour les curieux:
console.println(“Chaîne de caractères=”+lg);
console.println(“Longueur chaine de caractères=”+lg.length);
console.println(“Longueur variable du champ de saisie=”+newlarg);
console.println(“Longueur mini du champ de saisie=”+larg);
//On dimensionne si nécessaire
if(event.change)
{
fsaisie.rect=rectangle;
}
}

Au delà de 10 caractères le champ est redimensionné proportionnellement à la longueur de la saisie. On peut faire mieux mais c’est déjà ça.