Visual Basic - mandar imprimir con varias impresoras

Life is soft - evento anual de software empresarial
 
Vista:

mandar imprimir con varias impresoras

Publicado por edgar (27 intervenciones) el 05/04/2008 02:27:00
holas amigos tengo un programa en visual basic, pero necesito mandar a imprimir a 3 impresoras al mismo tiempo el mismo ticket para todas, me comentan que van a comprar un printserver para que se haga por medio de la ip por que esta todo en red, hay alguna otra forma de hacerlo, x q serian lpt1, lp2, y faltaria para la tercera impresora, necesito su ayuda amigos.

gracias
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

RE:mandar imprimir con varias impresoras

Publicado por nesti (6 intervenciones) el 05/04/2008 12:42:34
'Esto seria con un documento de word

Dim im
im = xword.ActivePrinter 'Guardmos el nombre de la impresora predeterminada
xword.ActiveDocument.PrintOut , , , , , , , (1) 'imprimimos en la impresora lpt1
xword.ActivePrinter = lpt2 'predeterminamos la impresora lpt2
xword.ActiveDocument.PrintOut , , , , , , , (1) 'imprimimos en la impresora lpt2
xword.ActivePrinter = lpt3 'predeterminamos la impresora lpt3
xword.ActiveDocument.PrintOut , , , , , , , (1) 'imprimimos en la impresora lpt3
xword.ActiveDocument.Close (wdDoNotSaveChanges) 'cerramos el documento
xword.ActivePrinter = im 'predeterminamos lpt1 la predeterminada
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:mandar imprimir con varias impresoras

Publicado por nesti (6 intervenciones) el 05/04/2008 12:46:41
El ejemplo anterior seria con impresoras fijas

Pero lo logico seria mostrarlas en un Combo y selecionar la impresora
por la que deseas imprimir

Puede ser que que instalen una cuarta impresora y querer imprimir por ella
o simplemente que no imprimir por una de las tres.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:mandar imprimir con varias impresoras

Publicado por edgar (27 intervenciones) el 05/04/2008 17:40:45
te agradesco tu respuesta, las impresoras que voy a usar son de tickes y necestio que al mandar a imprimir se manden al mismo tiempo en las 3 impresoras sin tener combo ni nada.

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:mandar imprimir con varias impresoras

Publicado por Diego (5 intervenciones) el 07/04/2008 06:25:05
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Dim IMPRESORA As Printer
Dim PREDETERMINADAWINDOWS As String
PREDETERMINADADEWINDOWS = Printer.DeviceName 'La impresora predeterminada de Windows actualmente
 
If Printers.Count > 0 Then
    For Each IMPRESORA In Printers
        If IMPRESORA.DeviceName = "EPSON LX-300+" Then 'Aca pones el nombre de la impresora en el cual queres enviar la impresion
        Set Printer = IMPRESORA
        Exit For
        End If
    Next IMPRESORA
End If
 
'Ahora ya tienes Asignada la Impresora EPSON LX-300 y envia la impresion para imprimir en dicha impresora
'>>> INSTRUCCIONES PARA LA IMPRESION EN IMPRESORA (1)
 
'-----------------------------------------------------------------------------------------------
'Ahora repites el paso para seleccionar la otra impresora e imprimir en ella.. Asi susesivamente
 
If Printers.Count > 0 Then
    For Each IMPRESORA In Printers
        If IMPRESORA.DeviceName = "EPSON TMU-220" Then 'Aca pones el nombre de la impresora en el cual queres enviar la impresion
        Set Printer = IMPRESORA
        Exit For
        End If
    Next IMPRESORA
End If
 
'Ahora ya tienes Asignado la Impresora EPSON TMU. Envias la impresion para imprimir en dicha impresora
'>>> INSTRUCCIONES PARA LA IMPRESION EN IMPRESORA (2)
'------------------------------------------------------------
'Repites los pasos tantas veces quieras dependiendo de la cantidad de impresoras en la que quieres imprimir... 
 
 
'Se vuelve a asignar la impresora Predeterminada Inicialmente como la Predeterminada
If Printers.Count > 0 Then
    For Each IMPRESORA In Printers
        If IMPRESORA.DeviceName = PREDETERMINADADEWINDOWS Then
        Set Printer = IMPRESORA
        Exit For
        End If
    Next IMPRESORA
End If
 
'--------------------------------------------
AHORA ME GUSTARIA QUE ME DIGAS COMO HACES PARA IMPRIMIR EN UNA IMPRESORA TICKET, COMO LE ENVIAS LA IMPRESION? NO UTILIZAS REPORTEADOR VD?.
TE AGRADECERIA SI ME ENVIAS ALGUNOS CODIGOS O EJEMPLOS EN MI MAIL..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:mandar imprimir con varias impresoras

Publicado por lolo (163 intervenciones) el 07/04/2008 12:28:49
Y... si quiere imprimir en 10 impresoras... ¿tendría que poner el mismo código diez veces?

¿No sería mejor crear un único procedimiento y pasarle como parámetro el nombre de la impresora?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:mandar imprimir con varias impresoras

Publicado por Diego (5 intervenciones) el 07/04/2008 16:24:37
Haganlo como quieran , yo solo di la idea, despues ya queda a cargo de ustedes mejorar y probar los codigos. Pueden Crear un Procedimiento o Funcion por cada impresora o komo ustedes saben... Como les dije, solo di la idea que para mi podía servir para imprimir en varias impresoras, ademas no soy experto en programacion y puede que hayan otras mejores formas de hacer lo que consulto el amigo Edgar... Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:mandar imprimir con varias impresoras

Publicado por Diego (5 intervenciones) el 07/04/2008 16:50:25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Dim IMPRESORA As Printer
Dim PREDETERMINADAWINDOWS As String
Dim i as Integer
Dim LAIMPRESORA As String
PREDETERMINADADEWINDOWS = Printer.DeviceName 'La impresora predeterminada de Windows actualmente 
 
CREO QUE DE ESTA FORMA PUEDE FUNCIONAR CON MENOS CODIGO... UTILIZANDO BUCLE FOR.....NEXT
 
CONTADORBUCLE = 1
For i = 1 To 3 'Hace tres veces el Bucle, ocea para imprimir en 3 impresoras, si quieres imprimir en 10, ya sabes...
    'Selecciona la Impresora a utilizar segun sea el valor del CONTADOR del Bucle
    Select Case CONTADORBUCLE
        Case Is = 1
            LAIMPRESORA = "EPSON LX-300+"
        Case Is = 2
            LAIMPRESORA = "EPSON TMU-200"
        Case Is = 3
            LAIMPRESORA = "HP LaserJet"
    End Select
 
    '----------------
    'Selecciona la impresora a utilizar
    If Printers.Count > 0 Then
    For Each IMPRESORA In Printers
    If IMPRESORA.DeviceName = "" & LAIMPRESORA & "" Then 'Se asigna la Impresora a utilizar
    Set Printer = IMPRESORA
    Exit For
    End If
    Next IMPRESORA
    End If
    '------------------
 
    'Ahora ya se tiene la Impresora seleccionada y posteriormente se hace la impresion
    'Cada impresion con diferentes instrucciones segun el valor del Contador del Bucle
    'Esto solo en caso de si lo que keremos imprimir es diferente por cada impresora seleccionada
    'Si no es así, Obias el Select y pones directamente las Instrucciones para la Impresion
    Select Case CONTADORBUCLE
        Case Is = 1
            'INSTRUCCIONES PARA IMPRIMIR EN LA IMPRESORA EPSON LX-300+
        Case Is = 2
            'INSTRUCCIONES PARA IMPRIMIR EN LA IMPRESORA PSON TMU-200
        Case Is = 3
            'INSTRUCCIONES PARA IMPRIMIR EN LA IMPRESORA HP LaserJet
    End Select
Next i
 
'Se vuelve a asignar la impresora Predeterminada Inicialmente como la Predeterminada
If Printers.Count > 0 Then
For Each IMPRESORA In Printers
If IMPRESORA.DeviceName = PREDETERMINADADEWINDOWS Then
Set Printer = IMPRESORA
Exit For
End If
Next IMPRESORA
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

mandar imprimir con varias impresoras

Publicado por Clever castillo (3 intervenciones) el 05/11/2013 02:06:33
para ahorrar lineas de codigo seria de la siguiente manera


1
2
3
4
5
6
7
8
9
10
11
12
13
Option Explicit
Private Sub Command1_Click()
  Dim Prt As Printer
  Dim TRES As String
    ' Establece la impresora que se utilizará para imprimir
    For Each Prt In Printers
       TRES = Prt.DeviceName
          Set Printer = Prt
 
       Printer.Print Text1.Text
       Printer.EndDoc
  Next
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Imprimir ticket en impresora de tickets

Publicado por Manuel R (1 intervención) el 08/12/2015 00:42:57
Hola este codigo es que yo uso para imprimir un tiquet en una impresora de tickets, tambien puedes usar el PDF Creator para probar que si imprime espero les sea de ayuda

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Private Sub pdPrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
	'' Static pageNum As Integer
	Dim i As Integer = 0
	Dim prFontEnc As New Font("Arial", 15, GraphicsUnit.Point)
	Dim prFontEnc2 As New Font("Arial", 10, GraphicsUnit.Point)
	Dim prFont As New Font("Arial", 8, GraphicsUnit.Point)
 
	''Encabezados
	e.Graphics.DrawString("Nombre del Negocio", prFontEnc, Brushes.Black, -2, 1)
 
	'--10= Derecha - Izquierda
	'--35= Arriba - Abajo
	'----Brushes.Black, X, Y)
	'----X= Derecha - Izquierda
	'----Y= Arriba - Abajo
	e.Graphics.DrawString("Folio:", prFontEnc2, Brushes.Black, -2, 35)
	e.Graphics.DrawString(LblFolio.Text, prFontEnc2, Brushes.Black, 65, 36)
 
	e.Graphics.DrawString("Fecha:", prFontEnc2, Brushes.Black, -2, 57)
	e.Graphics.DrawString(TxtFecha.Text, prFontEnc2, Brushes.Black, 65, 58)
 
	''Titulos del Consumo 
	e.Graphics.DrawString("Cant.", prFont, Brushes.Black, -2, 90)
	e.Graphics.DrawString("Tipo", prFont, Brushes.Black, 30, 90)
	e.Graphics.DrawString("Producto", prFont, Brushes.Black, 70, 90)
	e.Graphics.DrawString("Precio", prFont, Brushes.Black, 150, 90)
 
	''Detalles del Titulo
	While i < Me.DGVConsumo.RowCount
		e.Graphics.DrawString(Me.DGVConsumo.Item(2, i).Value, prFont, Brushes.Black, -2, i * 15 + 110)
		e.Graphics.DrawString(Me.DGVConsumo.Item(4, i).Value, prFont, Brushes.Black, 30, i * 15 + 110)
		e.Graphics.DrawString(Me.DGVConsumo.Item(1, i).Value, prFont, Brushes.Black, 70, i * 15 + 110)
		e.Graphics.DrawString(Me.DGVConsumo.Item(3, i).Value, prFont, Brushes.Black, 150, i * 15 + 110)
		i += 1
	End While
	e.Graphics.DrawString("Total", prFontEnc2, Brushes.Black, 10, i * 15 + 120)
	e.Graphics.DrawString(LblMonto.Text, prFontEnc2, Brushes.Black, 90, i * 15 + 120)
 
	''Notas
	e.Graphics.DrawString("NOTAS", prFontEnc2, Brushes.Black, 10, i * 15 + 150)
	e.Graphics.DrawString(TxtNota1.Text, prFontEnc2, Brushes.Black, 10, i * 15 + 165)
	e.Graphics.DrawString(TxtNota2.Text, prFontEnc2, Brushes.Black, 10, i * 15 + 180)
	e.Graphics.DrawString(TxtNota3.Text, prFontEnc2, Brushes.Black, 10, i * 15 + 195)
	e.Graphics.DrawString(TxtNota4.Text, prFontEnc2, Brushes.Black, 10, i * 15 + 210)
 
	e.Graphics.DrawString(Lugar, prFontEnc2, Brushes.Black, 10, i * 15 + 240)
	e.Graphics.DrawString("Gracias por su Preferencia", prFontEnc2, Brushes.Black, 10, i * 15 + 260)
End Sub
 
Private Sub Imprimir()
	Dim pd As New PrintDocument()
	AddHandler pd.PrintPage, AddressOf Me.pdPrintPage
	pd.Print()
 
End Sub


La Información que mando imprimir es de un DataGridView si ocupan mas tengo todo el Código que yo uso y me funciona muy bien
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar