Imprimer en mode texte

Contenu du snippet

Voici comment imprimer sous windows 95,98 rt NT directement sur le port imprimante en utilisant quelques DLL...

Recopier le code ci dessous dans un module, et utiliser PText suivit du chemin et du nom du fichier....(EX : "C:\nomfichier.txt")...

Source / Exemple :


Private Type DOCINFO: pDocName As String: pOutputFile As String: pDatatype As String: End Type
Private Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Private Declare Function EndDocPrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Private Declare Function EndPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Private Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, ByVal pDefault As Long) As Long
Private Declare Function StartDocPrinter Lib "winspool.drv" Alias "StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pDocInfo As DOCINFO) As Long
Private Declare Function StartPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Private Declare Function WritePrinter Lib "winspool.drv" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pcWritten As Long) As Long

Function PText(FilePath As String)
   Dim lhPrinter
   Dim lpcwritten
   Dim x
   Dim m$
   If FilePath = "" Then Exit Function
   If Dir(FilePath) = "" Then MsgBox "Fichier Spool introuvable (" + Command$ + ").", vbCritical: Exit Function
   Dim MyDocInfo As DOCINFO
   x = OpenPrinter(Printer.DeviceName, lhPrinter, 0)
   If x = 0 Then MsgBox "Pas d'imprimante par défaut.", vbCritical: Exit Function
   Open FilePath For Binary As #1: m$ = Space$(LOF(1)): Get 1, , m$: Close #1
   x = StartDocPrinter(lhPrinter, 1, MyDocInfo)
   x = StartPagePrinter(lhPrinter)
   x = WritePrinter(lhPrinter, ByVal m$, Len(m$), lpcwritten)
   x = EndPagePrinter(lhPrinter)
   x = EndDocPrinter(lhPrinter)
   x = ClosePrinter(lhPrinter)
End Function

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.