Imprimer en mode texte

Soyez le premier à donner votre avis sur cette source.

Snippet vu 14 001 fois - Téléchargée 71 fois

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

Ajouter un commentaire

Commentaires

Vraiment excellent!!!
C'est pratique sous Access quand on doit imprimer sur des imprimantes d'avant la guerre en Mode Texte/Générique
thierrydelepine
Messages postés
521
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
11 septembre 2008
4 -
Tres bon code fonctionne merveilleusement

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.