IMPRIMIR CRYSTAL EM IMPRESSORA DIFERENTE DA PADRÃO

ALVAROVB2009 02/05/2024 17:25:00
#503298
Alterado em 02/05/2024 17:32:46 Pessoal boa tarde, me apareceu um problema em vb6, onde o cliente esta trocando a impressora e o sistema não esta aceitando, esta mandando na padrão e tem horas que ele aceita normalmente.
Sempre utilizei o comando abaixo e nunca tinha dado problema e estou usando o Crystal 9


Pesquisando achei pouca coisa para resolver, a única coisa que achei foi colocar um 0 no lugar do Me.hwnd ( tanto no vb6 quanto para outras linguagens )

Comando Me.hwnd era o que estava no lugar do 0, que coloquei hoje para tentar resolver, más também não resolveu

A caixa com as impressoras é aberta normalmente, porém não esta acatando a seleção do usuário



Private Sub CRViewer91_PrintButtonClicked(UseDefault As Boolean)
UseDefault = False 'Cancela a ação padrão do evento

FrmQteImpressao.Tag = "OP - Vacum Forming" 'Isso é um form simples que eu abro para o usuário colocar quantas cópias que ele quer
FrmQteImpressao.Show 1

If QteImpressao > 0 Then
Dim i As Integer
If NOpcaoSelecao = 1 Then
Report.PrinterSetup 0 'Me.hwnd 'Abre Print Setup, para selecionar a impressora
For i = 1 To QteImpressao
Report.PrintOut False, 1, True
Next
ElseIf NOpcaoSelecao = 2 Then ' Embalagem
Report1.PrinterSetup 0 'Me.hwnd 'Abre Print Setup, para selecionar a impressora
For i = 1 To QteImpressao
Report1.PrintOut False, 1, True
Next
End If
End If
End Sub


Alguém poderia me dar uma força, no que pode estar acontecendo ?
Desde já agradeço
ALVAROVB2009 06/05/2024 09:49:40
#503314
Pessoal na tentativa de trocar a impressora , eu criei um pequeno form onde troco a impressora padrão pelo sistema

Option Explicit
Private Sub CmdConfirma_Click()
If IsNumeric(TxtQuantCopia.Text) = False Then
MsgBox "Digite uma quantidade de nº de cópias válidas", vbInformation, "Atenção"
Else
For Each ImpressoraSelecionada In Printers
If ImpressoraSelecionada.DeviceName = CboImpressoras.Text Then
Set Printer = ImpressoraSelecionada

DriveImpressoraSelecionada = ImpressoraSelecionada.DriverName
NomeImpressoraSelecionada = ImpressoraSelecionada.DeviceName
PortaImpressoraSelecionada = ImpressoraSelecionada.Port
QuantCopiaImpressoraSelecionada = TxtQuantCopia.Text

Exit For
End If
Next
Unload Me
End If
End Sub

Private Sub Command1_Click()
DriveImpressoraSelecionada = ""
NomeImpressoraSelecionada = ""
PortaImpressoraSelecionada = ""
QuantCopiaImpressoraSelecionada = 0
Unload Me
End Sub

Private Sub Form_Load()
DriveImpressoraSelecionada = ""
NomeImpressoraSelecionada = ""
PortaImpressoraSelecionada = ""

CboImpressoras.Clear
CboImpressoras.Text = Printer.DeviceName
For Each ImpressoraSelecionada In Printers
CboImpressoras.AddItem ImpressoraSelecionada.DeviceName
Next
End Sub



No form aonde chamei a impressão
Dim i As Integer
For i = 1 To QuantCopiaImpressoraSelecionada 'QteImpressao
Report.SelectPrinter DriveImpressoraSelecionada, NomeImpressoraSelecionada, PortaImpressoraSelecionada
Report.PrintOut False, 1, True
Next

Porém quando mandei imprimir na impressora não imprimiu nada, porém quando fiz uma impressão para diversas impressoras de pdf, foi feita perfeitamente

Alguém poderia ver dar uma luz no que pode estar acontecendo ?
ALVAROVB2009 23/05/2024 09:41:42
#503340
Alguém teria alguma outra solução, ainda estou com esse problema, e meu sistema esta no Windows 10 e 11, não sei se pode ter alguma limitação quanto a isso

Como comentei, utilizando esse form que criei, funciona perfeitamente quando troca a impressora pdf , ele gera o pdf exatamente na impressora que selecionei, agora quando seleciono a impressão diretamente na impressora, essa impressão não vai, parece que é ignorada pelo Windows

De momento meu cliente antes de entrar no sistema, esta tendo que mudar a impressora padrão , colocando uma pdf ou a impressora para imprimir diretamente e sabemos que isso não é legal, já que temos ( ou tínhamos ) essa possibilidade de selecionar a impressora por dentro do sistema
Faça seu login para responder