Donnez vie à vos documents numériques !
 

Formulaire remplissable en ligne (via lien) et validation

abracadabraPDF Forums PDF – Général Formulaire remplissable en ligne (via lien) et validation

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46069
    yoluflavaur
    Membre

    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

Affichage de 24 réponses de 1 à 24 (sur un total de 24)
  • Auteur
    Réponses
  • #65709
    Merlin
    Maî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 serveur

    C’est typiquement du boulot pour un formulaire HTML, ce serait inutilement compliqué et tortueux en PDF.
    :joker:

    #65710
    yoluflavaur
    Membre

    Ah…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 ?

    #65711
    Merlin
    Maître des clés

    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é ….

    Ç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 ?

    #65712
    yoluflavaur
    Membre

    Pour 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 ?

    #65713
    Merlin
    Maître des clés

    Tu 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).

    #65714
    yoluflavaur
    Membre

    ok..mais il est trop gros..ca passe ici…tu as un mail?

    #65715
    Merlin
    Maî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:

    #65716
    Merlin
    Maître des clés

    Du 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:

    #65717
    yoluflavaur
    Membre

    http://dl.free.fr/jBzlyoHBy
    voici le lien pour le télécharger…

    #65718
    Merlin
    Maître des clés

    Quand 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:

    #65719
    yoluflavaur
    Membre

    Les axes de progressions sont des cases permettant à l’observateur d’indiquer des points à travailler….

    Sinon, comment as-tu fait pour supprimer les polices inutiles ?

    #65720
    yoluflavaur
    Membre

    La 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é.

    #65721
    Merlin
    Maître des clés

    Les 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:

    #65722
    Merlin
    Maître des clés

    Sinon, 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:

    #65723
    yoluflavaur
    Membre

    :Smiley08: :Smiley08: mdr…..je vais corriger….merci

    #65724
    yoluflavaur
    Membre

    astucieux !!! je vais essayer de le refaire….

    #65725
    yoluflavaur
    Membre

    Merci 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; i  var 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?

    #65726
    Merlin
    Maître des clés

    il 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.

    #65727
    titi_neptune
    Membre

    Bonjour,
    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 ? Merci

    #65728
    yoluflavaur
    Membre

    bonjour, tu vas à l’accueil…et tu cliques sur nouveau sujet….

    #65729
    yoluflavaur
    Membre

    J’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; i  var fname = this.getNthFieldName(i);
      var f = this.getField(fname);
      f.readonly = true;
    }

    // Enregistrer
    app.execMenuItem(“SaveAs”)}

    #65730
    Merlin
    Maître des clés

    L’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:

    #65731
    Merlin
    Maître des clés

    À placer dans le bouton de vérification des champs obligatoires :

    Code:
    var nObligatoireVide = 0;
    for (var i=0; i var 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:

    #65732
    yoluflavaur
    Membre

    Merlin !! 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

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