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

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

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.

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

 
Sélectionnez
   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

 
Sélectionnez
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

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Ce document est issu de https://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.