Inscrivez-vous

abracadabraPDF Forum

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

pipotofluto

10 avril 2015 : 15:28
Magicien Messages: 66
Bonjour,

J'ai créé un formulaire avec des champs obligatoires et une signature numérique.
Le problème c'est que lorsque l'utilisateur signe le document, ce dernier est enregistré et il squizze l'obligation des champs.
Résultat le formulaire est enregistré que les champs obligatoires soient renseignés ou non.
Il y a une astuce pour corriger ce problème ?

Merci.

 :bonjour:
« Modifié: 11 avril 2015 : 10:57 par Merlin »

  • Grand magicien
  • Messages: 7 199
Bonjour.

L'astuce c'est de faire apparaitre le champ de signature après que tous les champs obligatoires soient remplis.
 :Smiley01:
Acrobate du PDF, InDesigner et Photoshopographe

  • Magicien
  • Messages: 66
 :doute:
tu pourrais développer stp ?
merci
 :bonjour:

  • Grand magicien
  • Messages: 571

Re : Champs obligatoires et signature numérique

alex Réponse 3 13 avril 2015 : 14:40

Bonjour à tous,
Voici ma manière de répondre à cette problématique qui diffère un peu de ce que propose Merlin:
Pour une fois j'utilise la détection d'entrée du curseur dans le champ de signature (Action>Souris entrée)
Je passe en revue tous les champs de saisie obligatoire du formulaire pour rechercher une éventuelle saisie manquante.Celle-ci trouvée, j'y place le curseur ce qui interdit la signature.
Voir ma petite maquette jointe.


NB:ce script peut être repris tel quel pour tout autre formulaire.
« Modifié: 13 avril 2015 : 14:45 par alex »
Alex Noesser
Un zeste de JavaScript dans votre PDF

  • Magicien
  • Messages: 66
Merci pour cette solution mais bizarrement ça ne fonctionne pas chez moi...
 :Euuuh:

  • Grand magicien
  • Messages: 7 199
Pour une fois j'utilise la détection d'entrée du curseur dans le champ de signature (Action>Souris entrée)

Tu me l'avais déjà dit…
J'aurais du y penser !
 :oh:
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 571

Re : Champs obligatoires et signature numérique

alex Réponse 6 13 avril 2015 : 21:24

Bonsoir,

Qu'est-ce qui ne fonctionne pas chez vous ?
1-Ma maquette ? Dans ce cas il faut s'assurer que le JavaScript du viewer (Acrobat PRO ou Standard ou Adobe Reader sur PC, Mac, Linux ou UNIX) est activé.
2-Votre formulaire. Dans ce cas il faut nous le faire parvenir pour qu'on y jette un oeil.


Par ailleurs, je ne fais plus de tests JavaScript sur les tablettes. J'attends la prochaine version d'Adobe Reader qui interprètera correctement toutes les méthodes du JavaScript et fonctionnera sur tous les supports.... Je suis très optimiste.
Alex Noesser
Un zeste de JavaScript dans votre PDF

  • Magicien
  • Messages: 66
Bonsoir,


Non la maquette fonctionne.


C'est sur mon formulaire que ça ne fonctionne pas. Je veux bien transmettre mon formulaire, mais pas sur le forum (c'est un document de travail)


 :bonjour:

  • Grand magicien
  • Messages: 7 199
Par ailleurs, je ne fais plus de tests JavaScript sur les tablettes. J'attends la prochaine version d'Adobe Reader qui interprètera correctement toutes les méthodes du JavaScript et fonctionnera sur tous les supports...

Adobe Acrobat Reader DC est disponible depuis quelques jours : http://get.adobe.com/fr/reader/


Je suis très optimiste.

C'est rien de le dire…
 :mur:  :geek:
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 7 199
Merci pour cette solution mais bizarrement ça ne fonctionne pas chez moi...

Non, ça n'a rien de bizarre.
Il faut soit modifier les noms des champs obligatoires pour les faire correspondre à ceux que cherche le script, soit il faut faire l'inverse, c'est-à-dire modifier le script pour qu'il cherche les bons noms de champs.

 :Smiley15:
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 571

Re : Champs obligatoires et signature numérique

alex Réponse 10 14 avril 2015 : 11:31

Bonjour à tous,

Voilà un script plus généraliste que le précédant et qui devrait convenir à votre formulaire. En effet, celui-ci embarque des listes déroulantes avec saisies obligatoires et une valeur par défaut vide.
Ce script prend donc en compte les champs texte et combobox obligatoires.

A propos de mon premier script:
Celui-ci comporte une erreur lorsque l'on tente d'obtenir la propriété .required qui est inconsistante pour les boutons. Il faut donc exclure les boutons de l'analyse.


« Modifié: 14 avril 2015 : 12:16 par alex »
Alex Noesser
Un zeste de JavaScript dans votre PDF

  • Magicien
  • Messages: 66
Bonjour,
Dans votre maquette, l'obligation de saisie ne fonctionne que pour la liste déroulante. Si je rempli la liste déroulante mais que je laisse les autres champs obligatoires vides, la signature fonctionne.
 :bonjour:

  • Grand magicien
  • Messages: 571

Re : Champs obligatoires et signature numérique

alex Réponse 12 16 avril 2015 : 09:00

Bonjour,
Oops, j'ai été trop vite !
Voici le script corrigé. Il vérifie que les champs obligatoires de type txt et combobox sont bien saisis. Reste à ajouter les cases à cocher obligatoires. Je reviendrai sur ce sujet à l'occasion.
A vérifier. Ctrl-J pour afficher la console et voir la trace du déroulement du script.


Alex Noesser
Un zeste de JavaScript dans votre PDF

  • Magicien
  • Messages: 66
ça fonctionne nickel !!!  :bravo:
merci
 :bonjour:

  • Grand magicien
  • Messages: 161

Re : Champs obligatoires et signature numérique

micka92 Réponse 14 29 juillet 2015 : 00:01

Bonsoir.


Serait-il possible d'avoir le script concernant les cases à cocher obligatoires ?


De plus, si ce n'est pas trop demandé, comment l'adapter sur un formulaire pour que si tous les champs obligatoires sont renseignés, cela affiche un champ signature ?


Merci d'avance.

  • Grand magicien
  • Messages: 7 199
Serait-il possible d'avoir le script concernant les cases à cocher obligatoires ?

Télécharge le document proposé par Alex dans son dernier message…
 :geek:
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 161
Télécharge le document proposé par Alex dans son dernier message…
 :geek:


Heu... il n'a pas pu traité les cases à cocher dans son document et il le mentionne dans son message :
Citer
Reste à ajouter les cases à cocher obligatoires. Je reviendrai sur ce sujet à l'occasion.

  • Grand magicien
  • Messages: 7 199

Re : Champs obligatoires et signature numérique

Merlin Réponse 17 01 août 2015 : 11:09

En effet…   :Ooops:

Ci-joint le doc d'Alex revu et augmenté.
Les cases-à-cocher sont prises en compte.
 :bonjour:

Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 161
Merci Merlin.


Toutefois, la fonction "Souris entrée" ne fonctionne pas sur PDF Expert et je crois qu'il en sera de même que la fonction "console.printIn".


Me concernant, il me faudrait "simplement"  :Ooops:  un script qui affiche le champ signature seulement si tous les champs obligatoires (texte, liste déroulante, cases à cocher et boutons radio) sont renseignés.

  • Grand magicien
  • Messages: 7 199
Toutefois, la fonction "Souris entrée" ne fonctionne pas sur PDF Expert

Forcément, mais c'était prévisible.


je crois qu'il en sera de même que la fonction "console.printIn".

L'affichage sur la Console ne sert qu'à avoir des retours pendant qu'on élabore un script, ça ne sert à rien d'autre.


A ta place j'utiliserais un "faux" champ de signature chargé de vérifier les autres champs, et si les champs sont remplis correctement on masque le faux champ de signature pour le remplacer par le vrai.
 :idee:
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 161
A quoi servent les // en début de ligne dans les scripts ?


Autant je pensais que c'était pour une indication quand il y a une rapide description à côté mais quand ils sont suivis de console.clear ou console.printIn, là je ne comprends plus...  :Ooops:

  • Grand magicien
  • Messages: 7 199

Re : Champs obligatoires et signature numérique

Merlin Réponse 21 03 août 2015 : 22:00

Le double slash en début de ligne sert à désactiver ladite ligne, et donc à placer des commentaires ou à laisser des instructions en attente (des instructions de débogage par exemple).

En JavaScript quand on veut désactiver plusieurs lignes d'affilée on peut aussi utiliser slash-étoile (début) et étoile-slash (fin).
Ce sont des conventions très répandues dans les langages de programmation.

/*
Ceci est un commentaire de plusieurs lignes, blablabla,
blablabla, blablabla, blablabla, blablabla, blablabla,
blablabla, blablabla, blablabla, blablabla, blablabla,
blablabla, blablabla, blablabla, blablabla
*/

 :idee:
« Modifié: 03 août 2015 : 22:03 par Merlin »
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 161
Merci Merlin pour tes explication toujours aussi claires et rapides !  :bravo:


J'ai regardé un peu partout pour faire un script de calcul personnalisé mais il y a toujours une erreur (en gros il disparaît une fois que je clique sur OK).


Pourtant je ne pense pas que cela soit si compliqué que cela à vouloir faire l'opération suivante : (champ1 * champ 2)/ 1000.

  • Grand magicien
  • Messages: 161
Le double slash en début de ligne sert à désactiver ladite ligne, et donc à placer des commentaires ou à laisser des instructions en attente (des instructions de débogage par exemple).

En JavaScript quand on veut désactiver plusieurs lignes d'affilée on peut aussi utiliser slash-étoile (début) et étoile-slash (fin).
Ce sont des conventions très répandues dans les langages de programmation.

/*
Ceci est un commentaire de plusieurs lignes, blablabla,
blablabla, blablabla, blablabla, blablabla, blablabla,
blablabla, blablabla, blablabla, blablabla, blablabla,
blablabla, blablabla, blablabla, blablabla
*/

 :idee:


Toutefois, dans le script que tu m'as envoyé, à chaque condition, il y a // ce qui me laisserait penser que ce n'est qu'un commentaire mais au vue de ce qu'il y a après (console.printIn...), j'avoue être perdu...

  • Grand magicien
  • Messages: 7 199

Re : Champs obligatoires et signature numérique

Merlin Réponse 24 04 août 2015 : 11:28

Tu peux supprimer toutes les lignes commençant par un double-slash, elles ne servent à rien.
 :Smiley03:
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 161
Effectivement le script me paraît plus clair comme cela  :Smiley03:


Petit bémol : j'ai une liste déroulante qui est rendue obligatoire si une case à cocher est activée (script avec action Souris relâchée). Cela fonctionne parfaitement sauf que si je réinitialise mon formulaire à l'aide d'un bouton créé pour cela, cette liste déroulante garde la propriété obligatoire.

  • Grand magicien
  • Messages: 161
Je viens de m'apercevoir qu'à chaque fois que je réinitialise mon formulaire, il prend quelques kilo-octets. Je pensais qu'il reprendrait sa taille initiale... Y a-t-il une explication à cela ?

  • Grand magicien
  • Messages: 7 199

Re : Champs obligatoires et signature numérique

Merlin Réponse 27 04 août 2015 : 13:46

Ben moi je viens de m'apercevoir que je n'ai toujours pas écrit mon article sur "Enregistrer" vs "Enregistrer-sous"…
 :Smiley03:

Donc en quelques mots :

Enregistrer ajoute des instructions de modifications à la fin du fichier, donc celui-ci gonfle inexorablement à chaque enregistrement. D'autant que les éléments supprimés (images, textes, champs de formulaires, etc.) ne le sont pas vraiment.

Enregistrer-sous recompile le fichier en éliminant tous les éléments superflus et toutes les modifications successives.

Et ça vaut pour quasiment tous les formats de fichiers, pas que pour le PDF.

 :Smiley15:
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 161
En fait, j'utilise la fonction "Réinitialiser un formule" qui existe dans Acrobat Pro XI. Y a-t-il un rapport avec les fonctions "Enregistrer" et "Enregistrer sous" ?

  • Grand magicien
  • Messages: 7 199

Re : Champs obligatoires et signature numérique

Merlin Réponse 29 05 août 2015 : 13:58

Réinitialiser ou non le formulaire ne change rien à la problématique Enregister vs Enregistrer-sous.
 :idee:
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 161
Ma question portait sur la fonction "Réinitialiser le formulaire" qui fait augmenter la taille de mon fichier.  :Euuuh:

  • Grand magicien
  • Messages: 161
Je n'ai peut-être pas compris ta réponse...  :jerisjaune:

  • Grand magicien
  • Messages: 7 199

Re : Champs obligatoires et signature numérique

Merlin Réponse 32 05 août 2015 : 14:37

Chaque modification, y compris les suppressions, augmente le poids du fichier jusqu'à ce qu'on fasse un Enregistrer-sous.
 :idee:
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 161
Effectivement, je n'avais pas compris ta réponse. Désolé Merlin !  :Smiley00:

  • Grand magicien
  • Messages: 7 199

Re : Champs obligatoires et signature numérique

Merlin Réponse 34 05 août 2015 : 15:33

 :Smiley15:
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 161
Pour le reste de mon formulaire, j'ai utilisé l'astuce de remplacer les boutons radios par des cases à cocher portant le même nom. Cependant, sur un groupement de 3 cases à cocher, j'ai un script qui s'exécute afin de rendre obligatoire une liste déroulante lorsque la 3ème est cochée.


Actuellement, mes cases à cocher ont des noms différents. Si je souhaite les utiliser comme des boutons radios, comment dois-je transformer cette partie du script ? La 3ème case à cocher s'appellerait "case#2".


if (event.target.isBoxChecked(0))

  • Grand magicien
  • Messages: 7 199
Si je souhaite les utiliser comme des boutons radios

Il faut leur donner exactement le même nom et une valeur d'exportation différente (comme pour les boutons-radio).
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 161
Oui, ça je l'ai fait mais dans mon script, est-il possible de définir une case à cocher précise, case#2 dans mon exemple, pour rendre une liste déroulante obligatoire ?


Quand chaque case à cocher avait son propre nom, j'utilisais if (event.target.isBoxChecked(0)).

  • Grand magicien
  • Messages: 161
En gros sur mes 3 cases, seule une, si elle est cochée, doit me rendre une liste déroulante obligatoire.

  • Grand magicien
  • Messages: 7 199
En gros sur mes 3 cases, seule une, si elle est cochée, doit me rendre une liste déroulante obligatoire.



Quand chaque case à cocher avait son propre nom, j'utilisais if (event.target.isBoxChecked(0)).

C'est le zéro qui fait tout : quand on crée des cases-à-cocher il arrive qu'elles doivent avoir le même nom, et les boutons-radio ont nécessairement le même nom.

Donc pour les distinguer, Acrobat leur attribue un numéro d'ordre qui est visible dans le panneau des champs de l'éditeur de formulaires :
nomduchamp#0
nomduchamp#1
nomduchamp#2
Etc.


Donc pour s'adresser à un bouton ou une case en particulier il faut spécifier son numéro entre les parenthèses.

Truc à savoir : ledit numéro d'ordre est attribué au moment de la création des cases ou des boutons au fur et à mesure en partant de zéro et il n'y a pas moyen de le modifier.

 :idee:
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 161
Bonsoir.


J'ai mis le chiffre correspondant à ma 3ème case à cocher (2) mais bizarrement, quand je la coche, les deux autres se cochent aussi. En gros, cocher n'importe quelle des 3 cases les coche toutes...  :Euuuh:

  • Grand magicien
  • Messages: 7 199

Re : Champs obligatoires et signature numérique

Merlin Réponse 41 13 août 2015 : 22:56

Il faut leur donner exactement le même nom et une valeur d'exportation différente (comme pour les boutons-radio).

 :geek:
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 161
Effectivement, je n'avais pas des valeurs d'exportation différentes, chose que j'avais bien faite sur une précédente version.


Merci Merlin !