Donnez vie à vos documents numériques !
 

Renseigner la valeur par défaut d’un champ de texte avec un script

abracadabraPDF Forums PDF – Général Renseigner la valeur par défaut d’un champ de texte avec un script

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45942
    _seb_
    Participant

    Salut tout le forum.

    J’ai besoin de votre aide.
    Je souhaiterais renseigner la valeur par défaut de plusieurs champs de texte à l’aide d’un script.
    Est-ce possible ? :Euuuh:
    Merci de votre aide.
    _seb_

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

    bonjour,
    Oui c’est possible !
    Ai-je répondu à ta question ?  :geek:

    Il faut écrire this.getField(“xxx”).defaultValue =…
    @+
    :bonjour:

    #64705
    _seb_
    Participant

    :PouceHaut:  parfait. Merci.

    J’abuse un peu :Ooops: , est ce possible de le faire pour des cases d’option ? Comment différencier les cases d’option d’un même groupe ?

    Merci.

    _seb_

    #64706
    Merlin
    Maître des clés

    est ce possible de le faire pour des cases d’option ? Comment différencier les cases d’option d’un même groupe ?

    Pour les boutons-radios et les cases-à-cocher c’est la “valeur d’exportation” qui joue.

    Code:
    // Create a radio button field and sets its export values.
    var d = 40;
    var f = this.addField(“myRadio”,”radiobutton”,0, [200, 510, 210, 500]);
    this.addField(“myRadio”,”radiobutton”,0, [200+d, 510-d, 210+d, 500-d]);
    this.addField(“myRadio”,”radiobutton”,0, [200, 510-2*d, 210, 500-2*d]);
    this.addField(“myRadio”,”radiobutton”,0, [200-d, 510-d, 210-d, 500-d]);
    f.strokeColor = color.black;
    // Now give each radio field an export value
    f.exportValues = [“North”, “East”, “South”, “West”];
    #64707
    _seb_
    Participant

    :PouceHaut: super, merci

    Je me suis fait un script pour réaliser des pages de QCM avec boutons d’options et zone de texte.

    Code:
    nbBoutonsParColonne = 12 ;

    var taille = 30 ;
    var gauche = 15;
    var bas = 415;
    var decalage = 0;
    var numZtColonneGauche = 1;
    var numZtColonneDroite = nbBoutonsParColonne  + 1;

    // Création du formulaire sur deux colonnes de 12 boutons
    for(var i = 1; i <= nbBoutonsParColonne ; i++){
      // Bouton et zone de texte colonne de gauche
      this.addField(“Br3″,”radiobutton”, 0, [15, bas + taille – decalage, 30, bas – decalage]);
      this.addField(“ztBr” + numZtColonneGauche + “_3”, “text”, 0, [35, bas + taille – decalage, 345, bas – decalage]);

      // Bouton et zone de texte colonne de droite
      this.addField(“Br3″,”radiobutton”, 0, [370, bas + taille – decalage, 385, bas – decalage]);
      this.addField(“ztBr” + numZtColonneDroite + “_3”, “text”, 0, [390, bas + taille – decalage, 700, bas – decalage]);

      decalage = decalage + 35;
      numZtColonneGauche++;
      numZtColonneDroite++;
    }

    // Bordure et valeur d’exportation des boutons-radios
    var f = this.getField(“Br3”);
    f.strokeColor = color.black;
    f.exportValues =
    [
      “a”,
      “b”,
      “c”,
      “d”,
      “e”,
      “f”,
      “g”,
      “h”,
      “i”,
      “j”,
      “k”,
      “l”,
      “m”,
      “n”,
      “o”,
      “p”,
      “q”,
      “r”,
      “s”,
      “t”,
      “u”,
      “v”,
      “w”,
      “x”
    ];

    // Valeur par défaut et mise forme des zones de texte
    var numZt = 1;
    for(var i = 0; i < f.exportValues.length; i++){
      var zt = this.getField(“ztBr” + numZt + “_3”);
      zt.textFont = “Verdana”;
      zt.defaultValue = f.exportValues;
      zt.textSize = 0;
      zt.borderStyle = border.s;
      zt.strokeColor = color.black;
      zt.readonly = true;
      numZt++;
    }

    la police d’écriture pour les zones de texte ne fonctionne pas elle reste sur Helvetica  :doute:  Edit : corrigé.

    _seb_

    #64708
    bebarth
    Maître des clés

    bonjour,
    Il faut juste écrire :

    Code:
    zt.textfont = “Verdana”;

    @+
    :bonjour:

    #64709
    Merlin
    Maître des clés

    Pas mieux.
    Par-contre il faut savoir que l’utilisation d’une police de caractère non-standard dans un champ de formulaire provoque l’incorporation de la police entière non compressée dans le document PDF, ce qui augmente d’autant son poids.
    (Les polices standards sont stockées dans le logiciel Acrobat, pas dans les documents).

    #64710
    _seb_
    Participant

    Merci pour votre aide à tous les deux.

    J’ai modifié mon script pour le rendre plus flexible.
    Pour la police d’écriture ça ne fonctionne pas. :doute:  Edit : corrigé

    Pour les intéressés :
    En pièce jointe mon fichier.
    Et mon script :

    Code:
    function faireQcm(){

    // Début des variables à personnaliser__________________________________________________________

      // Nombre de colonne de choix
      var nbColonne = 2;

      // Nombre de choix par colonne
      var nbBoutonsParColonne = 12;

      // Nom du groupe des boutons radios
      var nomBr = “nomBoutonRadio”;
      // Nom des champs de texte
      var nomCt = “nomChampDeTexte”;
      // Numéro de la page où mettre le QCM
      var numeroDePage = 0;
      // Hauteur des boutons-radios et des champs de texte
      var hauteur = 23;
      // Largeur des champs de texte
      var largeurCt = 305;
      // Position par rapport à la gauche de la page pour la première colonne
      var gauchePc = 15;
      // Position par rapport au bas le page pour le premier choix
      var bas = 415;
      // Espace entre un bouton-radio et son champ de texte
      var espaceBrZt = 6;
      // Décalage en hauteur des différents choix
      var decalage = 35;
      // Espace entre les colonnes
      var espaceColonne = gauchePc + hauteur + espaceBrZt + largeurCt + 5;

      // Les réponses possibles du QCM
      var reponseQcm =
      [
          “a”,
          “b”,
          “c”,
          “d”,
          “e”,
          “f”,
          “g”,
          “h”,
          “i”,
          “j”,
          “k”,
          “l”,
          “m”,
          “n”,
          “o”,
          “p”,
          “q”,
          “r”,
          “s”,
          “t”,
          “u”,
          “v”,
          “w”,
          “x”
      ];

      // Configuration des champs de texte
      // Police d’écriture
      var policeEcriture = “Verdana”;
      // Taille du texte
      var tailleTexte = 0;
      // Style des bordures
      var styleBordure = border.s;
      // Couleur de la bordure
      var couleurBordure = color.black;
      // Lecture seule
      var lecture = true;

    // Fin des variables à personnaliser ___________________________________________________________________________________

      // Création du QCM
      var gaucheCt = gauchePc + hauteur  + espaceBrZt;
      var positionH = 0;
      var positionL = 0;
      var numCt = 1;

      for(var i = 1; i <= nbColonne ; i++){
          for(var j = 1; j <= nbBoutonsParColonne ; j++){
            // Boutons radios
            this.addField
            (
                nomBr,
                “radiobutton”,
                numeroDePage,
                [
                      gauchePc + positionL,
                      bas + hauteur – positionH,
                      gauchePc + hauteur + positionL,
                      bas – positionH
                ]
            );
            // Champ de texte
            this.addField
            (
                nomCt + numCt,
                “text”,
                numeroDePage,
                [
                      gaucheCt + positionL,
                      bas + hauteur – positionH,
                      gaucheCt + largeurCt + positionL,
                      bas – positionH
                ]
            );
            positionH = positionH + decalage;
            numCt++;
          }
          positionH = 0
          positionL = positionL + espaceColonne;
      }

      // f est les boutons-radios
      var f = this.getField(nomBr);
      // Bordure des boutons-radios
      f.strokeColor = color.black;
      // Valeur d’exportation des boutons-radios
      f.exportValues = reponseQcm;

      // Valeur par défaut et mise forme des champs de texte
      var numCt = 1;
      for(var i = 0; i < f.exportValues.length; i++){
          // ct est la zone de texte
          var ct = this.getField(nomCt + numCt);
          // Valeur par défaut
          ct.defaultValue = f.exportValues;
          // Police d’écriture
          ct.textFont = policeEcriture;
          // Taille du texte
          ct.textSize = tailleTexte;
          // La bordure
          ct.borderStyle = styleBordure;
          // Couleur de la bordure
          ct.strokeColor =  couleurBordure;
          // Lecture seule
          ct.readonly = lecture;
          numCt++;
      }
      resetForm();
    }

    _seb_

    #64711
    bebarth
    Maître des clés

    …avec un F majuscule, ça devrait mieux marcher !!!
    ct.textFont=policeEcriture;
    @+
    :bonjour:

    #64712
    _seb_
    Participant

    :PouceHaut:  bien vu, ça marche maintenant.

    Merci.

    _seb_

    #64713
    Merlin
    Maître des clés

    :bravo:

    Si je peux juste me permettre :
    QCM = Questionnaire à Choix Multiples
    Or, avec des boutons-radios il n’y a qu’un seul choix possible…

    :Smiley00:  :Smiley03:

    #64714
    _seb_
    Participant


    Salut Merlin,

    Je pense que ça dépend de la configuration du QCM.

    Il peut y avoir une question, plusieurs choix possibles, mais un seul est la bonne réponse.

    Veuillez cocher la bonne réponse => radiobutton

    Veuillez cocher la ou les bonnes réponses => checkbox

    Comme au code de la route  :Smiley01:

    _seb_

    #64715
    Merlin
    Maître des clés

    C’était une boutade par rapport à ton document, je sais bien qu’on peut mettre plusieurs séries de questions.
    :Smiley03:

    #64716
    _seb_
    Participant

    :PouceHaut: :Smiley08: :Smiley03:

    _seb_

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