titre_site.jpg (51607 octets)

Nom de l' Imprimante et du driver

Retour aide

Contrairement à ce que l'on pense souvent le nom de l'imprimante et le nom de son driver ne sont pas forcément identiques.

Les boites de dialogue d'impression (Ctrl + P dans dBase) donnent le nom de l'imprimante, mais ce nom peut être modifié par l'utilisateur.

Faites Démarrer | Imprimantes et télécopieurs  ( Start -> Printers and Fax Devices si vous avez une version anglaise).

Vous pouvez changer le nom qui désigne l'imprimante.

Le nom de l'imprimante est stocké dans _app.printer.printerName. Si la propriété est vide, l'imprimante windows par défault est utilisée. Voir l'aide de dbase pour plus de renseignements.

Lister les drivers imprimantes
Lister les ports des imprimantes
Ajout d'imprimante par un script

 

Lister les drivers imprimantes

Aux fins de piloter vos programmes, il peut être nécessaire d'obtenir la liste des drivers des imprimantes installés. Exécutez ce code dans la fenêtre de commande:

objLocator = new OleAutoClient("WbemScripting.SWbemLocator")
objWMI=objLocator.ConnectServer(".", "root\cimv2")
oPrinterDriver = objWMI.ExecQuery([Select * from Win32_PrinterDriver])

for i = 0 to oPrinterDriver.count - 1
   ? oPrinterDriver[i].name
next i

From: "Ivar B. Jessen" <nospam@nospam.com>
Newsgroups: dbase.programming
Sent: Tuesday, October 05, 2010 8:04 PM
Subject: Re: Print Driver List

Vous obtiendrez un résultat ressemblant à ceci en fonction de votre configuration :

Imp_liste_drivers.gif (18978 octets)
Liste des drivers d'imprimantes installés sur le poste

Maintenant, si vous désirez voir la différence entre le nom de l'imprimante et celui de son driver :

objLocator = new OleAutoClient("WbemScripting.SWbemLocator")
objWMI=objLocator.ConnectServer(".", "root\cimv2")
oPrinter = objWMI.ExecQuery([Select * from Win32_Printer])

? "Nom de l'imprimante" at 5, "Nom du driver" at 50
? replicate("-", 85) at 5
?

for i = 0 to oPrinter.count - 1
   ? oPrinter[i].name at 5, oPrinter[i].DriverName at 50
next i

From: "Ivar B. Jessen" <nospam@nospam.com>
Newsgroups: dbase.programming
Sent: Wednesday, October 06, 2010 10:41 AM
Subject: Re: Print Driver List

Ce qui vous donnera :

Imp_Nom_Imp_et_driver.gif (19701 octets)
Liste des imprimantes avec leur nom tel qu'il s'affiche et le nom du driver associé

Le nom de l'imprimante virtuelle PdfCreator a été volontairement modifié, ainsi dès la première ligne on perçoit bien la différence entre le nom de l'imprimante qui s'affiche à l'utilisateur et le nom du driver géré par windows.

Une ultime vérification en appelant chooseprinter()

Imp_chooseprinter.gif (21057 octets)
Chooseprinter()

On constate bien que nom du driver et nom de l'imprimante ne sont pas identiques.

Voir aussi le choix de l'imprimante par défaut

 

Lister les ports des imprimantes

A titre complémentaire, obtenir les informations sur les ports des imprimantes.

Deux approches :

//-----
nw = new OleAutoClient("WScript.Network")
oPrinters = nw.EnumPrinterConnections()

for i = 0 to oPrinters.count() - 1 step 2
   ? oPrinters[i+1] at 5, oPrinters[i] at 50,
next i
//-----


//-----
objLocator = new OleAutoClient("WbemScripting.SWbemLocator")
objWMI = objLocator.ConnectServer(".", "root\cimv2")
oPrinter = objWMI.ExecQuery([Select * from Win32_Printer])

for i = 0 to oPrinter.count - 1
     ? oPrinter[i].name at 5, oPrinter[i].PortName at 50
next i
//-----

From: "Ivar B. Jessen"
Newsgroups: dbase.programming
Sent: Wednesday, October 06, 2010 8:17 PM
Subject: Re: Print Driver List

et

From: "Jan Hoelterling"
Newsgroups: dbase.programming
Sent: Wednesday, October 06, 2010 5:05 PM
Subject: Re: Print Driver List

Imp_Nom_Imp_et_port.gif (18220 octets)
Nom imprimante et port avec EnumPrinterConnections()

 

Fichier Windows Script Host : Ajout d'imprimante avec AddWindowsPrinterConnection

La méthode AddWindowsPrinterConnection utilise le nom de pilote de l'imprimante pour le nom d'imprimante et permet d'ajouter des imprimantes. Voir la base de connaissance Microsoft pour les erreurs rencontrées.

 

retour

Sources :

Aide dBasePlus 2.6.0

Forum dBase

Base de connaissance Microsoft : http://support.microsoft.com/kb/297454/fr

Si vous voyez des erreurs, n'hésitez pas à le signaler.

Dernière modification : mercredi 06 octobre 2010

©  M.A.