abracadabraPDF › Forums › PDF – Général › Formulaire remplissable en ligne (via lien) et validation
- Ce sujet est vide.
-
CréateurSujet
-
15 mai 2019 à 12:34 #46069yoluflavaurMembre
Bonjour,
J’ai créé un formulaire remplissable, avec menus déroulants, et calculs automatiques.
Une fois enregistré, le formulaire pèse…très lourd : environ….4,5 Mo.
Le but est de rendre disponible le formulaire en ligne pour plusieurs personnes sans avoir à le télécharger sur son pc.
Une fois rempli, je souhaite un bouton valider (avec fenêtre de confirmation) qui enregistrera une copie du formulaire (dont les champs remplis seront modifiables) sur le serveur où se trouve le modèle, et non sur le pc de la personne remplissant le formulaire.
Je suis débutant….je ne connais pas grand chose … rien… en ce qui concerne la conception d’un site…Il me faut un truc ultra basique : genre un lien qui ouvre automatiquement le formulaire vierge, et une fois rempli, on valide et ce formulaire est copié sur un espace dédié (le même serveur), et le formulaire se ré initialise….
Merci de votre aide…si cela est possible.
Yo
-
CréateurSujet
-
AuteurRéponses
-
15 mai 2019 à 14:34 #65709MerlinMaître des clés
Bonjour et bienvenue.
Une fois enregistré, le formulaire pèse…très lourd : environ….4,5 Mo.
Il faut l’Enregistrer-sous avec Acrobat Pro, c’est magique !
:Smiley15:Le but est de rendre disponible le formulaire en ligne pour plusieurs personnes sans avoir à le télécharger sur son pc.
Une fois rempli, je souhaite un bouton valider (avec fenêtre de confirmation) qui enregistrera une copie du formulaire (dont les champs remplis seront modifiables) sur le serveurC’est typiquement du boulot pour un formulaire HTML, ce serait inutilement compliqué et tortueux en PDF.
:joker:16 mai 2019 à 20:30 #65710yoluflavaurMembreAh…ok…
Quelle solution alors ai-je ?En fait, le formulaire pdf doit être accessible par des personnes qui vont donner des appréciations et des commentaires (c’est un formulaire pour des évaluer des personnes), puis une fois validé, ce formulaire doit pouvoir être corrigé par un correcteur (orthographe, tournure des phrases…), puis après validation de la direction, doit pouvoir être envoyer en pdf non modifiable à l’évalué ….
En html c’est compliqué ? faisable ?17 mai 2019 à 07:49 #65711MerlinMaître des clésEn fait, le formulaire pdf doit être accessible par des personnes qui vont donner des appréciations et des commentaires (c’est un formulaire pour des évaluer des personnes), puis une fois validé, ce formulaire doit pouvoir être corrigé par un correcteur (orthographe, tournure des phrases…), puis après validation de la direction, doit pouvoir être envoyer en pdf non modifiable à l’évalué ….
Ça change tout, c’est plus complexe que de juste rendre disponible le formulaire en ligne pour plusieurs personnes sans avoir à le télécharger sur son pc.
On revient sur un processus PDF, dont la première particularité, par rapport au HTML, c’est qu’on est obligé de télécharger le formulaire sur son poste pour pouvoir le remplir avec Acrobat Reader.
Certains navigateurs web permettent de remplir un formulaire PDF directement, mais aucun ne sera capable de l’envoyer (par email ou via submit).Tu parles de “direction”, je suppose donc que tu fais ça pour une structure. N’a-t-elle pas un site web ?
17 mai 2019 à 23:11 #65712yoluflavaurMembrePour tout te dire,
C’est pour des observateurs d’arbitres de foot….donc c purement bénévole ! Et j’essaie de créer un formulaire identique pour tous les observateurs, au lieu que chacun utilise tantôt word, tantôt openoffice…et n’écrivent pas tous avec la même police ou déplacent les cadres (même en verrouillant)…enfin bref, en tant que correcteur, tu passes des fois des dizaines de minutes à tout recadrer !
Donc je me suis dit qu’un outil aussi universel que pdf ce serait cool !
Sauf que si chaque observateur envoi un fichier de 2 à 4 mo l’unité…ca va faire lourd…
L’idée était donc :1) soit de créer une page web simple avec possibilité de remplir le formulaire en ligne, et je le recupère sur l’espace,
2) soit de pouvoir alléger au max la taille du fichier pour l’envoi par mail,
3) soit trouver un bouton valider pour compiler toutes les données des champs dans un seul fichier qui me serait envoyé, et que je puisse réinjecter dans le formulaire….tu vois le truc ?18 mai 2019 à 07:55 #65713MerlinMaître des clésTu n’as pas répondu concernant le poids du fichier, mais même 2 Mo c’est beaucoup trop lourd pour un tel formulaire.
Partage le si tu veux que j’y jette un œil (Transmettre un lien vers une pièce jointe, volumineuse ou non : Acrobat > menu Fichier > Envoyer le fichier > Envoyer et effectuer le suivi > Créer un lien anonyme)En tout cas la solution n°3 est la plus répandue : quand l’utilisateur clique sur “Envoyer” il n’envoie que les données du formulaire, au format FDF, et non pas le document en entier. Ce qui pèse beaucoup moins lourd (quelques Ko).
18 mai 2019 à 16:07 #65714yoluflavaurMembreok..mais il est trop gros..ca passe ici…tu as un mail?
19 mai 2019 à 08:57 #65715MerlinMaître des clés(Transmettre un lien vers une pièce jointe, volumineuse ou non : Acrobat > menu Fichier > Envoyer le fichier > Envoyer et effectuer le suivi > Créer un lien anonyme)
Voir aussi : https://abracadabrapdf.net/forum/index.php/topic,2974.0.html
:geek:
19 mai 2019 à 09:03 #65716MerlinMaître des clésDu coup je viens de réaliser que les intitulés ont un peu changé dans DC 2019 :
Acrobat : menu Fichier : Partager le fichier : Obtenir le lien : Créer un lien
:Smiley15:21 mai 2019 à 04:20 #65717yoluflavaurMembrehttp://dl.free.fr/jBzlyoHBy
voici le lien pour le télécharger…21 mai 2019 à 08:32 #65718MerlinMaître des clésQuand on utilise une autre police que les polices standards (Times, Helvetica, Courier) dans un champ de formulaire (un seul suffit) cela provoque l’incorporation de ladite police en entier et non compressée dans le PDF.
Les 2,4 Mo de ton document sont en fait occupés par les polices Calibri et Calibri Bold (bien que ce ne soit pas les plus belles :Smiley03:), une fois supprimées le document ne pèse plus que 110 Ko : https://documentcloud.adobe.com/link/track?uri=urn:aaid:scds:us:76d944e9-2af7-4967-8dc9-1765565cecf3
Sinon, qu’est-ce qu’un “AXE DE POGRESSION” ? Il y en a toute une série…
:Smiley03: :geek:21 mai 2019 à 13:22 #65719yoluflavaurMembreLes axes de progressions sont des cases permettant à l’observateur d’indiquer des points à travailler….
Sinon, comment as-tu fait pour supprimer les polices inutiles ?
21 mai 2019 à 14:42 #65720yoluflavaurMembreLa question est plutôt : Qu’as-tu fait exactement car j’ai essayé avec un modèle à 2Mo….j’ai modifié la police de tous les champs en Helvetica…..puis dans le menu otpimisation….puis j’ai retiré toutes les polices….j’ai enregistré ….ca na pas changer grand chose….voir rien…j’i dû louper quelques chose…
Par ailleurs, tu as dû remarquer que mes champs dépassait certains cadres…..En fait je voulais que le texte du champs tienne bien dans le cadre….avec le même nombre de ligne partout….Ca déborde un peu , mais lorsqu’on ecrit c’est bon !! c cadré.
21 mai 2019 à 17:47 #65721MerlinMaître des clésLes axes de progressions sont des cases permettant à l’observateur d’indiquer des points à travailler…
Ce n’est pas le mot “progression” qui est utilisé dans ton document…
:Smiley08:21 mai 2019 à 17:51 #65722MerlinMaître des clésSinon, comment as-tu fait pour supprimer les polices inutiles ?
D’abord j’ai changé la police dans tous les champs.
Comme l’optimiseur d’Acrobat ne voulait pas supprimer les polices du document j’ai pris une nouvelle page vierge dans laquelle j’ai copié-collé le fond de page avec l’outil “Modifier” et ensuite j’ai copié-collé (en place) les champs de formulaires avec l’outil de sélection.
Enregistrer-sous, terminé.Les bonnes vieilles techniques d’avant l’optimiseur d’Acrobat sont toujours efficaces.
:Smiley03:21 mai 2019 à 17:52 #65723yoluflavaurMembre:Smiley08: :Smiley08: mdr…..je vais corriger….merci
21 mai 2019 à 17:53 #65724yoluflavaurMembreastucieux !!! je vais essayer de le refaire….
22 mai 2019 à 21:28 #65725yoluflavaurMembreMerci MERLIN pour tes tuyaux et ton aide surtout !!
Même si je ne suis pas arrivé à faire comme toi…. CE n’est pas grave, je vais tout recommencer…
Sinon, je vais abuser de ta bonté :
J’ai voulu ajouter un bouton de validation ; ce bouton servira à contrôler que des champs (obligatoire) sont remplis, que les box déroulantes aient une valeur autre que “choisir” (valeur par défaut), et d’autre part, que si un champ a une certaine valeur/texte, et qu’un autre champ défini a une valeur précise, un message d’erreur apparaisse pour que l’utilise corrige.
Si tout est ok, j aimerai que le document soit enregistré tel quel (modifiable par correcteur)
Voici ce que j’ai pondu…mais ca marche pas
var cat = this.getfield(“cat”).value; // valeur du menu déroulant cat (catégorie)
var avis = this.getfield(“avis”).value; // valeur du menu déroulant avis (avis de l’observateur)
if ((
this.getfield(“cat”).value ==”Senior Stagiaire” ||
this.getfield(“cat”).value==”AA District_Stagiaire” ||
this.getfield(“cat”).value==”JAD Stagiaire”) &&
(this.getfield(“avis”).value==”NON CONCERNE”))
{
app.alert(“S’agissant d’un arbitre stagiaire, vous devez rendre un avis sur la validation de l’examen.”);
this.getField(“avis”).setFocus();
}
else
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){//Verrouiller tous les champs
for (var i=0; ivar fname = this.getNthFieldName(i);
var f = this.getField(fname);
f.readonly = true;
}// Enregistrer
app.execMenuItem(“SaveAs”)}
Alors Merlin, à part entre la chaise et le clavier, il est où le problème?22 mai 2019 à 22:07 #65726MerlinMaître des clésil est où le problème?
Qu’en dit la Console ? (Voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/console-javascript-d-acrobat/ )
Quoi qu’il en soit, donner le même nom à un champ et à une variable est une très mauvaise idée.
As-tu recherché dans le forum ? Il y a plusieurs exemples de scripts de contrôle.23 mai 2019 à 10:34 #65727titi_neptuneMembreBonjour,
désolé, mais je cherche un créer un sujet pour un problème tout a fait différent.
Seulement, je ne trouve pas ou ….
Quelqu’un pourrait me renseigner svp ? Merci23 mai 2019 à 14:52 #65728yoluflavaurMembrebonjour, tu vas à l’accueil…et tu cliques sur nouveau sujet….
23 mai 2019 à 16:08 #65729yoluflavaurMembreJ’ai beau chercher..je suis sec….ca ne marche pas
Sur le formulaire que tu as deja bidouiller pour l’alleger, j’aimerais ajouter un bouton de vérification.
Lorsque j’appuie dessus j’aimerais :
– Qu’il vérifie la valeur de deux champs et qu’il affiche un message d’erreur le cas échéant :
* si la valeur du champ de la liste déroulante “cat” = “JAD Stagiaire” OU “cat”=”AA District Stagiaire” OU ” Senior Stagiaire” ET que la valeur ddu champ de la lsite dérulante “Avis” = “NON CONCERNE”
* ALORS affiche un message (S’agissant d’un arbitre stagiaire, vous devez rendre un avis)
Puis
* SI les champs obligatoires ne sont pas remplis, fais apparaître un message d’alerte (Il manque des données…),SINON propose d’enregsitrer le document en l’état (modifiable) en SAVE AS
Voila ce que j’ai mis mais ça marche pas du tout
var categ = this.getfield(“cat”).value; // valeur du menu déroulant cat (catégorie)
var avobs = this.getfield(“avis”).value; // valeur du menu déroulant avis (avis de l’observateur)
if ((
categ ==”Senior Stagiaire” ||
categ==”AA DistrictStagiaire” ||
categ==”JAD Stagiaire”) &&
(avobs==”NON CONCERNE”))
{
app.alert(“S’agissant d’un arbitre stagiaire, vous devez rendre un avis sur la validation de l’examen.”);
this.getField(“avis”).setFocus();
break;
}
else
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){//Verrouiller tous les champs
for (var i=0; ivar fname = this.getNthFieldName(i);
var f = this.getField(fname);
f.readonly = true;
}// Enregistrer
app.execMenuItem(“SaveAs”)}24 mai 2019 à 08:01 #65730MerlinMaître des clésL’enchainement des actions n’est pas logique : si on ne vérifie pas avant si le champ “avis” est déjà rempli c’est toujours la première condition qui s’exécutera, donc l’utilisateur tournera en boucle (et en bourrique).
Je suggère de prendre le problème autrement : si la 1re condition est remplie le champ dans lequel on doit remplir l’avis devient obligatoire, sinon il ne l’est pas.
À placer en script de calcul dans ledit champ :Code:var strText1 = this.getField(“cat”).valueAsString;
var strText2 = this.getField(“Avis”).valueAsString;
if ((strText1 == “JAD Stagiaire” || strText1 == “AA District Stagiaire” || strText1 == “Senior Stagiaire”) && (strText2 == “NON CONCERNE”;)) {
event.target.required = true;
}
else {
event.target.required = false;
}Ensuite il ne reste qu’à vérifier les champs obligatoires.
On en reparlera plus tard. Je n’ai pas le temps aujourd’hui.
:joker:24 mai 2019 à 10:34 #65731MerlinMaître des clésÀ placer dans le bouton de vérification des champs obligatoires :
Code:var nObligatoireVide = 0;
for (var i=0; ivar nomChamp = this.getNthFieldName(i);
var oChamp = this.getField(nomChamp);
// champs Texte
if ((oChamp.type == “text”) && (oChamp.required == true) && (oChamp.value == “”)) {
oChamp.strokeColor = color.red;
nObligatoireVide++;
}
// champs Case-à-cocher
else if ((oChamp.type == “checkbox”) && (oChamp.required == true) && (oChamp.value == “Off”)) {
oChamp.strokeColor = color.red;
nObligatoireVide++;
}
// champs Liste déroulante
else if ((oChamp.type == “combobox”) && (oChamp.required == true) && (oChamp.value == oChamp.defaultValue)) {
oChamp.strokeColor = color.red;
nObligatoireVide++;
}
}
//
if (nObligatoireVide > 0) {
app.alert({cMsg: “Merci de remplir tous les champs obligatoires (en rouge).”, nIcon: 1, cTitle: “COUCOU”});
}
else {
// impression, envoi par email, etc.
}S’il y en a, ce script entoure tous les champs obligatoires non remplis d’un contour rouge.
Ce qui veut dire qu’il faut ensuite supprimer ce contour rouge quand l’utilisateur rempli les champs concernés, donc il faut ajouter ce script en action “Champ activé” dans tous les champs obligatoires :Code:event.target.strokeColor = color.transparent;Où “transparent” est à remplacer par la couleur de contour normale
:Smiley15:
30 mai 2019 à 05:38 #65732yoluflavaurMembreMerlin !! T’es un enchanteur !!!
Merci beaucoup…je vais essayer cela….
J’avais presque réussi en modifiant mon script et le mettant ainsi : il fonctionne mais peut-être est-il incohérent à ton goût
app.alert(“La vérification de votre rapport est en cours. Toute rubrique non renseignée vous sera indiquée.nn N’oubliez pas de contrôler le score final du match. nn Appuyer sur OK pour continuer.”,3)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();
exit;
}
}var categ=this.getField(“cat”).value;
var avisobs=this.getField(“avis”).value;
var senstag=”Senior Stagiaire”;
var AADS=”AA District Stagiaire”;
var JADS=”JAD Stagiaire”;
var NC=”NON CONCERNE”;
var ch=”choisir”;if ((categ==ch) && (avisobs==NC||avisobs!=NC))
{app.alert(“Vous devez obligatoirement choisir la catégorie de l’arbitre.”,1);exit;}else if
((categ==senstag||categ==AADS||categ==JADS) && avisobs==NC)
{app.alert(“S’agissant d’un arbitre stagiaire, vous devez obligatoirement donner votre avis sur la validation de l’examen. Merci de compléter la rubrique concernée en bas à droite du formulaire, ou de modifier la catégorie de l’arbitre.”,1);exit;}else if
((categ==senstag||categ==AADS||categ==JADS) && avisobs!=NC)
{app.alert(“Vérification effectuée. Vous pouvez maintenant sauvegarder votre rapport sous le format Observateur-Arbitre.nnExemple: Dupont-MARTIN_BrunonnEnvoyez votre rapport dès maintenant à l’adresse ysalmon49@gmail.com”,3);}else if
((categ!=senstag||categ!=AADS||categ!=JADS) && avisobs!=NC)
{app.alert(“ATTENTION : Vous avez émis un avis alors que la catégorie de l’arbitre ne le prévoit pas. Choisissez ‘NON CONCERNE’ dans la rubrique située en bas à droite, ou modifier la catégorie de l’arbitre.”);exit;}else
{app.alert(“Vérification effectuée. Vous pouvez maintenant sauvegarder votre rapport sous le format Observateur-Arbitre.nnExemple: Dupont-MARTIN_BrunonnEnvoyez votre rapport dès maintenant à l’adresse ysalmon49@gmail.com”,3);}app.execMenuItem(“SaveAs”)
Merci encore de ton aide
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.