Inscrivez-vous

abracadabraPDF Forum

Le seul forum francophone entièrement dédié au format PDF

Bouton de validation

276 7 normal post

Sam

25 juillet 2017 : 22:49
Novice Messages: 4
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)

  • Grand magicien
  • Messages: 7 199

Re : Bouton de validation

Merlin Réponse 1 26 juillet 2017 : 14:50

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 ?
« Modifié: 26 juillet 2017 : 15:13 par Merlin »
Acrobate du PDF, InDesigner et Photoshopographe

  • Novice
  • Messages: 4

Re : Bouton de validation

Sam Réponse 2 26 juillet 2017 : 21:07

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?

  • Grand magicien
  • Messages: 7 199

Re : Bouton de validation

Merlin Réponse 3 27 juillet 2017 : 10:06

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:

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}
Acrobate du PDF, InDesigner et Photoshopographe

  • Novice
  • Messages: 4

Re : Bouton de validation

Sam Réponse 4 27 juillet 2017 : 10:51

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.


  • Grand magicien
  • Messages: 7 199

Re : Bouton de validation

Merlin Réponse 5 27 juillet 2017 : 20:05

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:
Acrobate du PDF, InDesigner et Photoshopographe

  • Novice
  • Messages: 4

Re : Bouton de validation

Sam Réponse 6 28 juillet 2017 : 14:12

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

  • Grand magicien
  • Messages: 7 199

Re : Bouton de validation

Merlin Réponse 7 28 juillet 2017 : 14:47

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:
Acrobate du PDF, InDesigner et Photoshopographe