Donnez vie à vos documents numériques !
 

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

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44175
    PROCPA
    Membre

    Bonjour,

    je suis débutante j’utilise adobe acrobat pro 9.2 sur windows , et j’ai besoin de limiter la taille d’un champ selon le texte saisi à l’intérieur,sur ce forum j’ai  trouvé un sujet similaire mais le champ ne grandit qu’au delà de 10 caractères. Pour mon cas je veux qu’il se redimensionne au delà de trois caractères.

    Voici le code qui a été posté par alex :

    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.

    __________________________

    Merci de m’aider c’est urgent. :bonjour:

Affichage de 13 réponses de 1 à 13 (sur un total de 13)
  • Auteur
    Réponses
  • #53036
    Merlin
    Maître des clés

    Bonjour et bienvenue,

    as tu essayé de remplacer le 10 par un 3 ?

    newlarg=(lg.length)*larg/3;

    :Smiley01:

    #53037
    PROCPA
    Membre

    Merci de m’avoir répondu,

    Oui j’ai remplacé le 10 par un 3, et sa n’a pas marché,le champ ne se redimensionne pas.

    #53038
    Merlin
    Maître des clés

    Je viens de tester, ce script fonctionne dès qu’un caractère est saisi dans MonBeauChampQuiGrandit, peu importe la quantité.
    :Euuuh:

    #53039
    PROCPA
    Membre

    je pense que je me suis trompée en mettant le champ Reference, :doute: :doute:
    Pouvez vous me dire s’il vous plait, comment procéder pour ce champ, comment est ce que je dois faire
    pour ce champ??

    Merciiiiiiiiiiiiiiii d’avance :priere: :priere:

    #53040
    Merlin
    Maître des clés

    Exemple ci-joint.
    :Smiley01:

    [attachment deleted by admin]

    #53041
    PROCPA
    Membre

    Merci pour le  fichier, j’ai testé, mais ce que j’ai remarqué c’est que Reference ne change pas de taille :mur: :mur:,  c’est juste le champ « MonBeauChampQuiGandit » qui prend sa place :doute:, moi j’ai besoin que le champ référence soit à la taille du texte que j’ecris dans mon beauchampquiGrandit :jerisjaune:.

    Merciiiiiiiiiii

    #53042
    Merlin
    Maître des clés

    Je ne suis pas certain que ce soit faisable avec Acrobat*, Designer et ses formulaires « dynamiques » me parait plus approprié :
    http://abracadabrapdf.net/articles.php?lng=fr&pg=640

    :idee:

    * enfin si, c’est faisable avec Acrobat, mais ça ne fonctionnera pas forcément avec Adobe Reader…

    #53043
    PROCPA
    Membre

    Merci beaucoup Merlin :Smiley01:
    le truc c’est que je suis obligé de travailler avec acrobat adobe pro ,mais je vais essayer encore de changer le script  :doute:

    merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

    #53044
    alex
    Membre

    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.

    #53045
    Merlin
    Maître des clés

    Impressionnant !
    :bravo:

    [attachment deleted by admin]

    #53046
    Merlin
    Maître des clés

    Je viens de croiser le même sujet sur le forum AUC, mais je n’ai pas testé la réponse (qui a l’air intéressante elle aussi) :
    http://answers.acrobatusers.com/How-set-text-field-auto-adjust-height-multi-line-entry-q21585.aspx

    En espérant que ça sera utile.
    :bonjour:

    #53047
    alex
    Membre

    Ces scripts ajustent la hauteur des champs, pas la largeur. Mais ça peut être utile.

    #53048
    Merlin
    Maître des clés

    Il n’y a plus qu’a mixer ce script et le tien pour pouvoir ajuster dans les deux sens…
    :Smiley08:

Affichage de 13 réponses de 1 à 13 (sur un total de 13)
  • Vous devez être connecté pour répondre à ce sujet.