IMPRIMIR NA USB
Galera estou precisando de uma ajuda para terminar um projeto de imprimir na usb
Segue abaixo os comandos
Em um módulo
Option Explicit
Public Declare Function OpenPrinter Lib [Ô]winspool.drv[Ô] Alias [Ô]OpenPrinterA[Ô] (ByVal pPrinterName As String, phPrinter As Long, ByVal pDefault As Long) As Long
Public Declare Function ClosePrinter Lib [Ô]winspool.drv[Ô] (ByVal hPrinter As Long) As Long
Public Declare Function StartDocPrinter Lib [Ô]winspool.drv[Ô] Alias [Ô]StartDocPrinterA[Ô] (ByVal hPrinter As Long, ByVal Level As Long, pDocInfo As DOCINFO) As Long
Public Declare Function EndDocPrinter Lib [Ô]winspool.drv[Ô] (ByVal hPrinter As Long) As Long
Public Declare Function StartPagePrinter Lib [Ô]winspool.drv[Ô] (ByVal hPrinter As Long) As Long
Public Declare Function EndPagePrinter Lib [Ô]winspool.drv[Ô] (ByVal hPrinter As Long) As Long
Public Declare Function WritePrinter Lib [Ô]winspool.drv[Ô] (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pcWritten As Long) As Long
Public Type DOCINFO
pDocName As String
pOutputFile As String
pDatatype As String
End Type
Public Function EnviarDadosImpressora(NomeImpressora As String, NomeDocumento As String, Dados As String) As Boolean
Dim llngHndPrinter As Long
Dim llngHndDoc As Long
Dim llngRetorno As Long
Dim llngBytesGravados As Long
Dim ludtDocInfo As DOCINFO
llngRetorno = OpenPrinter(NomeImpressora, llngHndPrinter, 0)
If llngRetorno = 0 Then
Err.Raise [Ô]Nome de impressora inválido.[Ô]
Exit Function
End If
ludtDocInfo.pDocName = NomeDocumento
ludtDocInfo.pOutputFile = vbNullString
ludtDocInfo.pDatatype = vbNullString
llngHndDoc = StartDocPrinter(llngHndPrinter, 1, ludtDocInfo)
llngRetorno = StartPagePrinter(llngHndPrinter)
llngRetorno = WritePrinter(llngHndPrinter, ByVal Dados, Len(Dados), llngBytesGravados)
llngRetorno = EndPagePrinter(llngHndPrinter)
llngRetorno = EndDocPrinter(llngHndPrinter)
llngRetorno = ClosePrinter(llngHndPrinter)
If llngBytesGravados = Len(Dados) Then
EnviarDadosImpressora = True
Else
EnviarDadosImpressora = False
End If
End Function
E no botão
EnviarDadosImpressora [Ô]HP Photosmart C4200 series[Ô], [Ô]Impressão de Etiquetas[Ô], Text1.Text
O documento que é digitado no text1 é enviado para a impressora sem maiores problemas, más o que esta acontecendo é que a impressora fica 5 min para imprimir o que foi enviado.
Estou pesquisando na net, más não acho nada referente a isso, será que alguém pode me ajudar.
Depois que isso for resolvido, estarei colocando esse projeto para todos
abraço
Segue abaixo os comandos
Em um módulo
Option Explicit
Public Declare Function OpenPrinter Lib [Ô]winspool.drv[Ô] Alias [Ô]OpenPrinterA[Ô] (ByVal pPrinterName As String, phPrinter As Long, ByVal pDefault As Long) As Long
Public Declare Function ClosePrinter Lib [Ô]winspool.drv[Ô] (ByVal hPrinter As Long) As Long
Public Declare Function StartDocPrinter Lib [Ô]winspool.drv[Ô] Alias [Ô]StartDocPrinterA[Ô] (ByVal hPrinter As Long, ByVal Level As Long, pDocInfo As DOCINFO) As Long
Public Declare Function EndDocPrinter Lib [Ô]winspool.drv[Ô] (ByVal hPrinter As Long) As Long
Public Declare Function StartPagePrinter Lib [Ô]winspool.drv[Ô] (ByVal hPrinter As Long) As Long
Public Declare Function EndPagePrinter Lib [Ô]winspool.drv[Ô] (ByVal hPrinter As Long) As Long
Public Declare Function WritePrinter Lib [Ô]winspool.drv[Ô] (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pcWritten As Long) As Long
Public Type DOCINFO
pDocName As String
pOutputFile As String
pDatatype As String
End Type
Public Function EnviarDadosImpressora(NomeImpressora As String, NomeDocumento As String, Dados As String) As Boolean
Dim llngHndPrinter As Long
Dim llngHndDoc As Long
Dim llngRetorno As Long
Dim llngBytesGravados As Long
Dim ludtDocInfo As DOCINFO
llngRetorno = OpenPrinter(NomeImpressora, llngHndPrinter, 0)
If llngRetorno = 0 Then
Err.Raise [Ô]Nome de impressora inválido.[Ô]
Exit Function
End If
ludtDocInfo.pDocName = NomeDocumento
ludtDocInfo.pOutputFile = vbNullString
ludtDocInfo.pDatatype = vbNullString
llngHndDoc = StartDocPrinter(llngHndPrinter, 1, ludtDocInfo)
llngRetorno = StartPagePrinter(llngHndPrinter)
llngRetorno = WritePrinter(llngHndPrinter, ByVal Dados, Len(Dados), llngBytesGravados)
llngRetorno = EndPagePrinter(llngHndPrinter)
llngRetorno = EndDocPrinter(llngHndPrinter)
llngRetorno = ClosePrinter(llngHndPrinter)
If llngBytesGravados = Len(Dados) Then
EnviarDadosImpressora = True
Else
EnviarDadosImpressora = False
End If
End Function
E no botão
EnviarDadosImpressora [Ô]HP Photosmart C4200 series[Ô], [Ô]Impressão de Etiquetas[Ô], Text1.Text
O documento que é digitado no text1 é enviado para a impressora sem maiores problemas, más o que esta acontecendo é que a impressora fica 5 min para imprimir o que foi enviado.
Estou pesquisando na net, más não acho nada referente a isso, será que alguém pode me ajudar.
Depois que isso for resolvido, estarei colocando esse projeto para todos
abraço
Na impressora você tentou colocar o a porta dela tipo
COM1
COM1
David obrigado pelo retorno
Acabei de tentar isso e da erro na impressora
Acabei de tentar isso e da erro na impressora
tenta isso
Public Function Imprime()
For Each Impressora In Printers
Set Printer = Impressora
Imp_Encontrada = Impressora.DeviceName
If Impressora.DeviceName = [Ô]Nome Impressora[Ô] Then [ô]Nome da Impressora instalada no Windows
Imp_Encontrada = Impressora.DeviceName
Exit For
End If
Next
If Imp_Encontrada <> [Ô]Nome Impressora[Ô] Then
MsgBox [Ô]Não Existe a Etiquetadora Nome impressoraInstalada no Windows, Verifique![Ô], vbCritical, App.Title
Exit Function
End If
Printer.Print [Ô]teste[Ô]
VB.Printer.EndDoc
End Function
Private Sub Command1_Click()
Call Imprime
End Sub
Public Function Imprime()
For Each Impressora In Printers
Set Printer = Impressora
Imp_Encontrada = Impressora.DeviceName
If Impressora.DeviceName = [Ô]Nome Impressora[Ô] Then [ô]Nome da Impressora instalada no Windows
Imp_Encontrada = Impressora.DeviceName
Exit For
End If
Next
If Imp_Encontrada <> [Ô]Nome Impressora[Ô] Then
MsgBox [Ô]Não Existe a Etiquetadora Nome impressoraInstalada no Windows, Verifique![Ô], vbCritical, App.Title
Exit Function
End If
Printer.Print [Ô]teste[Ô]
VB.Printer.EndDoc
End Function
Private Sub Command1_Click()
Call Imprime
End Sub
DAVIDNUNES vlw pela dica, funcionou legal
Daqui por diante eu me viro, vlw mesmo
Abraço
Daqui por diante eu me viro, vlw mesmo
Abraço
Tópico encerrado , respostas não são mais permitidas