Donnez vie à vos documents numériques !
 

Impression de pages masquées

abracadabraPDF Forums PDF – Général Impression de pages masquées

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45673
    dauof
    Membre

    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.

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

    #62630
    dauof
    Membre

    Merci merlin de ta réponse rapide, comment fait-on pour n’imprimer que 2 pages sur 3?

    #62631
    Merlin
    Maître des clés

    comment 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});
    #62632
    dauof
    Membre

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

    #62633
    Merlin
    Maître des clés

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

    #62634
    dauof
    Membre

    Merci 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 avance

    #62635
    Merlin
    Maître des clés

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

    #62636
    dauof
    Membre

    Bonjour 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

    #62637
    Merlin
    Maître des clés

    Il 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éro

    #62638
    dauof
    Membre

    Bonsoir 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 aide

    #62639
    Merlin
    Maî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;}

    #62640
    dauof
    Membre

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

    #62641
    Merlin
    Maître des clés

    Essaye en remplaçant dans les 4 dernières lignes du script :

    event.value =
    par
    event.target.value =

    #62642
    dauof
    Membre

    Merci 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

    #62643
    Merlin
    Maître des clés

    Parfois, à trop vouloir simplifier on fini par se compliquer la vie  :geek:  :Smiley03:

    #62644
    dauof
    Membre

    merci pour tout merlin :bonjour: :bonjour:

    #62645
    Bellierkj
    Membre

    merci pour tout merlin

    #62646
    Merlin
    Maître des clés

    :Smiley15:

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