Imprimiendo Texto en Visual Basic

Escrito por Mauro Rondinelli el Martes 16 de Abril de 2002 a las 00:00hs

Estamos de nuevo y ahora con ganas de hacer funcionar un poco la impresora ;-) hoy nos toca el tema de la impresion de texto con y sin formato bajo Visual Basic, para ello utilizaremos el objeto Printer que no es un componente extra ni nada por el estilo, este ya viene con nuestro querido Visual Basic 4, 5, 6 y VB.NET.

Primero imprimiremos un texto simple y sin formato, mejor dicho con el formato que tenga predeterminada la impresora...

Printer.Print "Hola a todos!"

Aqui tenemos el objeto Printer con su metodo mas importante "Print" cuyo objetivo es imprimir el texto pasado como parametro, si dejamos esto como esta veremos que nuestra impresora ni se mueve dado que falta un metodo que le indique a Windows que envie todo lo anterior a imprimir, este metodo es "EndDoc", nuestro ejemplo totalmente funcional seria asi...

Printer.Print "Hola a todos!"
Printer.EndDoc


Ahora si nuestra impresora comenzara a funcionar, se entiende la funcion de EndDoc?, en resumen... primero indicamos todo lo que queremos imprimir y luego lo mandamos a la impresora con EndDoc. Otro ejemplo...

Printer.Print "Hola a todos! 1"
Printer.Print "Hola a todos! 2"
Printer.EndDoc


En el papel de la impresora quedaria asi...

Hola a todos! 1
Hola a todos! 2

Fijense que queda una linea debajo de la otra, esto es asi porque despues del metodo "Print" automaticamente se pasa al renglon siguiente.

Ahora si queremos imprimir en distintas hojas utilizamos "NewPage", aqui el ejemplo...

Printer.Print "Pagina 1"
Printer.NewPage
Printer.Print "Pagina 2"
Printer.EndDoc

Facil no? Atencion lo unico que no nos debemos olvidar es el EndDoc. Ahora veremos como darle formato al texto, para esto antes veremos este ejemplo...

Printer.Print "Normal"
Printer.FontBold = True
Printer.Print "Negrita"
Printer.FontItalic = True
Printer.Print "Italic"
Printer.FontItalic = False
Printer.Print "Otra ves Normal"
Printer.EndDoc

Bueno la verdad es simple, mediante las propiedades FontBold, FontItalic, FontStrikeThru y FontUnderline manejamos el estilo de la fuente dandole un valor Verdadero (TRUE) si queremos activar algun estilo, con todo a Falso el estilo de la fuente es normal. Ahora veremos el tamaño...

Printer.FontSize = 15
Printer.Print "Tamaño de 15"
Printer.EndDoc

Mas facil todavia! Mediante FontSize especificamos el tamaño de la fuente y por ultimo para definir la fuente a utilizar usamos FontName, quedaria asi...

Printer.FontName = "Tahoma"
Printer.FontSize = 17
Printer.Print "Tamaño de 17 y fuente Tahoma"
Printer.EndDoc


No gasten mucha tinta!!!

comentarios



  1. la informacion es muy buena pero me gustaria saber que otras propiedades tiene el objeto PRINTER y como le puedo sacar el maximo provecho como cambios de color o si puedo imprimir la informacion contenida en las cajas de texto o etiquetas... Agradeceria la informacion



  2. ok esta muy bueno esto pero me interesa saber como imprimir una base de datos, ósea tengo varios text chekbox y otros elementos enlazados a una base de datos en access mediante un data y quiero que médiate un botón se imprima el registro qe se esta viendo por pantalla por favor mandármelo a lordshiba [@] hotmail.com



  3. Hola:

    Saben me gusto mucho esta pagina pero me gustaria saber como puedocontactarlos mejor para sabes mejor de esto pues quieisera aprender imprimir bases de datos tambien enserio estoy estudiando y me interesa mucho su contenido pero quiero mas saber mas.

    Gracias.



  4. Hola , esto es bueno lo hice y dio resultado, pero ahora necesito saber como escoger la impresora,tamaño y el tipo de papel directamente por el codigo fuente, estoy realizando una aplicacion donde se usa papel continuo de 21 cm de ancho por 14 cm y nesecito fijar esas dmenciones a la impresora, les agradesco de antemano



  5. Se aprende mucho asi... es muy interesante. Lo que estoy necesitando ahora es imprimir un tabla o consulta de access desde visual. si alguien me puede contestar... desde ya M. gracias!



  6. Muy interesante.. pero quisiera que me ayuden, para poder cambiar el tamaño de página... Necesito imprimir facturas en papel continuo de 11cms, pero no logro poner el tamaño de hoja para que cuando termine una Factura se posicione en lá siguiente página... (Se me pasa hasta el tamaño de una hoja A4)..

    Ojalá puedan ayudarme.

    Saludos y gracias



  7. Muy bueno.. gracias!!!.. pero y si kiero imprimir un codigo de barras, que debo hacer, la verdad estoy buscando y no encuentro nada q sirva, podrias explicarlo asi como has explicado lo de arriba, paso a paso, estoy segura q mas de una persona t estara eternamente agradecido :)



  8. Esta muy practico tus programas... Felicidades...

    ¿Como puedo ver un documento de Word en un cuadro de texto de Visal Basic?



  9. Oye, quiero saber como mando imprimir un formulario de Visal Basic!
    Gracias.



  10. Muy Interesante, pero necesito saber como cambiar el tamaño del papel en Visual Basic 6.0 y trabajando en un SO Windows XP.


    Saludos



  11. Intersante lo leido, pero quisiera imprimir una aplicacion que tiene varios textbox, que propeda podria utilizar alli, gracias



  12. Para los que desean configurar la impresora y el tamaño del papel les recomiendo descarguen la ayuda de allapi.net, ahi se encuentra un compendio de todo el api con ejemplos y explicaciones breves.
    Mi probleme es el siguiente.
    Estoy haciendo un control vista previa pero cuando imprimo la fuente de la impresora no coincide con la del control aunque esten en el mismo valor ej> printer.fontsize=8 el captura 8.16 picture.fontsize=8 captura 8.25, esa pequeña diferencia lo es todo pues con el texto genero un recuadro contenedor del mismo y lo que veo en vista previa se distorsiona en la impresora. Esta distorcion varia con el tipo de fuente.
    Sabe alguien como resolver esto? gracias.



  13. Hola !! tengo un problema ,, ya he buscado mucho del tema pero no ecuentro gran cosa, quiero generar y poder imprimir facturas en VB 6 utilzando BD en MySQL, he encontrado ayuda pero se utilizan BD en Acces y yo estoy trabajando con MySQL, no consigo hacer la conexion para mostrar los resultados de mi BD en un Data Report, porfavor me urge soy estudiante, lo necesito para un proyecto de la escuela



  14. Para imprimir un código de barras no hay que hacer nada extraño, es una fuente más, asi como "Arial", "Times New Roman", etc... creo que la más usada es la c39. Lo demás está claro... ya explicado en este tutorial "Printer.FontName = "Tahoma" " en vez de Tahoma, el nombre de la fuente que hayas descargado.

    Acá una página de fuentes: http://www.fontreactor.com/fuentes/codigo-de-barras/

    Suerte.

  15. nelson esteban tuberquia:
    Viernes 04 de Mayo de 2007 a las 18:51hs


    la verdad es interesante lo que hay en la pagina pero deberian colocar tambien el objeto en el que va encerrado los codigos que colocaron me hago esplicar
    private sub pinter(byval ********* etc)
    Printer.FontName = "Tahoma"
    Printer.FontSize = 17
    Printer.Print "Tamaño de 17 y fuente Tahoma"
    Printer.EndDoc
    end sub



  16. hola amigo muy bueno tus comentarios; quisiera saber si comoces de alguna herramienta que se pueda utilizar en visal basic para imprimircodigos de barra.
    desde ya muchas gracias por tu ayuda



  17. me gustaria que me ayudaran para saber cuales son las clases que intervienen a la hora de imprimir, cuales son sun metodos y propiedades y un ejemplo.
    me parece muy buena esta pagina porque ayuda mucho.



  18. hola:
    kisiera saber como imprimir un formulario k tengo en visual basic
    ayudenme
    esk mi examen es el proximo viernes porfa



  19. me ayudó mucho la información vertida, pero me gustaría saber como imprimo una factura, boleta y base de dtos de manera detallada, gracias



  20. nelson esteban tuberquia:
    Viernes 04 de Mayo de 2007 a las 18:51hs


    la verdad es interesante lo que hay en la pagina pero deberian colocar tambien el objeto en el que va encerrado los codigos que colocaron me hago esplicar
    private sub pinter(byval ********* etc)
    Printer.FontName = "Tahoma"
    Printer.FontSize = 17
    Printer.Print "Tamaño de 17 y fuente Tahoma"
    Printer.EndDoc
    end sub

    ---------------------------


    NO! nada que ver, no hace falta hacer una instrucción para mandar a imprimir



  21. Hola, quisiera saber como imprimir desde las base de datos que tengo en access 2000 y visul 6.0, cualquier informacion se los agradeceria



  22. Muy bueno su artículo,felicito a quien aportó la ayuda, y para los que quieren imprimir los campos del registro de una consulta, solo deben escribir lo siguiente:
    printer.print "El nombre del campo: " & text1.text
    printer.print "Otro campo: " & botonx.caption
    ....
    etc, lo importante es ir concatenando lo que queremos imprimir.
    Saludos y gracias por la ayuda.



  23. Felicidades!!!
    El articulo esta muy bueno, y para algunas personas que estamos empezando en lo que es VB y la programacion en general... Resulta de mucha satisfaccion encontrar ayuda, gracias y que Dios les permita seguir desarrollando su conocimiento y compartirlo con nosotros..........



  24. Quisiera que me ayuden, para poder cambiar el tamaño de página... Necesito imprimir documentos en papel continuo de 12cms, pero no logro poner el tamaño de hoja para que cuando termine un documento se posicione en lá siguiente página... (Se me pasa hasta el tamaño de una hoja A4)..

    Ojalá puedan ayudarme.

    Saludos y gracias



  25. Hola amigos, quisiera saber como imprimir un formulario en visual basic 6.0, por favor gracias.



  26. Hola a todos. Al pulsar el botón imprimir me sale el cuadro de diálogo. Selecciono 3 copias pero sólo me imprime 1 copia.

    ¿ Cómo se soluciona el tema ?

    Gracias



  27. quiero imprimir un recibo todos los campos necesarios pero cuando defino el printer.print no me funciona
    que debo definir antes en las referencias o en otro lado si ya tengo la impresora configurada



  28. Gracias por todo me han ayudado bastante, pero una sola cosas , como hago para poder hacer el ajecutable del vb



  29. como imprimo una base de datos



  30. Cualquier duda en visual basic 6 que tengan consulten. solo con la intencion de cambiar ideas o proyectos tengo varios codigos con el objeto printer. saludos
    sebach_sonidoxxi@hotmail.com



  31. Alguien por favor pudiera decirme si hay alguna forma de tener un textox multiline donde pueda controlar cada linea de texto, seleccionar cada linea como un vector, si es un control activex por favor expliquenme como funciona en visual basic 6. gracias



  32. En Visual Basic 6.0 necesito chequear el estado de la impresora, especificamente sin está "on line" o si le falta papel. Pero debe ser ANTES de enviar el documento a imprimir. Desde ya muchas gracias por la ayuda.



  33. el problema es este:
    tengo un form con un scrollbar...
    ¿como imprimo todo el contenido del form en varias hojas si es que se necesita?..he imprimido el form con el scrollbar pero solo imprime lo que se ve en pantalla...¿como imprimo lo que esta mas abajo o mas arriba del scrollbar????ahhh y sin que se imprima la barra de desplazamiento?



  34. HOLA,KE TAL A TODOS....
    TENGO PREOBLEMAS PARA IMPRIMIR EN VISUAL BASIC 6.0.LA VERDAD NECESITO KE ME AYUDEN LO MAS RAPIDO POSIBLE,CASI NO SE PROGRAMAR EN VISUAL ASI KE SE ME DIFICULTA BASTANTE REALIZAR ESTE PROYECTO ESPERO ME ENTIENDAN Y ME PUEDAN AYUDAR LO NECESITO MUCHO....GRACIAS.



  35. Hola nesecito una ayuda como imprimir los datos q se muestran en un formulario en Visual basic



  36. hola
    estoy haciendo un programa en en q voy a imprimir ua factura y le doy printer.prin y me vaja un renglon pero yo quiero q me baje solo medio reglon como le podria hacer.
    PORFIS AYUDENME ME URJE MUCHISIMO
    les agradecere de antemano



  37. Esta muy bien explicado, todo se entende. Pero necesito imprimir un formato, es decir, un bloque de texto, uno a continuación del otro en una hoja tamaño carta. Gracias por la ayuda que me puedan prestar.
    Saludos



  38. otras propiedades del objeto printer que prodrian ayudar

    printer.devicename
    asigna el nombre de la impresora
    printer.port
    asigna el puerto a imprimir (incluidos los usb)
    printer.pagewidth
    ancho de pagina
    printer.pageheight
    alto de pagina, estos dos no funcionan con xp (creo)

    un ejemplo

    For Each p In Printers
    If p.DeviceName = impres Then
    Set Printer = p
    Exit For
    End If
    Next p



  39. hola que tal.
    estoy en un gran apuro la verdad es quisiera que me ayuden de como imprimir el texto de un textbox que esta en multiline, y bueno de antemano eso tendria que imprimirse en la hoja en varias lineas.



  40. Hola chicossss... Gracias master por aportar y compartir conocimiento. Buenísimo lo de las impresoras para los que recien comienzan... Una pregunta no más... ¿cómo hacer para que se imprima el resultado de una consulta SQL usando el objeto PRINTER? Voy a investigarlo un poco y si encuentro algo lo posteo... pero si alguien lo tiene agradeceremos la ayuda!
    Un abrazo.
    Fer.



  41. por favor me pueden ayudar? soy nuevo programando quisiera saber como imprimir una factura, tengo el formulario hecho pero no manejo bien los codigos para imprimir y ubicar los datos en los lugares correspondientes en la hoja. mi direccion es dani_vargas700@hotmail.com



  42. Saludos a todos gracias por sus comentarios



  43. Printer.Orientation
    'vbPRORPortrait '=1 Vertical
    'vbPRORLandscape '=2 Horizontal


    onlysystem.com
    joelcristobal.com



  44. buenisimo todo, que mas puedo decir, eso si quisiera que me ayudaran, lo que pasa es que yo imprimo unos comandos de texto a una impresora Zebra, pero uso el driver de la generica soo texto, y por ahi los envio a la impresora, quiero imprimir desde visual pero sin tener que instalar la generica solo texto, como lo puedo hacer directamente a la impresora.
    Gracias por la posible ayuda.



  45. Hola yo imprmi en Zebra desde vb 6.0 utilizando el MSComm1 aca hay un ejemplo de codigo

    MSComm1.CommPort = 1
    MSComm1.Settings = "9600,E,8,1"
    MSComm1.InputLen = 0
    'MSComm1.Output = "^FO >,V
    MSComm1.PortOpen = True
    MSComm1.Output = "^XA"
    '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    MSComm1.Output = "^FO25,35^GB755,390,5^FS"
    MSComm1.Output = "^CFD,30"
    MSComm1.Output = "^CI13"
    '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    MSComm1.Output = "^CFD,30"
    MSComm1.Output = "^FO40,50^FR^FD" & "Hola a todos." & "^FS"
    MSComm1.Output = "^CFD,10"

    MSComm1.Output = "^XZ"
    MSComm1.PortOpen = False



  46. Una consulta , se que con:
    Set Printer = "Impresora"
    se puede setear una nueva

    pero con el objeto printer u otro como se sabe cual es la impresora por defecto que esta en ese momento. Gracias



  47. Hola, tengo un sistema para venta de repuestos, ellos necesitan imprimir etiquetas con la información del repuesto 1,2,3 la cantidad que quieran, en cuanto a la impresión si se como hacerla, el problema es que no se como hacer para indicarle por medio del printer que el largo y ancho de la etiqueta, ya que salta una página completa tipo carta, he ingresado al servidor de impresión y creo un formulario del tamaño de la etiqueta y no lo respeta.

    Si puedes darme una mano, te lo agradezco.

    Gracias y Bendiciones



  48. Hola es buena la pagina, tengo el problema de muchos y es de cambiar el tamaño de pagina a uno no convensional, ejemplo boletas , factura. simplemente no funciona, necesito esa informacion si la sabes por favor.



  49. se ve que es muy buen codigo al menos para empezar a aprender creo yo...
    gracias lo voy a intentar...

agregar comentario


Se permiten las etiquetas HTML <b>, <i> y <p>. Si ingresa alguna dirección web o dirección de email serán convertidos en enlaces automáticamente.





publicidad