Developpez.com

Une très vaste base de connaissances en informatique avec
plus de 100 FAQ et 10 000 réponses à vos questions

Developpez.com - 4D
X

Choisissez d'abord la catégorieensuite la rubrique :


Piloter votre imprimante sous Windows et Mac OS X avec 4D 2004

Date de publication : Septembre 2005

Par Aziz ELGHOMARI (Directeur Support Technique 4D SA)
 


I. Introduction
II. Utilisation des commandes du Plug-in (Sous Windows)
GetPrinterList
DefaultPrinter
Setprinter
Spécificités Windows 2000 et supérieur
III. Utilisation d’AppleScript pour Mac Os X
IV. Base exemple
Partie MacOS
Partie Windows
V. Conclusion
VI. Bases exemples


I. Introduction

A partir de 4D 2003, de nouvelles commandes 4D (Lire imprimante courante, FIXER IMPRIMANTE COURANTE, LISTE IMPRIMANTES) permettent de désigner l'imprimante à utiliser pour les impressions avec l'application 4D courante (pour les imprimantes réseaux et local) sans modifier l'imprimante par défaut.

La méthode proposée par cette note technique (sous forme de Plug-in pour Windows et AppleScript pour Macintosh) modifie directement l'imprimante définie par défaut et de ce fait toutes les applications (plug-ins compris bien sûr) peuvent bénéficier du changement d'imprimante à la volée.


II. Utilisation des commandes du Plug-in (Sous Windows)

Les fonctions du Plug-in PiloterImprimante sont les suivantes :


GetPrinterList

MyErr:=GetPrinterList(Liste_Imprimante)


Paramètre Type Description
Liste_Imprimante Tableau Alpha <- Liste des imprimantes retournées
MyErr Entier <- Code d’erreur retourné


Nous récupérons dans le tableau alphanumérique la liste des imprimantes (locales et réseaux) disponibles dans la machine.

info Note : Le code d'erreur retourne 0, si tout va bien et 1 s'il y a un problème.
    TABLEAU ALPHA(60;Liste_imprimante;10)

    C_ALPHA(80;Nom_tab)
    C_ENTIER(MyErr)

    MyErr:=GetPrinterList (Liste_imprimante)


DefaultPrinter

MyErr:=DefaultPrinter (imprimante_par_defaut)


Paramètre Type Description
Imprimante par défaut Tableau Alpha <- Nom de l’imprimante par défaut
MyErr Entier <- Code d’erreur retourné


Nous récupérons dans le paramètre de type chaîne, l'imprimante définie par défaut par l'utilisateur.


    C_ENTIER LONG(MyErr)

    C_ALPHA(80;imprimante_par_defaut)

    MyErr:=DefaultPrinter (imprimante_par_defaut)


Setprinter

MyErr:=SelectPrinter (imprimante_a_definir)


Paramètre Type Description
Imprimante à définir Chaîne <- Nom de l’imprimante par défaut
MyErr Entier <- Code d’erreur retourné

    C_ENTIER LONG(MyErr)

    C_ALPHA(80;imprimante_a_definir)
    imprimante_a_definir="\\DC-1\Laser HP Support"

    MyErr4:=SelectPrinter (imprimante_a_definir)


Nous passons dans le paramètre de type chaîne, le nom de l'imprimante que nous voulons définir par défaut.


Spécificités Windows 2000 et supérieur

SelectPrinter

Pour définir l'imprimante définie par défaut, il faut utiliser la commande GetDefaultPrinter.


ListPrinter

Pour récupérer la liste des imprimantes, il faut utiliser la commande EnumPrinters et lui passer le paramètre PRINTER_ENUM_LOCAL pour les imprimantes locales et PRINTER_ENUM_CONNECTIONS pour les imprimantes réseaux.


Defaultprinter

Pour récupérer l'imprimante par défaut, il faut utiliser la commande SetDefaultPrinter.


III. Utilisation d’AppleScript pour Mac Os X

Pour MacOs X nous allons exécuter l'Applescript qui va nous permettre de modifier à la volée l'imprimante définie par défaut.


Contenu de l'AppleScript

   tell application "Printer Setup Utility"
      set dialogsentence to "" -- item 1 of param1 as text
      set prntlist to {} as list

      repeat with i from 1 to the (count of printer)
         set pname to name of printer i
         set the end of prntlist to pname
      end repeat

      set the dialog_result to choose from list prntlist with prompt dialogsentence --"Choisissez la nouvelle imprimante"
      if result is not {} and result is not equal to false then
         set newprinter to the result as text

         set current printer to printer newprinter
         quit
      end if

   end tell


et pour l'exécuter nous allons utiliser la nouvelle commande 4D 2004 : LANCER PROCESS EXTERNE


Exemple

    LANCER PROCESS EXTERNE ("osascript \""+$CheminApplescript+"\"";$in;$out;$error)


IV. Base exemple


Partie MacOS

Lorsque vous cliquez sur l'item «Démonstration» du menu Fichier, l'écran suivant apparaît

Pictures 0449x0356



Dans la liste déroulante à droite s'inscrit la liste des imprimantes, la partie « Imprimante par défaut », nous récupérons l'imprimante par défaut :

Pictures 0450x0357



Le bouton « Définir comme défaut » permet d'exécuter l'AppleScript et d'avoir le dialogue de modification de l'imprimante par défaut :

Pictures 0627x0408


Le bouton "Driver Par Défaut" dans la partie «Test Impression» affiche le format d'impression.


Partie Windows

Lorsque vous cliquez sur l'item Demonstration du menu Fichier, l'écran suivant apparaît :

Pictures 0460x0374



Le test se décompose en trois phases :

  • Liste des drivers : en cliquant sur le bouton "Remplir la liste", la liste des imprimantes s'affiche.

Pictures 0460x0372

  • Imprimante par défaut : après avoir sélectionné une imprimante par défaut dans la liste des drivers, cela vous affiche le nom de l'imprimante qui a été sélectionnée par défaut.

Pictures 0462x0373

  • Tester l'impression : vous renvoie la fenêtre d'impression. Depuis celle-ci, vous pouvez définir votre format d'impression.

V. Conclusion

La note technique va permettre de modifier à la volée l'imprimante définie par défaut au niveau de la machine sous Windows et sous Macintosh, et toutes les applications (les Plug-ins 4D compris) pourront bénéficier du changement d'imprimante.

Le plug-in pour Windows et l'applescript pour 4D peuvent être utilisés directement dans vos codes, le code source livré peut être amélioré ou intégré à d'autres développements.


VI. Bases exemples

Téléchargez les bases exemples :

base exemple Mac

base exemple Windows

__________________________________________________
Copyright © 1985-2009 4D SA - Tous droits réservés
Tous les efforts ont été faits pour que le contenu de cette note technique présente le maximum de fiabilité possible.
Néanmoins, les différents éléments composant cette note technique, et le cas échéant, le code, sont fournis sans garantie d'aucune sorte. L'auteur et 4D S.A. déclinent donc toute responsabilité quant à l'utilisation qui pourrait être faite de ces éléments, tant à l'égard de leurs utilisateurs que des tiers.
Les informations contenues dans ce document peuvent faire l'objet de modifications sans préavis et ne sauraient en aucune manière engager 4D SA. La fourniture du logiciel décrit dans ce document est régie par un octroi de licence dont les termes sont précisés par ailleurs dans la licence électronique figurant sur le support du Logiciel et de la Documentation afférente. Le logiciel et sa documentation ne peuvent être utilisés, copiés ou reproduits sur quelque support que ce soit et de quelque manière que ce soit, que conformément aux termes de cette licence.
Aucune partie de ce document ne peut être reproduite ou recopiée de quelque manière que ce soit, électronique ou mécanique, y compris par photocopie, enregistrement, archivage ou tout autre procédé de stockage, de traitement et de récupération d'informations, pour d'autres buts que l'usage personnel de l'acheteur, et ce exclusivement aux conditions contractuelles, sans la permission explicite de 4D SA.
4D, 4D Calc, 4D Draw, 4D Write, 4D Insider, 4ème Dimension ®, 4D Server, 4D Compiler ainsi que les logos 4e Dimension, sont des marques enregistrées de 4D SA.
Windows,Windows NT,Win 32s et Microsoft sont des marques enregistrées de Microsoft Corporation.
Apple, Macintosh, Power Macintosh, LaserWriter, ImageWriter, QuickTime sont des marques enregistrées ou des noms commerciaux de Apple Computer,Inc.
Mac2Win Software Copyright © 1990-2002 est un produit de Altura Software,Inc.
4D Write contient des éléments de "MacLink Plus file translation", un produit de DataViz, Inc,55 Corporate drive,Trumbull,CT,USA.
XTND Copyright 1992-2002 © 4D SA. Tous droits réservés.
XTND Technology Copyright 1989-2002 © Claris Corporation.. Tous droits réservés ACROBAT © Copyright 1987-2002, Secret Commercial Adobe Systems Inc.Tous droits réservés. ACROBAT est une marque enregistrée d'Adobe Systems Inc.
Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.
__________________________________________________
 



Valid XHTML 1.1!Valid CSS!

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.
Contacter le responsable de la rubrique 4D