Suite à plusieurs demandes concernant l'impression avec AutoIt, voici d'autres possibilités qui en intéresserons surement plus d'un ...
- Bloc notes
- Imprimer un document texte avec le Bloc-notes sur l'imprimante par défaut (silencieusement) :- Imprimer un document avec le Bloc-notes sur l'imprimante de votre choix (silencieusement) :Code : Tout sélectionner
$PFile = "C:\test.txt" Run(@SystemDir & '\notepad.exe /p "' & $PFile & '"' ,'' ,@SW_HIDE)
- Il est aussi possible de spécifier le nom du pilote ainsi que le port comme ceci :Code : Tout sélectionner
$PFile = "C:\test.txt" $Printer = "HP Photosmart 3300 series" Run(@SystemDir & '\notepad.exe /pt "' & $PFile & '" "' & $Printer & '"' ,'' ,@SW_HIDE)
Ce qui nous donne :Code : Tout sélectionner
notepad.exe /pt TextFileName PrinterName [ DriverName [ PortName ] ]
Code : Tout sélectionner
$PFile = "C:\test.txt" $Printer = "HP LaserJet 1100 (MS)" $Driver = "HP LaserJet 1100 (MS)" $Port = "IP_192.168.1.10" ; ou $Port = "\\ServeurImpression\usbprinter" Run(@SystemDir & '\notepad.exe /pt "' & $PFile & '" "' & $Printer & '" "' & $Driver & '" "' & $Port & '"' ,'' ,@SW_HIDE)
- WordPad
- Imprimer un document txt, rtf, doc, wri avec le Wordpad sur l'imprimante par défaut (silencieusement) :- Imprimer un document txt, rtf, doc, wri avec le Wordpad sur l'imprimante de votre choix (silencieusement) :Code : Tout sélectionner
$PFile = "C:\test.txt" Run(@SystemDir & '\write.exe /p "' & $PFile & '"' ,'' ,@SW_HIDE)
- Il est aussi possible de spécifier le nom du pilote ainsi que le port comme ceci :Code : Tout sélectionner
$PFile = "C:\test.txt" $Printer = "HP Photosmart 3300 series" Run(@SystemDir & '\write.exe /pt "' & $PFile & '" "' & $Printer & '"' ,'' ,@SW_HIDE)
Code : Tout sélectionner
write.exe /pt TextFileName PrinterName [ DriverName [ PortName ] ]
- Word
- Vous pouvez aussi utiliser Word, mais dans ce cas, vous devrez d'abord importer une macro (à faire une seule fois).
Créez cette macro :et enregistrez là sous "PrintDefault" dans normal.dot.Code : Tout sélectionner
Sub PrintDefault() ' ' PrintDefault Macro ' Print current document to Default Printer ' ActiveDocument.PrintOut ActiveDocument.Close Application.Quit End Sub
- Vous pouvez aussi créer le fichier PrintDefault.bas et l'importer dans le normal.dot.Une fois la macro crée et importée, utilisez :► Afficher le texteEn adaptant la macro, vous pourrez spécifier l'imprimante de destination.Code : Tout sélectionner
$PFile = "C:\test.doc" Run(@ProgramFilesDir & '\Microsoft Office\Office\winword.exe "' & $PFile & '" /mPrintDefault /q /n' ,'' ,@SW_HIDE)
Je pense qu'il doit être possible avec AutoIt d'intégrer directement les macro sans passer par l'ouverture de Word, mais je vous laisse chercher cette partie. - Open Office (pensez à bien contrôler le chemin de l'application) :
- Imprimer un document avec Open Office sur l'imprimante par défaut (silencieusement) :- Imprimer des documents .odt avec Open Office sur l'imprimante par défaut (silencieusement) :Code : Tout sélectionner
$PFile = "C:\test.odt" Run(@ProgramFilesDir & '\OpenOffice.org 3\program\soffice.exe -p "' & $PFile & '"' ,'' ,@SW_HIDE)
- Imprimer un/des documents avec Open Office sur l'imprimante de votre choix (silencieusement) :Code : Tout sélectionner
$PFile = "C:\*.odt" Run(@ProgramFilesDir & '\OpenOffice.org 3\program\soffice.exe -p "' & $PFile & '"' ,'' ,@SW_HIDE)
Code : Tout sélectionner
$PFile = "C:\test.odt" $Printer = "HP Photosmart 3300 series" Run(@ProgramFilesDir & '\OpenOffice.org 3\program\soffice.exe -pt "' & $Printer & '" "' & $PFile & '"' ,'' ,@SW_HIDE)
- Adobe Accrobat (pensez à bien contrôler le chemin de l'application) :
- Imprimer un document avec Adobe Accrobat sur l'imprimante par défaut avec boite de dialogue d'impression :- Imprimer un document avec Adobe Accrobat sur l'imprimante de votre choix silencieusement :Code : Tout sélectionner
$PFile = "C:\test.pdf" Run(@ProgramFilesDir & '\Adobe\Reader 9.0\Reader\AcroRd32.exe /p "' & $PFile & '"' ,'' ,@SW_HIDE)
- Il est aussi possible de spécifier le nom du pilote ainsi que le port comme ceci :Code : Tout sélectionner
$PFile = "C:\test.pdf" $Printer = "HP Photosmart 3300 series" Run(@ProgramFilesDir & '\Adobe\Reader 9.0\Reader\AcroRd32.exe /N /T "' & $PFile & '" "' & $Printer & '"' ,'' ,@SW_HIDE)
Code : Tout sélectionner
AcroRd32.exe /N /T PdfFile PrinterName [ PrinterDriver [ PrinterPort ] ]
- Foxit Reader (pensez à bien contrôler le chemin de l'application) :
- Imprimer un document avec Foxit Reader sur l'imprimante par défaut (silencieusement) :- Imprimer un document avec Foxit Reader sur l'imprimante de votre choix (silencieusement) :Code : Tout sélectionner
$PFile = "C:\test.pdf" Run(@ProgramFilesDir & '\Foxit Software\Foxit Reader\Foxit Reader.exe /p "' & $PFile & '"' ,'' ,@SW_HIDE)
- Selon le manuel de Foxit Reader il est conseillé pour la version 3.0 de placer les commutateurs /p et /t avant le nom du fichier.Code : Tout sélectionner
$PFile = "C:\test.pdf" $Printer = "HP Photosmart 3300 series" Run(@ProgramFilesDir & '\Foxit Software\Foxit Reader\Foxit Reader.exe /t "' & $PFile & '" "' & $Printer & '"' ,'' ,@SW_HIDE)
Si vous avez des images à imprimer alors voici quelques exemples : - Paint
- Imprimer une image avec paint sur l'imprimante par défaut (silencieusement) :- Imprimer une image avec paint sur l'imprimante de votre choix (silencieusement) :Code : Tout sélectionner
$PFile = "C:\test.bmp" Run(@SystemDir & '\mspaint.exe /p "' & $PFile & '"' ,'' ,@SW_HIDE)
- Il est aussi possible de spécifier le nom du pilote ainsi que le port comme ceci :Code : Tout sélectionner
$PFile = "C:\test.bmp" $Printer = "HP Photosmart 3300 series" Run(@SystemDir '\mspaint.exe /pt "' & $PFile & '" "' & $Printer & '"' ,'' ,@SW_HIDE)
Code : Tout sélectionner
mspaint.exe /pt ImageFileName PrinterName [ DriverName [ PortName ] ]
- IrFanView
- Imprimer n'importe quelle image avec IrfanView sur l'imprimante par défaut (silencieusement) :- Imprimer n'importe quelle image avec IrfanView sur l'imprimante de votre choix (silencieusement) :Code : Tout sélectionner
$PFile = "C:\test.bmp" Run(@ProgramFilesDir & '\irfanview\i_view32.exe "' & $PFile & '" /print' ,'' ,@SW_HIDE)
Code : Tout sélectionner
$PFile = "C:\test.bmp" $Printer = "HP Photosmart 3300 series" Run(@ProgramFilesDir & '\irfanview\i_view32.exe "' & $PFile & '" /print="' & $Printer & '"' ,'' ,@SW_HIDE)
- Microsoft RAW Image
Dans le cas ou vous auriez des images spécifiques à imprimer, vous pouvez aussi utiliser l'utilitaire de Microsoft : Microsoft RAW Image Thumbnailer and Viewer for Windows.
La ligne de commande est identique à celle de IrFanView, donc il vous suffit d'adapter le chemin au code précédent.Code : Tout sélectionner
RAWSupport.exe /print RawImageFile
- Microsoft XPS Viewer
Pour ceux que cela peut intérésser, vous avez aussi Microsoft XPS Viewer :Code : Tout sélectionner
XpsRchVw.exe XpsFile /p
Et bien tout simplement avec ceci :
Code : Tout sélectionner
#include <array.au3> ; Only for viewing the array.
$aPrinterList = _GetLocalPrinterList()
_ArrayDisplay($aPrinterList, '')
; Return local printer list.
; column 1 = Printer Name
; column 2 = Driver
; column 3 = Port
Func _GetLocalPrinterList()
Local $PrinterList[1][3], $PrinterCount
Local $objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
Local $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Printer")
For $objItem In $colItems
ReDim $PrinterList[$PrinterCount + 1][3]
$PrinterList[$PrinterCount][0] = $objItem.DeviceID
$PrinterList[$PrinterCount][1] = $objItem.DriverName
$PrinterList[$PrinterCount][2] = $objItem.PortName
$PrinterCount += 1
Next
Return $PrinterList
EndFunc ;==>_GetLocalPrinterList

J'ai sans aucun doute oublié d'autres programmes commun (dont surement celui que vous voulez

Donc bon code à tous et amusez vous bien.
