Visual Basic - Preblema para seleccionar impresora para imprimir.

Life is soft - evento anual de software empresarial
 
Vista:

Preblema para seleccionar impresora para imprimir.

Publicado por Manuel (1 intervención) el 02/09/2013 12:04:07
Buenos días y gracias de antemano, mi problema radica en un programa que simplemente se ejecuta periódicamente con un timer y cuando en la carpeta que esta ejecutándose se descarga un archivo PDF con un nombre predeterminado quiero que lo imprima usando una impresora (impresora de tickets) y cuando se descargue un archivo PDF con otro nombre concreto lo imprima por la impresora A4.

Trabajo con AcroPDF para la impresión de los PDF y el problema viene cuando selecciono la impresora o la predetermino, la primera impresión la hace correcta, a la impresora que yo le mande, pero las siguientes impresiones melas realiza siempre desde esa misma impresora por mucho que yo por código lo intente cambiar. De hecho compruebo que la impresora predeterminada también la cambio, y no me hace caso y sigue imprimiendo por la impresora por la que saco la primera copia.

Resumen del código dentro del Timer:


FileName = Dir(App.Path & "\print_tck*.pdf*")
If FileName <> "" Then


'Seleccionar nombre impresora

NombreImpresora = "Impresora_TCK"

'Predeterminar impresora

Set obj_Impresora = CreateObject("WScript.Network")
obj_Impresora.setdefaultprinter NombreImpresora
Set obj_Impresora = Nothing

'Seleccionar impresora

For Each Prt In Printers
If InStr(Prt.DeviceName, NombreImpresora) > 0 Then
Set Printer = Prt
End If
Next


AcroPDF1.LoadFile App.Path & "\" & FileName
AcroPDF1.printall

Kill (App.Path & "\" & FileName)
End If


'IMPRIMIR LOS A4

FileName = Dir(App.Path & "\print_A4*.pdf*")


If FileName <> "" Then

'Seleccionar nombre impresora

NombreImpresora = "Impresora_A4"

'Predeterminar impresora

Set obj_Impresora = CreateObject("WScript.Network")
obj_Impresora.setdefaultprinter NombreImpresora
Set obj_Impresora = Nothing

'Seleccionar impresora

For Each Prt In Printers
If InStr(Prt.DeviceName, NombreImpresora) > 0 Then
Set Printer = Prt
End If
Next


AcroPDF1.LoadFile App.Path & "\" & FileName
AcroPDF1.printall

Kill (App.Path & "\" & FileName)

End If



Con este código solo me selecciona bien para la primera impresión,¿Alguna ayuda?

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder