Donnez vie à vos documents numériques !
 

Bouton de validation

abracadabraPDF Forums PDF – Général Bouton de validation

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45701
    Sam
    Membre

    Bonjour,
    Voici quelques jours que je suis entré dans le monde merveilleux des formulaires et que j’ai découvert JS.
    J’essaie de créer un bouton permettant de vérifier des champs obligatoires pour que l’utilisateur s’assure de n’avoir rien oublié avant de signer (via la signature manuscrite d’acrobat reader) et d’enregistrer le document(transformant le formulaire en pdf figé).
    Après une multitude d’essais à partir des éléments du forum je me suis résigné à demander un peu d’aide.
    1/ J’ai réussi à déroulé un script lié à l’enregistrement (via l’icône “autres taches”), mais en le copiant dans un bouton celui-ci ne fonctionne pas .
    j’ai essayé également d’ajout une reconnaissance de champs non validé mais sans succès également: app.alert(“… : “+this.getField(f).userName)
    var isFilled = true;
    for (var i=0;i < this.numFields;i++){
    var f = this.getNthFieldName(i);
    if (this.getField(f).required && !this.getField(f).valueAsString) isFilled = false;
    }if (!isFilled) app.alert(“You must complete all the required fields”);
    var isCheck = true;
    for (var j=0;j < this.numFields;j++){
    var c = this.getNthFieldName(j);
    if (this.getField(c).required && this.getField(c).value == 0) isCheck = false;
    }if (!isCheck) app.alert(“You must complete all the required checks”);

    2/ Peut-on lancer un script appelant la fonction de signature manuscrite(ou via un fichier image) d’acrobat reader?
    3/ Pour finir j’essaye d’ajouter un bouton enregistré sous qui reprend des champs du formulaire (composé de list et text).
    Suis-je sur la bonne voie?
    app.beginPriv();
    var Name1 = this.getField (“Field1”);
    var Name2 =t his.getField (“Field2”);
    this.saveAs(Name1+Name1+”.pdf”);

    Merci d’avance (en espérant que la taille du post ne fasse pas trop peur)

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

    Bonjour et bienvenue.

    Ton script ne peut pas fonctionner, pour plusieurs raisons.
    Réaliser un tel script est possible, ce n’est pas le problème, mais souvent la vraie bonne réponse vient de l’abandon de la “mauvaise” question :

    As-tu Acrobat Pro DC et as-tu essayé de créer un formulaire “Adobe Sign” ?
    C’est un peu différent du formulaire “Acroforms” habituel, mais le gros avantage c’est que les champs obligatoires le sont avant la signature.
    Il n’y a donc pas besoin d’utiliser une seule ligne de script.

    Est-ce que ça pourrait te convenir ?

    #62780
    Sam
    Membre

    Bonjour Merlin,
    Merci pour l’accueil.

    J’utilise Adobe Acrobat XI standard.
    Je ne connaissais pas “Adobe Sign”. A ce que je vois il s’agit d’un module complémentaire d’Acrobat.
    Ça pourrait effectivement convenir mais pour l’instant je dois faire avec ce que j’ai (Adobe Acrobat XI).
    Je dois dans un premier temps faire adhérer les utilisateurs puis une optimisation pourrait conduire à l’ajout de ce module.

    Pour pallier au problème du script j’essaye de faire des tests champs par champs avec un message d’alerte correspondant à chaque champs (ça ne me semble pas très optimisé comme méthode).
    C’est ok pour les champs text et list mais pas pour et cases à cocher les boutons.
    if (!this.getField(“test”).isBoxCheck(0)) {app.alert(“Case test à cocher”)}; ne fonctionne pas.
    Sais-tu si on peut faire un test sur un ensemble de boutons (…isBoxCheck(x)) au lieu de tous les nommer?

    Est-ce possible de paramétrer le nom de sauvegarde en fonction de champs renseignés (dans mon précédent post j’ai essayé mais …
    et de faire appel de la fonction “apposer une signature / Modifier une signature enregistré” d’acrobat reader?

    #62781
    Merlin
    Maître des clés

    Voilà un exemple de script à utiliser, mais je ne comprend pas comment tu fais pour créer/modifier un formulaire avec Acrobat Standard ???
    Je croyais ces fonctions réservées à Acrobat Pro…  :Euuuh:

    Code:
    for(var i = this.numFields – 1; i > -1; i–)
    {
    var fieldName = this.getNthFieldName(i);
    if ((
    this.getField(fieldName).type!=”button” && this.getField(fieldName).required==true) &&
    (this.getField(fieldName).value==”” || this.getField(fieldName).value==”Off”))
    {
    app.alert(“Le champ ” +fieldName+ ” ne semble pas rempli, merci de le compléter.”);
    this.getField(fieldName).setFocus();
    break;
    }
    }
    //
    if(i<0){//code à exécuter}
    #62782
    Sam
    Membre

    Bonjour Merlin,
    Merci pour ta réponse et ton code.
    Je l’ai tester et ça fonctionne pas mal du tout, il y a juste certaines case qui ne sont pas trouvée mais je devrais pouvoir m’en sortir.
    Adobe Acrobat Standard comporte bien les fonctions de modifications de PDF et de création de formulaire à la différence de Adobe Reader.
    Le standard et le pro doivent être assez proches.

    #62783
    Merlin
    Maître des clés

    C’est “normal” pour les cases-à-cocher : ça ne fonctionne pas.
    La ruse c’est d’associer à chaque (série de) case un champ de texte dont on change la valeur en fonction de l’état de la case, et de vérifier le champ texte.
    :Smiley15:

    #62784
    Sam
    Membre

    Merci pour la ruse de sioux ;)
    Et pour tes explications.

    #62785
    Merlin
    Maître des clés

    J’avais fait ça pour un client qui voulait que les champs obligatoires non remplis s’entourent de rouge.
    J’avais donc placé un champ texte jumeau “invisible” (et en lecture seule) par-dessus les cases-à-cocher concernées pour obtenir un contour rouge si pas cochées.
    :geek:

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