¿alguien controla la impresora?

Iniciado por Hans el Topo, 21 Diciembre 2006, 00:03 AM

0 Miembros y 1 Visitante están viendo este tema.

Hans el Topo

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?
 

CeLaYa

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
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

Hans el Topo

¿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 !!
 

Hans el Topo

joer si que estoy ciego xD

Printer.CurrentX
Printer.CurrentY


to solventao xD
(espero ... :rolleyes:)
 

CeLaYa

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
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

Hans el Topo

#5
Cita de: CeLaYa en 22 Diciembre 2006, 22:14 PM
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
 

Hans el Topo

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
 

CeLaYa

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.
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

Hans el Topo

#8
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?
 

CeLaYa

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
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.