Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado 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.
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)
-
Hola.
¿Te fijaste qué pasa si definís el tamaño de la hoja (Printer.PaperSize)?
Jerónimo
-
si igual me hace asi amigo
-
Y probaste con
Printer.NewPage
-
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
-
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
-
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
-
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:
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)
-
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
-
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?
-
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
-
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
-
Ah bueno, llegue a mi techo jeje- No uso eso del dopdf. A ver si con lo que te indico Jeronimo se resuelve
Suerte