COMO SABER SE O DOCUMENTO JA FOI IMPRESSO?

MLALEX 16/06/2012 17:53:52
#404312
Olá pessoal?

Como monitorar uma impressão?? Como saber se o documento já foi impresso?
WILLVIDAL 17/06/2012 21:05:35
#404332
Cara, eu sei que essa resposta não era bem o que você queria, mas eu já tive essa dúvida e nunca ouvi falar em obter um retorno da impressora, para isso eu faço uma tela exigir uma confirmação do cliente se o documento foi corretamente impresso após o comando de impressão e gravo esse valor na tabela. Isso no caso em que há necessidade dessa confirmação.
ALEVALE 18/06/2012 08:02:05
#404343
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=402372&varWorld=

Bom não se é isso que você está procurando mas.....
MARCELO.TREZE 18/06/2012 08:16:55
#404344
Resposta escolhida
Olha colega já lutei muito por esse código e vou postar o que achei até agora

coloque em um form 01 Label, 01 commandbutton e um timer, mude a propriedade interval deste timer para 1, e enable = False

cole o seguinte código


Private Declare Function OpenPrinter Lib [Ô]winspool.drv[Ô] Alias [Ô]OpenPrinterA[Ô] (ByVal pPrinterName As String, phPrinter As Long, pDefault As Any) As Long
Private Declare Function ClosePrinter Lib [Ô]winspool.drv[Ô] (ByVal hPrinter As Long) As Long
Private Declare Function EnumJobs Lib [Ô]winspool.drv[Ô] Alias [Ô]EnumJobsA[Ô] (ByVal hPrinter As Long, ByVal FirstJob As Long, ByVal NoJobs As Long, ByVal Level As Long, pJob As Any, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long


Private Sub Command1_Click()
[txt-color=#007100][ô] este for imprime 3 paginas em branco apenas para teste
[ô] aqui você irá colocar seu código de impressão[/txt-color]
For f = 0 To 3
Printer.Print [Ô][Ô]
Printer.EndDoc
Next f
Timer1.Enabled = True
End Sub


Private Sub Timer1_Timer()
Dim hPrinter As Long, lNeeded As Long, lReturned As Long
Dim lJobCount As Long
OpenPrinter Printer.DeviceName, hPrinter, ByVal 0&
EnumJobs hPrinter, 0, 99, 1, ByVal 0&, 0, lNeeded, lReturned
If lNeeded > 0 Then
ReDim byteJobsBuffer(lNeeded - 1) As Byte
EnumJobs hPrinter, 0, 99, 1, byteJobsBuffer(0), lNeeded, lNeeded, lReturned
If lReturned > 0 Then
lJobCount = lReturned
Else
lJobCount = 0
End If
Else
lJobCount = 0
End If
ClosePrinter hPrinter
Label1.Caption = [Ô]Arquivos a serem impressos: [Ô] + CStr(lJobCount)
If lJobCount = 0 Then Timer1.Enabled = False
End Sub



bom não sei se o código funciona bem para qualquer impressora mas é o mais próximo que cheguei

MLALEX 18/06/2012 21:25:07
#404423
Gente!!! O negócio é o seguinte: O HOMEM PODE ATé NÃO TER DINHEIRO... MAS TENDO AMIGOS IGUAIS A VOCÊS, ELE NÃO PRECISA DE MAIS NADA...

MUITO OBRIGADO A TODOS pelo carinho e pela atenção!!

A solução do que eu precisa ficou com o código que o Marcelo passou, portanto, um MUITO OBRIGADO especial para você Marcelo.

Obrigado mais uma vez a todos!!!!

MARCELO.TREZE 18/06/2012 21:31:52
#404424
Abraço colega não esquece de encerrar o tópico
Tópico encerrado , respostas não são mais permitidas