Foros del Web » Programando para Internet » ASPX (.net) »

imprimir varias paginas en visual basic.net 2008

Estas en el tema de imprimir varias paginas en visual basic.net 2008 en el foro de ASPX (.net) en Foros del Web. hola necesito saber como hago para imprimir en visual peroen hojas diferentes. haber lo que yo necesito hacer es si la persona desea imprimir un ...
  #1 (permalink)  
Antiguo 07/05/2009, 14:21
 
Fecha de Ingreso: febrero-2009
Mensajes: 27
Antigüedad: 15 años, 2 meses
Puntos: 0
imprimir varias paginas en visual basic.net 2008

hola
necesito saber como hago para imprimir en visual peroen hojas diferentes. haber lo que yo necesito hacer es si la persona desea imprimir un contrato llamado x llene la informacion como nombre, cedula etc y se lo imprima en las hojas que sean necesario teniendo en cuenta que alguna informacion se debe o poner invisible o meterla por codigo pero hay el problema es para justificarlo. pero tambien si el desea el contrato y y el x a la veez lo llene y oviamente lo imprima en hojas separadas como hagoooooooo este es el codigo que tengo.
Código:
Private Type lineas
    Tarea As String
    Linea As String
    Cant As String
    PrecioUnitario As String
    PrecioTotal As String
    Descripcion As String
    Nhoras As String
End Type

Dim Filas() As lineas

Dim x As Integer 'numero de registro de "Filas"
Dim I As Integer


Dim Contrato As String
Dim Contratista As String
Dim Ejec As String
Dim Fenvio As String
Dim Tarea As String
Dim Tags As String
Dim DescripcionTrabajos As String

Private Sub Form_Load()

    x = 2

ReDim Filas(x)

'rellenamos los datos de las variables de prueba

    Contrato = "199827"
    Contratista = "Antonio Fdez."
    Ejec = "324"
    Fenvio = "19/11/06"
    Tarea = "EEAACC"
    Tags = "PAOEIRD"
    DescripcionTrabajos = "Inmunizacion de las bacterias gastroinservibles " & _
                          "de la traqueotomizacion"

    Filas(0).Tarea = "111"
    Filas(0).Linea = "11"
    Filas(0).Cant = "1111"
    Filas(0).PrecioUnitario = "11111 €"
    Filas(0).PrecioTotal = "11111 €"
    Filas(0).Descripcion = "Rendicion incondicional de las almorranas involuntarias"
    Filas(0).Nhoras = "34 H"

    Filas(1).Tarea = "222"
    Filas(1).Linea = "22"
    Filas(1).Cant = "2222"
    Filas(1).PrecioUnitario = "22222 €"
    Filas(1).PrecioTotal = "22222 €"
    Filas(1).Descripcion = "Caperucita solo tiene 16 primaveras sin flores" & _
                            " sin vida, va tanto el cantaro a la fuente que " & _
                            " se acaba rompiendo esternocleidomastoideo de la sin razon"
    Filas(1).Nhoras = "34 H"

    Filas(2).Tarea = "333"
    Filas(2).Linea = "33"
    Filas(2).Cant = "3333"
    Filas(2).PrecioUnitario = "33333 €"
    Filas(2).PrecioTotal = "333333 €"
    Filas(2).Descripcion = "quiero volar lejos de aqui escapar"
    Filas(2).Nhoras = "34 H"

    Impresion.Width = 297 'tamaño del formulario (solo para hacer pruebas)
    Impresion.Height = 210 'tamaño del formulario (solo para hacer pruebas)

    Me.Show

    IMPRIMIR

End Sub


Public Function IMPRIMIR()

Dim PosY As Integer 'posicion columna
Dim PosX As Integer 'posicion linea

Dim Linea As Integer 'el tamaño maximo de la linea
Dim Text As String 'va guardando el texto por bloques
Dim Caracter As String 'recoge los caracteres
Dim Palabra As String 'recoge la palabra

Dim Dia As String
Dim Mes As String
Dim Ano As String

    'le decimos la orientacion de las paginas, en este caso apaisada
    Printer.Orientation = 2

    'modo de escala en milimetros
    Printer.ScaleMode = 6

    'le decimos el tamaño de la escala, en este caso dinA4 en milimetros
    Printer.ScaleWidth = 297
    Printer.ScaleHeight = 210

    'el tamaño de la letra
    Printer.FontSize = 9

    Printer.FontBold = False

    'funcion colocar: el primer valor es el texto, el segundo la posicion _
     en la fila y el tercero la posicion en la columna-> colocar texto, PosicionFila, _
     PosicionColumna

    colocar Contrato, 5, 27
    colocar Contratista, 41, 27
    colocar Ejec, 100, 27

    'Desglosamos fecha envio (ajustamos a las marcas del impreso / /)

    Dia = Mid$(Fenvio, 1, 2)
    Mes = Mid$(Fenvio, 4, 2)
    Ano = Mid$(Fenvio, 7, 2)

    colocar Dia, 228, 27
    colocar Mes, 238, 27
    colocar Ano, 248, 27

    colocar Tarea, 1, 50
    colocar Tags, 21, 50
    colocar DescripcionTrabajos, 51, 50

    PosY = 190

    'marcamos el tamaño máximo que puede tener la descripcion por linea
    Linea = 41

    For I = 0 To x
        colocar Filas(I).Tarea, 1, PosY
        colocar Filas(I).Linea, 21, PosY
        colocar Filas(I).Cant, 35, PosY
        colocar Filas(I).PrecioUnitario, 52, PosY
        colocar Filas(I).PrecioTotal, 74, PosY
        colocar Filas(I).Nhoras, 183, PosY

        Palabra = ""
        Text = ""
        x = 1

        'imprimimos la descripcion (segun el tamaño de linea)

        'Funcionamiento: le damos un texto de cualquier tamaño y
        'esta parte nos lo ajustará según el tamaño de linea que escojamos
        'en tantas filas como sea necesario, respetando las palabras completas.

        Do

            Caracter = Mid(Filas(I).Descripcion, x, 1)

            If Caracter <> " " And x <> Len(Filas(I).Descripcion) Then
                Palabra = Palabra & Caracter
            Else
                'en el case que se ajuste a la linea
                If Len(Text) + Len(Palabra) = Linea Then
                    colocar Text & " " & Palabra, 98, PosY
                    Palabra = ""
                    Text = " "
                    PosY = PosY + 5
                'en el caso que sea mayor que la linea
                ElseIf Len(Text) + Len(Palabra) > Linea Then
                    colocar Text, 98, PosY
                    PosY = PosY + 5
                    Text = Palabra
                    Palabra = ""
                'en el case que sea la ultima linea
                ElseIf x = Len(Filas(I).Descripcion) Then
                    colocar Text & " " & Palabra & Right(Filas(I).Descripcion, 1), 98, PosY
                    PosY = PosY + 5
                    Text = ""
                    Palabra = ""
                Else 'todavía es menor que el tamaño de la linea
                    Text = Text & " " & Palabra
                    Palabra = ""
                End If
            End If

            x = x + 1
    
        Loop Until x > Len(Filas(I).Descripcion)
    Next
            
    ' mandar el trabajo a imprimir
    Printer.EndDoc

End Function


Private Function colocar(texto As String, x As Integer, Y As Integer)

    Printer.CurrentX = x
    Printer.CurrentY = Y
    Printer.Print texto

End Function

    'Para evitar gastar papel "a lo tonto", lo mejor es hacer pruebas en un _
    'formulario para ello, comentar las lineas:
        'Printer.Orientation
        'Printer.EndDoc
    'y sustituir en todo el formulario "printer" por el nombre del formulario, _
    en este caso
pd. espero me puedan ayudar muchachos.
  #2 (permalink)  
Antiguo 11/05/2009, 16:11
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: imprimir varias paginas en visual basic.net 2008

Hola.
Recuerdo que si tenes una págia web podes agregar estilos usando CSS para que algunas sonas sean visibleas en pantalla para a la hora de imprimir no se muestren la página y que puedas definier saltos de página con css. Fijate en el foro de css te va a ayudar.
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #3 (permalink)  
Antiguo 11/05/2009, 20:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: imprimir varias paginas en visual basic.net 2008

Tema transladado desde winforms.

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:25.