Donnez vie à vos documents numériques !
 

Page dédiée à l’impression avec cases à cocher. RÉSOLU

abracadabraPDF Forums PDF – Général Page dédiée à l’impression avec cases à cocher. RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #43821
    bruninho
    Membre

    Bonjour,

    Je voudrais en fait avoir une page avec une liste de toutes mes pages répertoriées dans mon formulaire.
    Et je veux mettre une case à cocher pour chaque page (ligne de texte)

    Je coche les cases des pages que je souhaite imprimer.
    Et j’ajoute un bouton IMPRIMER qui m’imprime la sélection (les pages dont la case est cochée)

    Est-ce possible ?

    D’avance merci pour votre aide.

Affichage de 24 réponses de 1 à 24 (sur un total de 24)
  • Auteur
    Réponses
  • #50950
    alex
    Membre

    Oui, à priori,c’est possible et pas vraiment compliqué.
    Si la liste des pages doit se faire de manière automatique à partir d’un élément des pages à répertorier, il faut le préciser (par exemple à partir d’un champ de titre).
    On voit ça demain…

    #50951
    alex
    Membre

    La page jointe propose un exemple de sélection multiple de pages à imprimer.
    Les cases à cocher sont obtenues par duplication du champ « ccpage » sous Acrobat (ici ccpage.0 à ccpage.13)
    Une case à cocher « ccpageT » lance un script de sélection ou désélection de toutesl les cases à cocher.
    Le bouton « Imprimer » lance le script d’impression ici en mode silencieux page par page. Illustration de try/catch pour inhiber les messages d’erreur obtenus si les pages à imprimer sont manquantes.
    L’avatar (ours Ponpon) cache un bouton qui lance un script qui écrit et indexe les textes des ToolTips des cases à cocher.
    Un script de document nommé « Initialisation() » précise le nombre de cases (ici 14 cases notées de 0 à 13).

    [attachment deleted by admin]

    #50952
    bruninho
    Membre

    Super… C’est exactement ce que je voulais.
    Merci.
    Je teste ça sur mon formulaire de suite.

    Merci encore

    #50953
    bruninho
    Membre

    Une dernière question… Est-il possible que la page 8 (par ex) puisse être imprimée 3 fois ?

    Merci d’avance de votre réponse

    #50954
    alex
    Membre

    Oui, dans ce cas il faudrait prévoir pour chaque case à cocher, un petit menu déroulant qui permettrait de fixer le nombre de copies de la page considérée. Ce menu déroulant serait par défaut sur la valeur 0 (cases non cochées) ou 1 (cases cochées).
    Autre manière de faire, on pourrait ne travailler qu’avec une série de listes déroulantes, avec une commande case à cocher unique « Tout imprimer » passant les valeurs par défaut à 1 (cochée) ou 0 (non cochée).
    Evidemment, il faudrait réécrire le script d’impression en fonction de l’option choisie…
    Bon week-end.

    #50955
    alex
    Membre

    Voici la solution à base de menus déroulants:
    La page jointe propose un exemple de sélection multiple de pages à imprimer.
    Les menus déroulants sont obtenue par duplication du champ « NbrePages » sous Acrobat (ici NbrePagese.0 à NbrePages.13)
    Une case à cocher « ccpageT » lance un script qui passe tous mes menus déroulants à zéro ou à la valeur courante issue du sélecteur « NbrePagesDefaut ».
    Le bouton « Imprimer » lance le script d’impression ici en mode silencieux page par page. Illustration de try/catch pour inhiber les messages d’erreur obtenus si les pages à imprimer sont manquantes.
    L’avatar (ours Ponpon) cache un bouton qui lance un script qui écrit et indexe les textes des ToolTips des menus déroulants.
    Un script de document nommé « Initialisation() » précise le nombre de pages (ici 14 pages notées de 0 à 13).

    [attachment deleted by admin]

    #50956
    Merlin
    Maître des clés

    Trop fort le nounours !
    :bravo:

    #50957
    bruninho
    Membre

    Merci pour l’exemple.

    En fait, j’aurai voulu que toutes les pages sauf une soient avec une case à cocher pour une impression en 1 exemplaire.
    Et la case restante à imprimer en 3 exemplaires (sous forme de liste ou case à cocher mais paramétrer pour 3 copies de cette pages.

    En résumé, j’ai 21 pages.
    Seul la page 10 doit être imprimée en 3 exemplaires.
    Les autres en 1 exemplaires.

    Mais il faut que je puisse toujours avoir le choix d’imprimer qu’une sélection de ces pages.

    J’ai donc essayé un mix de vos 2 exemples. Mais pas facile… :Euuuh:

    #50958
    alex
    Membre

    Effectivement, difficile de faire un mixte, mais en partant de la première méthode, ça doit être jouable. Faites-moi signe si ça vous paraît inextricable.

    #50959
    bruninho
    Membre

    J’ai fait pas mal d’essais mais mes connaissances sont limitées.
    Aussi je vous fais un petit signe… si vous pouviez m’aider.

    merci d’avance

    #50960
    alex
    Membre

    Voilà la solution personnalisée de bruninho…

    Pour ceux qui veulent tester en ne conservant que la page de garde sans lancer l’impression, passer les lignes 17 et 32 du script d’impression en commentaires:
    this.print(false,indexpage,indexpage);
    devient
    //this.print(false,indexpage,indexpage);
    puis ouvrir la console (Pomme-J pour les Mac, Ctrl pour les Pc)

    Cette manipulation est valable pour les deux autres exemples précédants.

    Nota:seules les solutions 1 et 2 sont génériques. La 3 répond au problème particulier de bruninho qui pourra aussi fixer la valeur du nombre d’exemplaires par défaut à 3 dans le script de la case à cocher « ccpage.9 »
    this.getField(« NbrePages.9 »).currentValueIndices=[3];

    [attachment deleted by admin]

    #50961
    bruninho
    Membre

    Un énorme MERCIIIII !!!  :bravo:

    Je m’empresse de le tester…
    Merci encore pour toute ton aide et pour la réactivité…

    #50962
    bruninho
    Membre

    Bonjour,

    A l’exemple 3, je souhaite ajouter une 2ème case à cocher liée à une liste déroulante (nombre d’impressions souhaitées).
    Il me reste qu’à changer le code du bouton IMPRIMER.

    Or, après un paquet d’essais, je n’arrive jamais à ce que ces 2 cases n’impriment que la quantité choisie dans la liste.

    Je joins le code de mon bouton IMPRIMER.
    Quel code dois-je ajouter pour commander l’impression de la page 21 par ex (en plus de la page 13 dans mon ex ci-joint) ?

    Merci d’avance de votre aide

    [attachment deleted by admin]

    #50963
    Sky
    Membre

    Allo,
    est-ce possible d’avoir le même résultat mais avec la fonction enregistré sous à la place de imprimer et si oui comment SVP ?!
    :soleil:

    #50964
    bebarth
    Maître des clés

    bonjour,

    est-ce possible d’avoir le même résultat mais avec la fonction enregistré sous à la place de imprimer…

    Sur une conversation qui date d’une dizaine d’année, il serait bon de reformuler exactement ta demande, sans que l’on ait à tout relire depuis le début !
    Seul Merlin peut se souvenir car il me semble qu’Alex (qui fût l’une de mes références en JavaScript) ne participe plus au forum depuis un certain temps, et il y a 10 ans je ne faisais que poser des questions…
    @+
    :bonjour:

    #50965
    Merlin
    Maître des clés

    Alex profite de sa retraite bien méritée depuis quelques temps déjà.  :Smiley03:

    La réponse est oui et ça devrait être assez simple puisqu’a priori il suffit de remplacer la fonction « print » par la fonction « saveAs ».

    #50966
    Sky
    Membre

    Allo ! J’avoue ne pas avoir portée attention à la date du post.

    Présentement le script permet d’imprimer seulement les pages cochées.
    Nous voudrions le modifier pour que ce soit la fenêtre saveAs plutôt que la fenêtre d’impression.
    Résultat désiré:  Enregistrer sous seulement les cases des pages cochées désirées. Éventuellement chaque case à cocher sera au bout d’un élément d’une table des matières

    voici le code qui a été fourni il y a 10 ans, je pense qu’il y a plus qu’une information à changer comme il y a plusieurs références à l’impression mais je n’y arrive pas:

    Code:
    console.clear();
    Initialisation();
    console.println(« Contrôle de l’imprimante utilisée: »)
    ppp=this.getPrintParams();
    console.println(« Nuance PDF »);
    indexpage=0;
    while (indexpageif(this.getField(« ccpage. »+indexpage).isBoxChecked(0))
    {
    pp=indexpage+1;
    console.println(« Impression de la page: »+pp);
    try
    {
    this.print(false,indexpage,indexpage);
    }
    catch(e)
    {
    app.alert(« Impression page « +pp+ » impossible. »,1);
    }
    }
    indexpage=indexpage+1;
    }
    //console.show();

    Pouvez-vous m’aider S.V.P. ?

    #50967
    Merlin
    Maître des clés

    1. Fais attention que la deuxième ligne « Initialisation(); » fait appel à une fonction enregistrée en script de document.

    2. C’est cette ligne qu’il faut remplacer :
    this.print(false,indexpage,indexpage);

    Mais contrairement à print la fonction saveAs ne permet pas de passer les pages en paramètre. Donc il faut d’abord extraire les pages cochées dans un nouveau document avant de pouvoir l’enregistrer sous.

    Sur le principe c’est simple mais ça demande un peu de temps, je ne vais pouvoir t’aider plus tout de suite.
    (je respecte scrupuleusement les jours de congé et les ponts républicains)  :Smiley15:

    Tu auras besoin des fonctions :
    extractPages : https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/Acro12_MasterBook/JS_API_AcroJS/Doc_methods.htm?rhhlterm=extractPages&rhsyns=%20#XREF_60156_extractPages
    saveAs : https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/Acro12_MasterBook/JS_API_AcroJS/Doc_methods.htm?rhhlterm=saveAs&rhsyns=%20#XREF_34461_saveAs

    #50968
    bebarth
    Maître des clés

    bonjour,

    je respecte scrupuleusement les jours de congé et les ponts républicains  :Smiley15:

    N’ayant personnellement plus de ponts, je ne respecte plus que les jours fériés républicains !!!  :geek:

    Le script devrait être quelque chose comme :

    Code:
    for (var i=13; i>0; i–) {
        if (this.getField(« ccpage. »+i).value== »Off ») this.deletePages({nStart: i});
    }
    this.saveAs({cPath: this.path.substring(0,this.path.length-4)+ » (fichier partiel).pdf »});

    Mais effectivement il ne peut être exécuté à partir d’un bouton. Soit une action ou un script de document !
    De plus, si tu lances le script à partir d’un bouton, i doit être strictement supérieur à 0 car on ne peut pas supprimer la page à partir de laquelle le script est lancé.
    @+
    :bonjour:

    #50969
    Sky
    Membre

    Premièrement merci beaucoup pour vos réponses.
    Comment ça des congés on a pas ça ici dans mon coin de pays ?!  :joker:

    J’aurais besoin d’un peu plus de détails, j’ai testé plusieurs choses mais je n’arrive pas à solutionner mon problème.  :mur:

    Je ne suis pas certaine de à quel endroit remplacer la ligne par le nouveau code.

    Je doit modifier le javascript du document ou celui du bouton ? Je débute et ça ne m’appairait pas simple.

    Est-ce possible de m’indiquer à quel endroit dans le PDF je dois changer le code.

    #50970
    bebarth
    Maître des clés

    2 solutions :
    Soit tu lances l’action Save_Sky.sequ ou tu places le fichier Save_Sky.txt dans le répertoire JavaScript d’Acrobat après l’avoir renommé Save_Sky.js. Dans ce cas tu peux utiliser le bouton.
    @+
    :bonjour:

    #50971
    Merlin
    Maître des clés

    Comment ça des congés on a pas ça ici dans mon coin de pays ?

    https://fr.wikipedia.org/wiki/F%C3%AAte_nationale_fran%C3%A7aise
    :Smiley01:

    #50972
    Sky
    Membre

    2 solutions :
    Soit tu lances l’action Save_Sky.sequ ou tu places le fichier Save_Sky.txt dans le répertoire JavaScript d’Acrobat après l’avoir renommé Save_Sky.js. Dans ce cas tu peux utiliser le bouton.
    @+
    :bonjour:

    :Euuuh: :doute:  haha je n’y comprend rien jamais toucher à ce genre d’options  :Ooops: . Mais bonne fête nationale  :extra: !! Je vais continuer mes recherches.

    #50973
    bebarth
    Maître des clés

    bonjour,

    je n’y comprend rien jamais toucher à ce genre d’options.
    Je vais continuer mes recherches.

    Regarde ce tuto :
    https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/
    avec cet utilitaire :
    https://www.abracadabrapdf.net/utilitaires/utilitaires-pdf/show_me_the_path/
    Avec ça, tu devrais t’en sortir ! Demande si tu as besoin d’explications.
    @+
    :bonjour:

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