Donnez vie à vos documents numériques !
 

Répondre à : Redimension automatique de la taille d’un champ de texte. – RÉSOLU

abracadabraPDF Forums PDF – Général Redimension automatique de la taille d’un champ de texte. – RÉSOLU Répondre à : Redimension automatique de la taille d’un champ de texte. – RÉSOLU

#53044
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 rien, ce n’est pas nécessaire.
Dans le champ “MonBeauChampQuiGrandit”, onglet “Format>Personnalisé>Format de touche personnalisé” j’ai saisi le script suivant:

if(!this.event.willCommit)
{
console.clear();
lgbase=3;
fref=this.getField(“Reference”);
fsaisie=this.getField(“MonBeauChampQuiGrandit”);
fsaisie.readonly=false;
fsaisie.hidden=false;
fsaisie.rect=fref.rect;
fref.readonly=true;
fref.hidden=true;
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
ratio=(lgbase+lg.length)/lgbase;
newlarg=ratio*larg;
position=Math.max((rectangle[0]+newlarg),(rectangle[0]+larg));
pageBox=this.getPageBox();
console.println(“PageBox droit=”+pageBox[2]+” position =”+position);
rectangle[2]=Math.min(position,pageBox[2])
//Pour les curieux:
console.println(“Chaîne de caractères=”+lg);
console.println(“Longueur chaine de caractères=”+lg.length);
console.println(“ratio amplification=”+ratio);
console.println(“Longueur variable du champ de saisie=”+newlarg);
console.println(“Longueur mini du champ de saisie=”+larg);
//On dimensionne
fsaisie.rect=rectangle;
}
Faites des tests, ce n’est pas totalement abouti mais ça devrait se rapprocher de ce que vous voulez.
Fonctionne avec Adobe Reader 8,9,10, éviter le 7.