abracadabraPDF › Forums › PDF – Général › Impression de pages masquées
- Ce sujet est vide.
-
CréateurSujet
-
22 mai 2017 à 07:22 #45673dauofMembre
Bonjour à tous,
J’ai un formulaire dans lequel j’ai des données à saisir et qui vont remplir d’autre pages que je veux cacher à l’utilisateur, je veux créer un bouton d’impression pour n’imprimer que ces pages et non pas la première page de saisie, c’est pour faciliter la tache pour l’utilisateur.
Comment masquer ces pages qu’on veut imprimer?
Merci de votre aide. -
CréateurSujet
-
AuteurRéponses
-
22 mai 2017 à 08:28 #62629MerlinMaître des clés
Bonjour.
Il est possible de masquer des pages-modèles et de remplir leurs champs depuis la page d’accueil.
Pour imprimer les pages masquées il faut les dé-masquer, les imprimer, et les remasquer.Le mieux est de commencer par ce tuto : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/dupliquer-dynamiquement-des-pages-dans-un-pdf/
Quand le document tiendra la route il ne restera plus qu’à créer le script d’impression.
22 mai 2017 à 09:02 #62630dauofMembreMerci merlin de ta réponse rapide, comment fait-on pour n’imprimer que 2 pages sur 3?
22 mai 2017 à 11:45 #62631MerlinMaître des cléscomment fait-on pour n’imprimer que 2 pages sur 3?
Cette question n’a pas de réponse. Il faut impérativement connaitre le numéro des pages à imprimer, ou le numéro de la page à ne pas imprimer.
Pour imprimer toutes les pages sauf la première :
Code:this.print({bUI: true, bShrinkToFit: true, nStart: 1, nEnd: this.numPages-1});23 mai 2017 à 06:44 #62632dauofMembreBonjour Merlin et merci de ta réponse très rapide,
si je comprends bien, faut-il numéroter les pages? au cas où je veux imprimer la 3ème et la 5ème et pas la 4ème?J’ai une autre question, j’ai des champs dans les quels j’insère des nombres de 0 à 1000, je veux que l’affichage soit sur 4 chiffres, peu importe le nombre, si je tape 32, l’affichage serait de 0032.
merci par avance.
23 mai 2017 à 08:54 #62633MerlinMaître des clésLe folio affiché sur les pages ne compte pas, car dans l’absolu rien ne garanti qu’il soit exact.
C’est le numéro d’ordre de la page dans le document qui compte, sachant que la numérotation commence à zéro.imprimer la 3ème et la 5ème et pas la 4ème?
1- Il faut absolument que tu lises ce court article : http://www.academie-francaise.fr/abreviations-des-adjectifs-numeraux
:Smiley03:2- Si la séquence de pages à imprimer n’est pas continue il faut répéter l’instruction.
this.print({bUI: true, bShrinkToFit: true, nStart: 2, nEnd: 2}); // page 3
this.print({bUI: true, bShrinkToFit: true, nStart: 4, nEnd: 4}); // page 5:Smiley15:
23 mai 2017 à 12:16 #62634dauofMembreMerci Merlin, toujours au top, :extra: :extra: :extra: :extra: :extra:
J’ai une autre question, j’ai des champs dans les quels j’insère des nombres de 0 à 1000, je veux que l’affichage soit sur 4 chiffres, peu importe le nombre, si je tape 32, l’affichage serait de 0032.
Merci par avance23 mai 2017 à 16:12 #62635MerlinMaître des clésSi on utilise le Format “Nombre” ça tronque systématiquement les zéros directeurs (à gauche), le plus simple est de mettre le Format sur “Aucun”, et dans Options de limiter à 4 caractères.
24 mai 2017 à 08:09 #62636dauofMembreBonjour Merlin et merci de ta réponse,
Cette solution que j’ai déjà utilisée ne répond pas à mon besoin, si je mets le format sur aucun avec limitation à 4 caractères, je suis obligé de taper tous les chiffres, si je veux afficher 0032, il faut que je tape 0, 0, 3 et 2. Je voulais éviter cela, je ne veux taper que 32 pour afficher 0032, si je tape 1 il faut que ça affiche 0001, et pas besoin de taper 0, 0, 0 et 1.Merci par avance
24 mai 2017 à 09:18 #62637MerlinMaître des clésIl n’y a que 3 conditions à tester pour ajouter le nombre de zéros nécessaires à la valeur saisie :
– si n (event.value) < 10 ==> ajout de trois zéros
– si n > 9 et n < 100 ==> ajout de deux zéros
– si n > 99 et n < 1000 ==> ajout de un zéro25 mai 2017 à 19:40 #62638dauofMembreBonsoir Merlin et merci pour ta réponse, j’ai mis en place ce code pour l’affichage du nombre sur 4 caractères:
var cC1S = this.getField(“C1S”).value;
if (cC1S < 10) {event.value = "0" + "0" + "0" + cC1S;}
else if (cC1S > 9 && cC1S < 100 ) { event.value = "0" + "0" + cC1S;}
else if (cC1S > 99 && cC1S < 1000) { event.value = "0" + cC1S;}
Mais quand je veux vider le champs j’ai toujours des 0 qui restent affichés, j’aimerai bien vider le champs.
merci pour ton aide26 mai 2017 à 09:06 #62639MerlinMaître des clés– Ce script est exécuté par le champ cible, donc il n’y a pas besoin d’indiquer son nom. Ce qui rendra le script plus facilement recyclable.
– Quand on utilise “value” le logiciel essaye de différencier la nature de la valeur (nombre, chaine de caractères, etc.). Dans ce cas on ne veut pas additionner des nombres mais concaténer des chaines de caractères. Donc il vaut mieux utiliser “valueAsString” qui indique qu’il s’agit d’une chaine de caractères.
– Pour “vider” le champ il faut ajouter une autre condition.
Code:var cC1S = event.valueAsString;
if (cC1S == “”) {event.value = “”;}
else if (cC1S < 10) {event.value = "000" + cC1S;}
else if (cC1S > 9 && cC1S < 100 ) { event.value = "00" + cC1S;}
else if (cC1S > 99 && cC1S < 1000) { event.value = "0" + cC1S;}29 mai 2017 à 10:26 #62640dauofMembreBonjour Merlin, et merci pour ton raisonnement très explicite.
J’ai essayé le code, je l’ai intégré comme script de calcul personnalisé, ensuite comme script de format personnalisé, il fonctionne pas, le champ n’affiche que les chiffres saisis, la concaténation n’est pas prise en compte, par contre le champs se vide comme je voulais.merci par avance.
29 mai 2017 à 11:05 #62641MerlinMaître des clésEssaye en remplaçant dans les 4 dernières lignes du script :
event.value =
par
event.target.value =29 mai 2017 à 11:59 #62642dauofMembreMerci merlin de ta réponse, j’ai donc remplacé le code par ceci :
var cC1S = event.valueAsString;
if (cC1S == “”) {event.target.value = “”;}
else if (cC1S < 10) {event.target.value = "000" + cC1S;}
else if (cC1S > 9 && cC1S < 100 ) { event.target.value = "00" + cC1S;}
else if (cC1S > 99 && cC1S < 1000) { event.target.value = "0" + cC1S;} aucun changement, par contre si je mets celui-ci:
var cC1S = this.getField(“C1S”).value;
if (cC1S == “”) {event.value = “”;}
else if (cC1S < 10) {event.value = "0" + "0" + "0" + cC1S;}
else if (cC1S > 9 && cC1S < 100 ) { event.value = "0" + "0" + cC1S;}
else if (cC1S > 99 && cC1S < 1000) { event.value = "0" + cC1S;}
Le code répond à mon besoin.merci par avance
29 mai 2017 à 13:05 #62643MerlinMaître des clésParfois, à trop vouloir simplifier on fini par se compliquer la vie :geek: :Smiley03:
30 mai 2017 à 17:19 #62644dauofMembremerci pour tout merlin :bonjour: :bonjour:
31 mai 2017 à 07:01 #62645BellierkjMembremerci pour tout merlin
31 mai 2017 à 09:55 #62646MerlinMaître des clés:Smiley15:
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.