SPOOLER DE IMPRESSAO

 Tópico anterior Próximo tópico Novo tópico

SPOOLER DE IMPRESSAO

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#351421 - 26/08/2010 18:40:37

MARCELO-TREZE
SAO VICENTE
Cadast. em:Abril/2009


Bom venho eu agora perguntar aos senhores.

Alguém ja fez algum software que use o spooler de impressão

exemplo:
saber quantas paginas foram impressas, ou progressbar de impressão, ou algo parecido, mas retrornando os valores do spooler mesmo.

se alguém teve sucesso, e puder postar o código eu ficaria grato.

abraço atodos

________________________________________________________________________________________
O orgulho cega até os sábios, ao ponto de não percebam que não são tão sábios como pensam.



#351494 - 27/08/2010 15:05:37

MARCELO-TREZE
SAO VICENTE
Cadast. em:Abril/2009


Última edição em 16/09/2010 11:17:15 por MARCELO-TREZE

é infelizmente os colegas possuem o mesmo problema que eu pelo jeito mas eu sou brasileiro e não desito nunca.

e para os que estão com esta dificuldade eu acabei descobrindo um jeito de pelo menos saber quantas folhas estão sendo impressas, exibindo a quantidade de folhas restantes conforme o andamento.

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()
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 = "Folhas a serem impressas: " + CStr(lJobCount)
If lJobCount = 0 Then Timer1.Enabled = False
End Sub



________________________________________________________________________________________
O orgulho cega até os sábios, ao ponto de não percebam que não são tão sábios como pensam.



#353105 - 16/09/2010 11:18:12

MARCELO-TREZE
SAO VICENTE
Cadast. em:Abril/2009


Bom trouxe de volta ao topo este tópico só para ver se alguém tem alguma coisa sobre o assunto

depois encerro

________________________________________________________________________________________
O orgulho cega até os sábios, ao ponto de não percebam que não são tão sábios como pensam.



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por MARCELO-TREZE em 18/09/2010 13:53:28