Donnez vie à vos documents numériques !
 

Prop0f0L

Toutes mes réponses sur les forums

Affichage de 10 réponses de 1 à 10 (sur un total de 10)
  • Auteur
    Réponses
  • en réponse à : Impression PDF #69694
    Prop0f0L
    Participant

    C’est possible en créant un bouton « imprimer » muni du code ci dessous (merci abracadabrapdf), et un champ « Masquage », qui devient totalement invisible si tous les champs sont remplis, et qui occupe le premier plan s’ils ne le sont pas ou que l’utilisateur utilise la fonction imprimer du menu.

    Bouton imprimer, souris relâchée :
    var emptyFields = [];
    for (var i = 0; i < this.numFields; i++)
    {
    var f = this.getField(this.getNthFieldName(i));
    if (f.type != “button”)
        {
        if (f.required && f.value == “”)
            {emptyFields.push(this.getNthFieldName(i));}
      }
    }
    if (emptyFields.length > 0)
    {
    app.alert(“Merci remplir tous les champs avant d’imprimer.”)
    }
    else
    //Ôter le masque avant impression
    this.getField(“Masquage”).display = display.hidden
    this.print()

    //Rendre le masque visible à l’impression uniquement.
    this.getField(“Masquage”).display = display.noView

    A placer en script de document :

    //Rendre le masque visible à l’impression uniquement.
    this.getField(“Masquage”).display = display.noView

    en réponse à : Script pour imprimer et modifier pied de page #69682
    Prop0f0L
    Participant

    Bonjour !

    Je ne sais pas si cela répond à ta demande, mais pourquoi pas créer des modèles de pages avec des noms de champs différents pour ceux qui doivent l'être à l'impression ?
    Avec “spawnPageFromTemplate” puis “this.print” puis “deletePages” ?
    Exemple ci-joint.

    Prop0f0L
    Participant

    Eclair de génie… Ou pas  :geek:
    Plutôt que de supprimer la page à ne pas imprimer, j'ai trouvé l'idée (sur le forum bien sur  :jerisjaune: ) d'utiliser printRange dans l'objet printParams, et ça fonctionne à merveille !! Cependant …
    J'aimerai ajouter le paramètre bShrinkToFit en true, mais je n'arrive pas à l'intégrer dans ce bloc :

    var f = this.numPages
    var pp = this.getPrintParams();
    pp.printRange = 1,f -1;
    this.print(pp);

    J'ai fouiné sur le forum, sans succès, j'ai essayé ceci (sans succès aussi) en dernière ligne :
    this.print({bShrinkToFit: true, printParams: pp});

    Pourriez-vous m'aider s'il vous plaît ?  :priere:

    Prop0f0L
    Participant

    D'abord, merci à vous deux, vraiment  :bonjour:

    Il faut générer une page à partir du template et masquer le template.
    Cette page générée “non statique” peut donc être supprimée avant l'impression, et re-générée ensuite à partir du template masqué.

    L'idée est là, mais le problème vient du fait que le bouton “imprimer” est placé sur le template à supprimer avant impression… :mur:
    L'objectif est d'arriver à masquer le template contenant le bouton (sauf qu'à l'ouverture du document c'est une page statique), tout en évitant d'avoir une page indésirable (ou blanche) à l'impression…

    Et ayant un script de validation dans le bouton imprimer, je préfèrerai le conserver plutôt qu'utiliser un script en “will print”  :Ooops:

    Ci joint mon exemple

    Prop0f0L
    Participant

    Merci à vous deux pour vos réponses !

    il peut supprimer les pages ainsi générées (mais il peut pas supprimer les pages statiques).

    Alors je crois qu'un problème sera impossible à résoudre …
    Je voudrai effectivement supprimer une page avant l'impression (pour qu'ellene soit pas imprimée), et la faire réapparaître après l'impression.
    Or cette page est un modèle, et non une page spawn à partir de ce modèle…
    Une idée de bidouille pour contourner ceci ?

    en réponse à : Valeur d’un champ, en fonction d’un autre… #69654
    Prop0f0L
    Participant

    Bonjour,

    Je trouve cela intéressant, je répond à la fois pour suivre les réponses des pros, et pour apporter une très mince contribution (n'étant pas suffisamment qualifié).
    Le code à placer dans le 2e champ :

    var f = this.getField(“PremierChamp”).value;
    if (f>5)

    {
    (this.getField(“DeuxiemeChamp”).value = “le chiffre est supérieur à 5”);
    }
    else
    {
    (this.getField(“DeuxiemeChamp”).value = “le chiffre est inferieur à 5”);
    }

    Avec ceci, on crée une variable (je ne sais même pas si c'est indispensable  :doute: ) appelée “f” à qui on affecte la valeur contenue dans le champ intitulé “PremierChamp”. On teste ensuite si f est strictement supérieure à 5 ou non.
    Si tel est le cas, on rempli le champ “DeuxiemeChamp” par la valeur souhaitée (pour vous ce sera un chiffre, ici on fait écrire “le chiffre est supérieur à 5”).

    Il faudrait rajouter de nouvelles conditions pour tester si le chiffre est présent dans une fourchette (supérieur à 5 et inférieur à 10), mais à partir de là je m'abstient car mon code marche moyennement…
    Hâte d'avoir la réponse d'un qualifié  :extra:

    en réponse à : Validation du formulaire PDF avec JavaScript #65294
    Prop0f0L
    Participant

    Bonjour  :Smiley08:

    Il existe un moyen d’empêcher de manière indirecte l’utilisateur d’imprimer via les menus. En tout cas empêcher d’imprimer le contenu du formulaire s’il n’est pas validé. Je partage l’avis de Merlin sur cette pratique peu “user-friendly”  mais j’ai été confronté à l’obligation de trouver cette pseudo solution que je partage.

    Le document est destiné à identifier avec des petites étiquettes des seringues utilisées en réanimation. Il contient 4 champs de formulaire (Médicament, Concentration, Date de préparation, nom de l’infirmier).
    Un bouton “imprimer” est implanté dans un coin.
    Ces éléments sont visibles à l’écran et invisibles à l’impression (display.noPrint).
    Un autre champ, à l’inverse, est invisible à l’écran et visible à l’impression, et mentionne “merci d’utiliser le bouton imprimer en bas à gauche” si le bouton imprimer du menu est utilisé.
    Si tous les champs sont rempli et que le bon bouton est utilisé, les 4 champs basculent de display.noPrint à display.visible, et le champ “d’erreur” bascule de display.noView à display.hidden.
    Ensuite l’impression se lance, et les visibilités reviennent à l’état de départ.

    Certes cela empêche l’impression que par dissuasion, mais cela évite de bypasser la sécurité. :siffle:

    Voilà ma petite contribution à ce super forum qui m’a bien aidé dans l’élaboration de mes documents.  :bonjour:

    en réponse à : Mise en forme conditionnelle (couleur) de plusieurs champs #68194
    Prop0f0L
    Participant

    Bonjour Bebarth  :jerisjaune:

    Je reviens vers toi car le script que tu m’as confié ne fonctionne pas  :doute:
    Je n’ai aucun message d’erreur quand je valide le script, mais la mise en forme conditionnelle ne s’applique pas …
    J’ai bien vérifié que les noms des champs correspondent, et c’est bien le cas. Au passage je les ai renommés “nombre”.
    Ce qui me donne :

    for (var i=1; i<=256; i++) {    var mf = this.getField(“nombre”+i) ;    if (mf.value > 0 && mf.value < 3) f.fillColor = ["RGB", 1, 0.92, 0.65] ;    else f.fillColor = ["T"] ;}

    En revanche, avec la méthode “un part un” (sans variable), ça fonctionne…
    Une idée pour m’éclairer s’il te plait ?  :priere:
    Merci !

    en réponse à : Mise en forme conditionnelle (couleur) de plusieurs champs #68192
    Prop0f0L
    Participant

    Merci .. Alors si ce n’est pas abuser de votre aide, j’ai encore une demande  :priere:

    Ce serait pour un bouton “réinitialiser le formulaire”, j’ai vu qu’il n’y avait pas besoin de script car il existe la commande menu, mais j’aimerait une boite de dialogue demandant si “oui” ou “non” on souhaite vraiment réinitialiser le formulaire.

    Mais peut être dois-je créer un autre fil ?  :Smiley08:

    en réponse à : Mise en forme conditionnelle (couleur) de plusieurs champs #68190
    Prop0f0L
    Participant

    Merci beaucoup pour votre réponse rapide !
    Vous venez de participer à la création d’un document qui va grandement faciliter le travail des infirmiers prenant en charge des patients Covid d’un service de réanimation.
    Alors merci de la part de toute l’équipe !  :bravo: :bonjour:

Affichage de 10 réponses de 1 à 10 (sur un total de 10)