Toutes mes réponses sur les forums
-
AuteurRéponses
-
Prop0f0L
ParticipantC’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.noViewA placer en script de document :
//Rendre le masque visible à l’impression uniquement.
this.getField(“Masquage”).display = display.noViewProp0f0L
ParticipantBonjour !
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.24 septembre 2021 à 22:36 en réponse à : Script d’impression se lance sur Acrobat Pro mais pas sur Acrobat Reader #69668Prop0f0L
ParticipantEclair 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:
24 septembre 2021 à 13:55 en réponse à : Script d’impression se lance sur Acrobat Pro mais pas sur Acrobat Reader #69667Prop0f0L
ParticipantD'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
24 septembre 2021 à 01:37 en réponse à : Script d’impression se lance sur Acrobat Pro mais pas sur Acrobat Reader #69661Prop0f0L
ParticipantMerci à 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 ?Prop0f0L
ParticipantBonjour,
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:Prop0f0L
ParticipantBonjour :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:
24 octobre 2020 à 22:32 en réponse à : Mise en forme conditionnelle (couleur) de plusieurs champs #68194Prop0f0L
ParticipantBonjour 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 !22 octobre 2020 à 11:53 en réponse à : Mise en forme conditionnelle (couleur) de plusieurs champs #68192Prop0f0L
ParticipantMerci .. 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:
22 octobre 2020 à 10:58 en réponse à : Mise en forme conditionnelle (couleur) de plusieurs champs #68190Prop0f0L
ParticipantMerci 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: -
AuteurRéponses