Présentation

Samedi 10 mars 2007

Je ne résiste pas au plaisir d'écrire un petit article technique sans prétention. Foxpro étant un environnement très complet, nous n'utilisons que très peu les API ou autres composants externes. Aussi, je suis assez fier du bout de code suivant.

Nous gérons pas mal de document par automation (essentiellement word et excel), et des pdf. Le problème posé est d'imprimer sans visualiser la fenêtre du document. Voila la solution mise en oeuvre:

M.oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\.rootcimv2")

*-- Collection des imprimantes connectées sur le poste
M.oPrinters = M.oWMI.ExecQuery("Select * from Win32_Printer")

*-- Détermination de l'imprimante par défaut
For Each M.oPrinter In M.oPrinters
    
If oPrinter.Default
          M.oPrinterDefault = M.oPrinter
          exit
     endif
Next

*-- Choix de l'imprimante
M.cImpChoix = GETPRINTER()

*-- Fixer l'imprimante à utiliser
For Each M.oPrinter in M.oPrinters
    
if M.oPrinter.name= M.cImpCHoix
          M.oPrinter.SetDefaultPrinter()
          exit
     Endif
Next

*
*-- Le code réalisant l'impression est là
*--

*-- restauration de l'imprimante par default initiale
M.oPrinterDefault.SetDefaultPrinter()

Par Jean BRUN - Publié dans : jean.brun
Ecrire un commentaire - Voir les 4 commentaires - Recommander
Retour à l'accueil
Créer un blog sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus