Autor
|
Tema: ¿alguien controla la impresora? (Leído 4,325 veces)
|
Hans el Topo
Desconectado
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
bueno.... tengo un problemilla
Tengo un formulario en el que clono objetos (load) con ciertas letritas y tal y como contienen gráficos pues a la hora de imprimir le envio el formulario (me.PrintForm)
El problema aparece cuando supera el tamaño de un folio, puesto que solo imprime lo que se ve y no el contenido completo del formulario.
Por lo tanto lo que he intentado es clonar también el formulario y cada vez que se llene uno pues crear un clon del formulario clase (plantilla)
Pero visto los resultados que he obtenido con ésto (bastante inestable y casi imposible de manejar) me ando planteando soluciones, que las tiene que haber, más sencillas
¿a alguien se le ocurre alguna otra cosa?
|
|
« Última modificación: 21 Diciembre 2006, 00:14 am por Hans el Topo »
|
En línea
|
|
|
|
CeLaYa
Desconectado
Mensajes: 543
|
y si pusieras los objetos dentro de un picturebox y usas el objeto printer: Printer.PaintPicture Picture1.Picture
con esto se supone que te imprime todo el contenido del PictureBox, o por lo menos es lo que le entendi a la ayuda del VB, espero te sirva de algo
|
|
|
En línea
|
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
|
|
|
Hans el Topo
Desconectado
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
¿alguien sabe cómo escribir lateralmente? cada vez que le ordeno el print me salta una linea xD es que sino no puedo utilizar dos fuentes en la misma linea y tal lo del picture1.picture no puedo meter objetos dentro ya que su valor picture devuelve 0 sino tiene una imagen xd
arg !!
|
|
|
En línea
|
|
|
|
Hans el Topo
Desconectado
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
joer si que estoy ciego xD Printer.CurrentX Printer.CurrentY to solventao xD (espero ... )
|
|
|
En línea
|
|
|
|
CeLaYa
Desconectado
Mensajes: 543
|
puedes poner un ";" después del print mira si pones printer.print "Mensaje" printer.print "de prueba"
vas a tener un resultado así: Mensaje de prueba pero si pones el ";" printer.print "Mensaje"; printer.print "de prueba"
tienes un resultado así: Mensaje de prueba
|
|
|
En línea
|
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
|
|
|
Hans el Topo
Desconectado
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
puedes poner un ";" después del print mira si pones printer.print "Mensaje" printer.print "de prueba"
vas a tener un resultado así: Mensaje de prueba pero si pones el ";" printer.print "Mensaje"; printer.print "de prueba"
tienes un resultado así: Mensaje de prueba muchas gracias celaya no sabia lo del ; quién tenga alguna duda que se mire ésto... xD Grupos Google
|
|
« Última modificación: 23 Diciembre 2006, 13:49 pm por Hans el Topo »
|
En línea
|
|
|
|
Hans el Topo
Desconectado
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
Me estoy volviendo loco xD la impresora se pone a imprimir cuando le da la gana sin haber pulsado el segundo botón xD El primer botón añade texto de impresión a la impresora El segundo botón ordena imprimir. Pero en el primer botón algo hace que imprima el texto y nose que es, al principio pensaba que eran las coordenadas, que me salia del folio y tal pero he marcado un margen y me lo sigue haciendo, ¿alguien sabe que puede ser? Private Sub Command1_Click() Dim nx As Long Dim ny As Long Dim i As Integer Dim k As Integer nx = 0 ny = 0 For k = 1 To 30 'cabeceras nx = 0 ny = ny + 100 Printer.CurrentX = nx Printer.CurrentY = ny Printer.FontName = "MS Sans Serif" Printer.FontSize = 8 Printer.Print k & " Lineas imprimidas" ny = ny + 100 For i = 1 To 5 Printer.CurrentX = nx Printer.CurrentY = ny + 125 Printer.FontName = "Verdana" Printer.FontSize = 28 Printer.Print Me.label1.Caption Printer.CurrentX = nx + 600 Printer.CurrentY = ny + 725 '600+125 Printer.FontName = "MS Sans Serif" Printer.FontSize = 8 Printer.Print " " & Me.label2.Caption nx = nx + 1900 Next i ny = Printer.CurrentY MsgBox "valor final " & ny If ny >= 15000 Then 'nueva página Printer.NewPage ny = 0 MsgBox "Pasamos a la página siguiente " End If Next k End Sub
Private Sub Command2_Click() 'mandamos imprimir Printer.EndDoc End Sub
|
|
|
En línea
|
|
|
|
CeLaYa
Desconectado
Mensajes: 543
|
es por el "Printer.NewPage", se supone que los datos son enviados a la impresora cuando pones el EndDoc, porque con eso le dices a la impresora que has "terminado" la impresión, pero me he encontrado que si pones el NewPage, te manda la página que acabas de crear, no se si sea algún Bug de Printer, o tenga ese comportamiento porque el método Newpage "termina" la página actual y comienza otra nueva.
|
|
|
En línea
|
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
|
|
|
Hans el Topo
Desconectado
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
pero se supone que el newpage no envia los datos a la impresora, simplemente los va guardando en memoria...no?
hasta que no sales del programa (lo cual dispara un enddoc) o ejecutas el enddoc se supone que los datos no se envian... ademas lo de imprimir a su bola no lo hace siempre, debe haber algo por ahi que dictamine cuando tiene que imprimir que no soy capaz de ver xD
donde guarda el buffer la impresora?
|
|
« Última modificación: 23 Diciembre 2006, 14:26 pm por Hans el Topo »
|
En línea
|
|
|
|
CeLaYa
Desconectado
Mensajes: 543
|
si te fijas en tu impresora, cuando ejecutes lo del command1, te va a formar un trabajo de impresión y lo tendra en espera hasta que le des EndDoc
|
|
|
En línea
|
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
|
|
|
|
|