IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AppleScript Discussion :

Sélection de pages à l'impression


Sujet :

AppleScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Par défaut Sélection de pages à l'impression
    Bonjour à tous,

    J'ouvre ce sujet en commençant par préciser que ceci est mon premier post sur ce forum et également mon premier essai sur appleScript.

    J'ai réalisé une petite série d'actions avec automator et applescript permettant:

    1) export d'un fichier Excel avec tous ses onglets en PDF
    2) combinaison de ces PDF pour n'avoir qu'un seul fichier
    3) enregistrement et changement de nom pour le PDF ainsi généré
    4) impression du PDF final avec un préréglage enregistré au préalable (en utilisant "preview")
    5) suppression de tous les PDF générés pour ne garder que le fichier Excel d'origine.

    Mon problème se situe au niveau de l'étape 4. En effet je ne souhaite imprimer que les deux premières pages du PDF final. Voici le code AppleScript utilisé pour l'mpression:

    on run {input, parameters}
    do shell script "defaults write com.apple.print.custompresets com.apple.print.lastPresetPref RVM"
    tell application "Preview"
    activate
    open "Filepath:Untitled.pdf"
    tell application "System Events" to tell process "Preview"
    delay 1
    keystroke "p" using command down
    delay 1
    --keystroke return
    end tell
    end tell
    return input
    Le tout exécuté sous MAC OS 10.5.8 en interface FR, avec Office 2011, automator et Applescript.

    J'ai pensé soit à tronquer le PDF à partir de la page 2, soit à séléctionner grâce à AppleScript L'option "Pages" de la fenêtre d'impression ouverte lors de
    keystroke "p" using command down
    et spécifier le nombre de pages à ce moment là.

    Mais dans l'un comme l'autre des cas je n'ai aucune idée de comment procéder. Quelqu'un pourrait-il m'aiguiller sur l'une de ces deux options, voire sur une troisième non envisagée ?

    Je vous remercie par avance pour votre aide.

  2. #2
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonsoir MrSpark,
    Bienvenu dans ce forum.

    Tout d'abord une petite question pour que je sois sûr de comprendre ton processus :
    Tu pars d'un fichier Excel avec onglets, tu le transformes en PDF, que tu imprimes puis que tu supprimes...
    J'en déduis donc que tu souhaites imprimer ton Excel sans garder trace du PDF.
    Dans ce cas, pourquoi ne pas imprimer à partir d'Excel ?
    Me manque-t-il un détail ? Quel est le but du passage via PDF ?


    Quant à la question sur l'impression, je te conseille d'éviter les appels Keystroke autant que faire se peut.
    Certes, dans de rares cas, on a pas le choix, mais cela doit être un dernier recours. En effet si l'utilisateur est devant son Mac lors de l'exécution du script, il peut gravement le perturber en interférant dans l'interface utilisateur que prévoit ton script.

    Sans Keystroke, Applescript permet d'utiliser la fonction print avec les propriétés "print settings", qui contiennent :
    print settings n
    properties
    copies (integer) : the number of copies of a document to be printed
    collating (boolean) : Should printed copies be collated?
    starting page (integer) : the first page of the document to be printed
    ending page (integer) : the last page of the document to be printed
    pages across (integer) : number of logical pages laid across a physical page
    pages down (integer) : number of logical pages laid out down a physical page
    requested print time (date) : the time at which the desktop printer should print the document...
    error handling (standard/detailed) : how errors are handled
    fax number (text) : for fax number
    target printer (text) : the queue name of the target printer
    Start pages et end pages correspondent à ce que tu souhaites.

    En fait l'éditeur de script contient une documentation qui te sera d'un grand secours.
    Pour la trouver, ouvre ton éditeur Applescript, puis la fenêtre Bibliothèque (menu Fenêtre).
    Dans la liste qui s'affiche, tu cherches l'application qui t'intéresse (Microsoft Excel ou autre). Les boutons + permettent d'ajouter les applications qui sont installées sur ton Mac.
    Un double click sur l'application de la liste ouvre une fenêtre avec tout ce qui est scriptable.

    Cerise sur le gateau ..il y a même un champ de recherche en haut à droite.
    Tu entres "print", tu sélectionnes la commande dans la liste, et elle apparaît en dessous : Print with properties print settings
    Clique sur Print setting et tu trouves ce que tu cherches.

    A titre d'exemple, voici un bout de code qui imprime seulement les pages 2 à 4 d'un fichier Excel ouvert :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    property page_debut : 2 -- variable de page debut d'impression
    property page_fin : 4 -- variable de page fin d'impression
     
    tell application "Microsoft Excel"
    	front document activate
    	print front document with properties {copies:1, starting page:page_debut, ending page:page_fin}
    end tell
    J'ajoute que si la mise en page Excel te pose un problème, tu peux même, dans Applescript, lancer un macro Excel qui fera tout bien, avant de laisser Applescript faire le reste...
    Bon courage

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Par défaut
    Bonjour et Merci pour cette réponse PBELL,

    Alors pour expliquer plus en détail le pourquoi de la nécessité de passer par automator+applescript :

    - Nous avions commencé par inclure sur chaque fichier Excel une macro formattant et imprimant directement les deux premiers onglets en recto/verso. La macro fonctionnait efficacement sous PC mais impossible de faire de même sur MAC.

    - La deuxième option a été de faire un préréglage recto verso et de simplement imprimer manuellement les deux premiers onglets en les sélectionnant tous les deux avec CMD + clic. Or au lieu de nous produire un aperçu de deux pages il inclut une page vide à la place du deuxième onglet (même en définissant manuellement la zone d impression au préalable).

    -D'oû ma troisième solution en passant par Automator et AppleScript:
    L'exportation en PDF n'inclut pas les pages "vides" obtenues sur les solutions précédentes et formate le document tel qu'on souhaite l'avoir.

    Mais d'après tes précisions je vais essayer de retravailler le script pour éliminer les keystroke, ces commandes sont effectivement un peu longues a passer et un print direct avec les propriétés passées en paramètre semble bien plus rapide à l'exécution. Mon but étant pour l'utilisateur final qu'il aie le moins de manips possibles à faire.

    Je vais me pencher sur les parties de la doc de l'éditeur de script que tu m'as citées et je reviendrais avec le code final pour boucler le sujet,

    Merci pour ton aide

Discussions similaires

  1. Problème d'impressions (sélection de pages)
    Par nicomani dans le forum Word
    Réponses: 4
    Dernier message: 28/04/2014, 12h20
  2. [AC-2003] automatisation d'impression sélection de pages
    Par KSD45 dans le forum VBA Access
    Réponses: 2
    Dernier message: 16/08/2011, 06h16
  3. Page d'impression
    Par Poussy-Puce dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 02/02/2006, 22h47
  4. page pour impression
    Par maximenet dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 03/01/2006, 10h23
  5. Comment modifier la taille de la page d'impression ?
    Par edam dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 03/05/2005, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo