abracadabraPDF › Forums › PDF – Général › Page dédiée à l’impression avec cases à cocher. RÉSOLU
- Ce sujet est vide.
-
CréateurSujet
-
11 juin 2010 à 13:56 #43821bruninhoMembre
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.
-
CréateurSujet
-
AuteurRéponses
-
13 juin 2010 à 13:56 #50950alexParticipant
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…14 juin 2010 à 06:53 #50951alexParticipantLa 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]
17 juin 2010 à 14:41 #50952bruninhoMembreSuper… C’est exactement ce que je voulais.
Merci.
Je teste ça sur mon formulaire de suite.Merci encore
18 juin 2010 à 14:58 #50953bruninhoMembreUne 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
18 juin 2010 à 15:47 #50954alexParticipantOui, 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.21 juin 2010 à 10:40 #50955alexParticipantVoici 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]
21 juin 2010 à 17:01 #50956MerlinMaître des clésTrop fort le nounours !
:bravo:24 juin 2010 à 11:20 #50957bruninhoMembreMerci 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:
24 juin 2010 à 16:44 #50958alexParticipantEffectivement, 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.
25 juin 2010 à 07:37 #50959bruninhoMembreJ’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
25 juin 2010 à 19:44 #50960alexParticipantVoilà 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]
28 juin 2010 à 15:06 #50961bruninhoMembreUn énorme MERCIIIII !!! :bravo:
Je m’empresse de le tester…
Merci encore pour toute ton aide et pour la réactivité…14 décembre 2011 à 16:32 #50962bruninhoMembreBonjour,
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]
10 juillet 2020 à 15:30 #50963SkyMembreAllo,
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:11 juillet 2020 à 07:12 #50964bebarthMaître des clésbonjour,
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:11 juillet 2020 à 09:50 #50965MerlinMaître des clésAlex 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”.
13 juillet 2020 à 13:00 #50966SkyMembreAllo ! 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èresvoici 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. ?
13 juillet 2020 à 13:59 #50967MerlinMaître des clés1. 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_saveAs13 juillet 2020 à 16:26 #50968bebarthMaître des clésbonjour,
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:13 juillet 2020 à 19:22 #50969SkyMembrePremiè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.
13 juillet 2020 à 21:48 #50970bebarthMaître des clés2 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:14 juillet 2020 à 12:40 #50971MerlinMaître des clésComment ç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:14 juillet 2020 à 12:54 #50972SkyMembre2 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.
16 juillet 2020 à 05:54 #50973bebarthMaître des clésbonjour,
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: -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.