Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: cobein en Diciembre 10, 2013, 05:09:47 pm
-
Buenas, tengo un problemita, tengo que imprimir unos cheques en una Epson LX-300 con papel continuo que esta troquelado (4 cheques por hoja) el tema es que al terminar de imprimir con Printer.EndDoc me saca todo el papel. Intente configurar un tamaño custom y desde visual setear el Printer.PaperSize pero nada.
Alguien tiene idea de como resolver esto?
Gracias.
-
Doc, y porque no creas por Windows un papel del tamaño que necesitas y se lo asignas a la impresora. En mi caso al tamaño de papel que necesito le aumente unos centimetros mas para que llegue al area de corte. Y cuando son diferentes tamaños de papel creo tantas impresoras como tamaños halla y por software le indico a que "impresora" ir y esa impresora toma dicho papel.
-
Esas impresoras son tremendo dolor de cabeza. Tenes que jugar con las configuraciones de papel de windows en la impresora. No recuerdo la opcion definitiva, pero cambiando lo que seria la densidad de puntos por letra cambia como te toma algunas aplicaciones (yo estuve probando con una app hecha en foxpro de la cual NO disponia el codigo fuente)
-
Bien, gracias a todos por las respuestas, logre solucionarlo usando una configuración de papel a medida como indican arriba, use un modulo que saque de PSC (http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=66476&lngWId=1) que permite agregar estas configuraciones así como asignárselas a las impresoras.
Ahora queda lo mas difícil que es lograr dar con las medidas correctas.
Gracias.
-
Yo logro dar con las medidas exactas con puro prueba y error, usando papeles en blanco del mismo tamaño del documento y después de unos cuantos papelitos queda calzado perfectamente.
-
Yo uso este para las matriciales y para ticket y me van bastante bien.
Private Sub Command1_Click()
On Error GoTo Impresora
Open "LPT1:" For Output As #1
Print #1,
Print #1, Tab(1); String(40, "=")
Print #1, Tab((40 - Len("COMPROBANTE DE VENTA")) \ 2); "COMPROBANTE DE VENTA"
Print #1, Tab(1); String(40, "=")
If Option1.Value = True Then
Print #1, Tab(1); "TICKET Nº: " & Val(txtNFactura.Text); Tab(40 - Len("TIPO : CONTADO")); "TIPO : CONTADO"
Else
Print #1, Tab(1); "TICKET Nº: " & Val(txtNFactura.Text); Tab(40 - Len("TIPO : CREDITO")); "TIPO : CREDITO"
End If
Print #1, Tab(1); "FECHA : " & Date; Tab(40 - Len("HORA : " & Time)); "HORA : " & Time
Print #1, Tab(1); String(40, "-")
Print #1, Tab(1); "R.U.C/C.I : " & txtCedula1.Text
Print #1, Tab(1); "CLIENTE : " & txtNombre1.Text
Print #1, Tab(1); String(40, "=")
Print #1, Tab(1); "CANT"; Tab(6); "P R O D U C T O"; Tab(26); "I.V.A"; Tab(34); "SUBTOT"
Print #1, Tab(1); String(40, "=")
For i = 1 To LTicket.ListItems.Count
Print #1, Tab(3 - Len(LTicket.ListItems(i).Text)); LTicket.ListItems(i).Text; Tab(6); Left(LTicket.ListItems(i).SubItems(1), 20); Tab(31 - Len(LTicket.ListItems(i).SubItems(2))); LTicket.ListItems(i).SubItems(2); Tab(40 - Len(Format(LTicket.ListItems(i).SubItems(3), "##,###"))); Format(LTicket.ListItems(i).SubItems(3), "##,###")
End If
Next i
Print #1, Tab(1); String(40, "=")
Print #1, Tab(15); "TOTAL : "; Tab(40 - Len(Format(CantidadTotal, "##,###"))); Format(CantidadTotal, "##,###")
Print #1, Tab(16); "------------------------"
Print #1, Tab(1); "Exenta : " & lblSubTotalExenta.Caption
Print #1, Tab(1); "I.V.A 5% : " & lblIVA10.Caption
Print #1, Tab(1); "I.V.A 10% : " & lblTotalIVA.Caption
Print #1,
Print #1, Tab((40 - Len("GRACIAS POR SU COMPRA!")) \ 2); "GRACIAS POR SU COMPRA!"
For i = 1 To 10
Print #1,
Next i
Close #1
Impresora:
Dim msgb
msgb = MsgBox("Error Nº : [ " & Err.Number & " ]" & " " & Err.Description, vbOKCancel + vbInformation)
End Sub
Lo mas bueno es que no configurar la hoja ni nada si necesitas mas espacio solo imprimes en blanco asi:
Print #1,
Saludos...
-
Eso fue una de las primeras osas que se me ocurrió pero en mi caso no funciono.
Saludos
-
Si es a usb la impresora no va andar, pero tiene una solucion si es a usb, agarras compartis la impresora en red le pones un nombre sin espacios y en
Open "\\NOMBRE PC\NOMBRE DE LA IMPRESORA" For Output As #1
Asi solucione tambien esto por que justo un cliente compro esa impresora LX300 ya a usb y lo resolvi asi.
-
SI ES UNA IMPRESORA MATRICIAL LA PERSONALIZACION DEL FORMULARIO FUNCIONABA HASTA W98 AL PASAR A XP YA NO FUE POSIBLE Y EN UNA CONSULTA A MICROSOFT ME DIJERON QUE EN XP EN ADELANTE YA NO SE DEBERIAN USAR IMPRESORAS MATRICIALES
-
Que extraño eso que comentas, por un lado ¿como imprimes los documentos contables como facturas y boletas de venta? que al menos en mi país se exige una copia y no una doble impresión, con una de inyección no generas copia porque no hay la presión suficiente, me parece que el de Microsoft no aconsejo bien puesto que con eso nos olbiga a usar otro S.O no microsoft.
Y por otro lado es muy extraña la restricción, corrígeme si me equivoco, tu te refieres a formulario a crear un nuevo papel con medidas especificas y este asignarle a una impresora matricial? pues esto lo puedo hacer hasta con Windows 7 de 64 bits. ¿A que te refieres con formulario?