abracadabraPDF › Forums › PDF – Général › Imprimer des pages non contiguës ?
- Ce sujet est vide.
-
CréateurSujet
-
30 avril 2016 à 20:30 #45402
eclauquenjo
ParticipantBonjour,
Pour imprimer les pages 1 à 3, j’utilise :
Code:this.print(true, 1, 3);Mais comment imprimer les pages 1 et 3 ?
-
CréateurSujet
-
AuteurRéponses
-
1 mai 2016 à 07:43 #60575
Merlin
Maître des clésBonjour.
Pour imprimer les pages 1 à 3, j’utilise :
Code:this.print(true, 1, 3);Non, avec ce script tu imprimes les pages 2 à 4, parce-qu’en JavaScript le compte commence toujours à zéro. :geek:
Pour imprimer les pages 1 à 3 :
Code:this.print(true, 0, 2);Qu’on peut également exprimer ainsi :
Code:this.print({bUI: true, bShrinkToFit: true, nStart: 0, nEnd: 2});bUI : bring User Interface : afficher la boite de dialogue d’impression.
bShrinkToFit : coche l’option « Réduire les pages hors format »Pour imprimer la page 1 et la page 3 c’est tout simple, il faut répéter l’instruction :
Code:this.print(true, 0);
this.print(true, 2);Ou :
Code:this.print({bUI: true, bShrinkToFit: true, nStart: 0});
this.print({bUI: true, bShrinkToFit: true, nStart: 2});1 mai 2016 à 14:09 #60576eclauquenjo
ParticipantBonjour Merlin, encore et toujours toi.
J’avais pensé à répéter l’instruction. Mais cela ne me permet pas de faire du recto verso.
Y a-t-il une instruction pour imprimer 2 pages non contiguës en recto verso.1 mai 2016 à 14:40 #60577Merlin
Maître des clésJe ne crois pas, mais on peut ruser.
C’est-à-dire créer un « Modèle » à partir de la page 2, parce-qu’on peut masquer-afficher une page modèle avec JavaScript.Ensuite avant d’envoyer l’impression :
– il faut masquer la page 2-modèle : donc la page 3 devient la page 2, etc.,
– imprimer les pages 1 et 2 (en fait la 3) en recto-verso,
– et dé-masquer la page 2.:Smiley15:
1 mai 2016 à 14:49 #60578eclauquenjo
ParticipantJe confirme que c’est rusé. Même un peu trop pour moi.
Je ne connais pas la notion de « modèle ». Comment le créer, le masquer et le démasquer ?1 mai 2016 à 15:40 #60579Merlin
Maître des clésQuelle est ta version d’Acrobat Pro ?
1 mai 2016 à 16:40 #60580eclauquenjo
ParticipantAcrobat Pro DC
1 mai 2016 à 16:51 #60581Merlin
Maître des clésTu cherches « modèle » dans le panneau de recherche des outils, qui va afficher « Modèles de pages ».
Une fois le panneau des pages ouvert il faut sélectionner la page concernée, saisir un nom, et cliquer sur Ajouter.
Par défaut un nouveau modèle de page est visible, il faut cliquer sur l’icône d’œil pour le masquer/afficher.Ensuite on utilise un script comme ceci pour l’impression :
Code:this.getTemplate(« NOMduMODELE »).hidden = true;
this.print({bUI: true, bShrinkToFit: true, nStart: 0, nEnd: 1});
this.getTemplate(« NOMduMODELE »).hidden = false;Sans oublier de sélectionner « Recto-verso » dans les Propriétés du document : Avancées : Mode recto-verso.
1 mai 2016 à 17:28 #60582eclauquenjo
ParticipantCela fonctionne très bien à la première impression. Le problème est que les « modèles » lors du hidden=false, réapparaisse a la fin de mon document. Du coup, les impressions suivantes sont décalées.
Comment faire « réapparaitre » les pages à leur position initiale ?1 mai 2016 à 17:46 #60583Merlin
Maître des clésNon, rien ne permet de déterminer l’emplacement de la page réapparue.
A priori je dirais qu’il faudrait créer un modèle pour chacune des pages suivantes (c’est JavaScriptable), les masquer après l’impression, et faire réapparaitre tous les modèles dans l’ordre.
Mais ça risque de devenir inutilement compliqué… :camenerve:1 mai 2016 à 18:53 #60584eclauquenjo
ParticipantEn l’état, cela règle déjà pas mal mon souci. Je ne veux pas créer inutilement d’usine à gaz. Dans la mesure où mon document ne doit être imprimé qu’une fois par ouverture, je vais me contenter de bloquer son enregistrement.
Merci Merlin
2 mai 2016 à 09:44 #60585Merlin
Maître des clésje vais me contenter de bloquer son enregistrement.
Comment vas tu faire ?
2 mai 2016 à 18:14 #60586eclauquenjo
ParticipantDans propriété du fichier/lecture seule.
Pour revenir au code, il fonctionne bien avec Acrobat Pro DC. Mais pas du tous avec Acrobat Reader DC 2015.010.20060.
Y a-t-il une manipulation à réaliser ou ce code n’est pas compatible avec Reader ?2 mai 2016 à 22:04 #60587Merlin
Maître des clésLa documentation ne mentionne aucune restriction d’utilisation avec Reader…
Ça devrait fonctionner. :Euuuh:9 mai 2016 à 07:43 #60588bebarth
Maître des clésbonjour,
comme on dit, j’arrive un peu après la bataille… mais voici ce que je propose : inverser les pages 2 et 3, imprimer les pages 1 à 2 puis remettre les pages 2 et 3 dans le bon ordre.
je ne sais pas si les pages sont réellement inversées ou si c’est juste une indexation des pages (Merlin ???) mais l’action s’exécute très rapidement même sur un document avec beaucoup de pages !
…plus l’alerte d’impression pour n’imprimer qu’une fois.
@+
:bonjour:if (impression == « »)
{
this.movePage(2,0);
this.print(false,0,1);
this.movePage(2,0);
var impression = 1;
}
else app.alert(« Les pages 1 et 3 ont déjà été imprimées. »,3);9 mai 2016 à 08:13 #60589Merlin
Maître des cléscomme on dit, j’arrive un peu après la bataille…
Vieux motard que jamais !
Excellente idée, je n’y avais pas pensé.11 juin 2016 à 18:39 #60590eclauquenjo
ParticipantBonjour bebarth et Merlin,
Ta solution, bebarth, est simple et efficace . Malheureusement, elle ne fonctionne pas avec Acrobat Reader.
Jusqu’a this.print(), tous fonctionnent, mais plus rien à partir de this.movePage(). Il n’y a aucun message d’erreur de la part de reader. :mur:11 juin 2016 à 21:05 #60591bebarth
Maître des clésbonsoir,
Effectivement, movePage n’est pas autorisé avec Adobe Reader…
Dans le tableau de la capture d’écran, le X signifie : The property or method is not allowed in Adobe Reader but is available in Acrobat Pro and Acrobat Standard.
J’écris la plupart du temps des scripts pour une utilisation perso avec Acrobat Pro aussi j ‘ai souvent tendance à oublier de vérifier !
Désolé, je vais réfléchir pour une éventuelle solution.
@+
:bonjour: -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.