Imprimir bajo windows con si estuviese en DOS

Como estas, quisiera hacerte una pregunta, primero soy novato en vb pero estoy haciendo un aplicación en la cual conecto de una base de datos access97, vb5, windows 98, pero debo imprimir los datos tal cual se muestran a continuación, pero el inconveniente es que la impresora es de matriz de puntos, okidata 180 plus(antigua), el problema es que estos documentos son autocopiativos, de usar impresora a tinta, jamas, solo matriz de puntos, y no se como hacerlo, no debo usar el típico barrido de impresión bajo windows porque demora demasiado, imprimirlo como si estuviese bajo DOS.
Si es posible imprimirlos, evitar el barrido y manchar los calcos(copias). Me salvarías la vida
espero tu respuesta, muchas gracias desde Chile
Roberto
+------------------------+
| Nombre | direccion |
+--------+---------------+
|Roberto | freire 0455 |
|Mario | los galindos |
|Jesus | los palos 144 |
+--------+---------------+

1 Respuesta

Respuesta
1
Primero proba con esto:
Coloca un botón el el form y ponele este código:
Printer.print "+------------------------+"
Printer.print "| Nombre | direccion |"
Printer.print "+--------+---------------+"
Printer.print "|Roberto | freire 0455 |"
Printer.print "|Mario | los galindos |"
Printer.print "|Jesus | los palos 144 |"
Printer.print "+--------+---------------+"
Printer.EndDoc
Esto te envía texto directamente a la impresora, fíjate que los textos van entre colillas "texto" pero peden ser variables que tengas en el programa
por ejemplo:
dim Linea1 as String
Linea1 = "texto"
Printer. Print Linea1
Si esto no te sirve porque sigue haciendo el barrido típico de windows, avisame y te envío algo un poco más complejo, es un método de imprimir directamente desde DOS, pero te recomiendo que sea desde windows.
Cualquier duda estoy a tu disposición.
Hola, aun tengo problemas, resulta que los datos que necesito rescatar son alrededor de 200, pero con el barrido de la impresora, se vuelve loca, se demora aprox. 4 seg por linea de información, esto no funciona correctamente
aahh otra consulta, como capturo desde access los campos para imprimir la información sin usar crystal report.. pero dejando ordenada esta información
+------------+
| nombre |
Igual que antes( la pregunta anterior)
Espero tu respuesta, muchas gracias
El driver que tienes que instalar en windows es el Genérico solo texto que viene con windows, no el de la impresora, de esta manera trabaja exactamente como el DOS.
Para sacar los datos de los campos de access tienes que utilizar cualquier conexión a base de datos que soporte visual, la más fácil es el datacontrol.
Te paso un ejemplo con esos campos que pusiste:
Printer.print "+------------------------+"
Printer.print "| Nombre | direccion |"
Printer.print "+--------+---------------+"
Linea = "|" & Data1.recordset("nombre") & Data1.recordset("direccion") & "|"
Printer. Print Linea
De esta manera armas la linea que tiene que salir con los datos de la base de datos.
Para probar estos códigos sin gastar papel pone en vez de Printer. Print Form1. Print y veras que te escribe todo en el formulario, una vez depurada la rutina cambias Form1 por Printer y sale a la impresora.
Otro dato más, podes tener problemas con el tamaño de hoja, tienes que definir Printer. PaperSize de lo contrario no creo que te entren los 200 registros, si esto te sigue sin funcionar vamos a tener que recurría si o si a la API, existe una manera de enviar lineas de texto a la impresora con API, es un poco más complejo, por eso espero que funcione de la forma que lo estas haciendo en este momento.
Respóndeme con los resultados, así seguimos probando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas