Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: E N T E R en Abril 09, 2015, 10:55:04 am

Título: Imprimir con Printer.CurrentX y Printer.CurrentY
Publicado por: E N T E R en Abril 09, 2015, 10:55:04 am
Hola tengo un proyecto en donde utilizo Printer.CurrentX y Printer.CurrentY

Lo que pasa es que al llegar al final de la pagina no continua bien la impresion saltea por cada linea una hoja.

Este es mi codigo.

Código: (VB) [Seleccionar]
Private Sub Command1_Click()
   
    Dim Contar As Long
           
    Printer.ScaleMode = vbMillimeters
   
    For i = 1 To 200

        Contar = Contar + 4
       
        Printer.CurrentX = 35
        Printer.CurrentY = 28 + Contar
       
        Printer.Print "HOLA"
               
    Next i

    Printer.EndDoc
   
End Sub

Aca una imagen como queda.

(http://snag.gy/fHbVR.jpg)
http://snag.gy/fHbVR.jpg (http://snag.gy/fHbVR.jpg)
Título: Re:Imprimir con Printer.CurrentX y Printer.CurrentY
Publicado por: Jeronimo en Abril 09, 2015, 12:10:32 pm
Hola.
¿Te fijaste qué pasa si definís el tamaño de la hoja (Printer.PaperSize)?

Jerónimo
Título: Re:Imprimir con Printer.CurrentX y Printer.CurrentY
Publicado por: E N T E R en Abril 09, 2015, 12:44:40 pm
si igual me hace asi amigo
Título: Re:Imprimir con Printer.CurrentX y Printer.CurrentY
Publicado por: YAcosta en Abril 09, 2015, 01:05:19 pm
Y probaste con

Printer.NewPage
Título: Re:Imprimir con Printer.CurrentX y Printer.CurrentY
Publicado por: E N T E R en Abril 09, 2015, 01:19:43 pm
Si igual me da asi, lo raro es que si le saco la variable contar hace bien pero no puedo definir la posicion donde quiero que imprima
Título: Re:Imprimir con Printer.CurrentX y Printer.CurrentY
Publicado por: YAcosta en Abril 09, 2015, 01:22:51 pm
Haces un ciclo de 200 y 200 lineas no entra en una hoja, entiendo entonces que quieres que continue en la siguiente hoja sin rayarse.

Yo probaria con poner una validacion dentro del For, creo que alguna vez lo hice asi. Digamos si llega a 25 lineas haces el NewPage y que siga, obvio vuelves a resetear la variable interna. ¿me explique?

Edite: Puse Form cuando debi poner For
Título: Re:Imprimir con Printer.CurrentX y Printer.CurrentY
Publicado por: E N T E R en Abril 09, 2015, 01:46:01 pm
Si amigo ya lo probe de esa forma tambien, lo que pasa si reseteo la variable me imprime de nuevo en la primera hoja y se crea la nueva pagina pero no pasa ahi
Título: Re:Imprimir con Printer.CurrentX y Printer.CurrentY
Publicado por: YAcosta en Abril 09, 2015, 02:52:49 pm
Doc, probe tu codigo y efectivamente sale como dices, pero creo que es porque no resteas la variable Contar, ademas de que le puse otro for y alli si me funciono. Este es el codigo que use

Bueno, me refiero a algo como este:
Código: (VB) [Seleccionar]
Private Sub btnCommand1_Click()
    Dim Contar As Long
    Dim y As Integer
    Printer.ScaleMode = vbMillimeters
   
    For i = 1 To 200
        Contar = Contar + 4
        Printer.CurrentX = 35
        Printer.CurrentY = 28 + Contar
        Printer.Print "HOLA"
        If y = 50 Then   'Puse 50 pq en mi hoja entran 50.
           Printer.EndDoc
           Contar = 0
           y = 0
        Else
           y = y + 1
        End If
    Next i
 End Sub

La prueba:
(http://i.snag.gy/PLFSI.jpg)
Título: Re:Imprimir con Printer.CurrentX y Printer.CurrentY
Publicado por: E N T E R en Abril 09, 2015, 03:19:08 pm
jajaja, que loco amigo Yvan y hasta tuviste que gastar tintas hojas, yo lo hacia con el doPDF

Gracias amigo.

Edito:

El code que me pasaste lo que hace es imprimir varias veces, o sea no es que solo un documento manda a la impresora
Título: Re:Imprimir con Printer.CurrentX y Printer.CurrentY
Publicado por: YAcosta en Abril 09, 2015, 03:22:31 pm
jajaja, que loco amigo Yvan y hasta tuviste que gastar tintas hojas, yo lo hacia con el doPDF

Gracias amigo.

Es que me pongo la camiseta doc jajaja. Son hojas recicladas, no problem. ¿Te sirve la solución?
Título: Re:Imprimir con Printer.CurrentX y Printer.CurrentY
Publicado por: Jeronimo en Abril 09, 2015, 04:16:23 pm
En el código de Yván cambiá Printer.EndDoc por Printer.NewPage. Y cuando se sale del For, si Y es distinto de 50, ejecutá Printer.EndDoc.
Creo que eso debiera funcionar.

Jerónimo
Título: Re:Imprimir con Printer.CurrentX y Printer.CurrentY
Publicado por: E N T E R en Abril 09, 2015, 04:52:45 pm
Hay un problemita con el code del amigo YAcosta, lo que pasa es que yo uso el doPDF (Impresora Virtual) para crear PDF, funciona el code pero envia como 3 documentos a la impresora y al imprimir con el doPDF tengo que guardar varias veces con diferentes nombres.

Creo que le falta el printer.endoc
Título: Re:Imprimir con Printer.CurrentX y Printer.CurrentY
Publicado por: YAcosta en Abril 09, 2015, 05:13:04 pm
Ah bueno, llegue a mi techo jeje- No uso eso del dopdf. A ver si con lo que te indico Jeronimo se resuelve

Suerte