Visual Basic.NET - Tabla en pdf

 
Vista:
sin imagen de perfil

Tabla en pdf

Publicado por PETETE (37 intervenciones) el 28/06/2017 20:38:27
Hola buenas,
os comento el problemilla que me ha surgido.

he creado una tabla en un pdf desde visual basic pero no se como hacer estas 2 cosas:
1- darle un tamaño especifico a las celdas
2- mover a la tabla a una ubicación especifica y que no salga centrada en el pdf....

¿podría ayudarme alguien?
estaría muy agradecido.

Un saludo de vuestro amigo y vecino,
PETETE;)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Tabla en pdf

Publicado por Miguel (476 intervenciones) el 29/06/2017 08:45:41
Tendrías que buscar esa info en la documentación de la librería que estás usando para crear los PDF's...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Tabla en pdf

Publicado por PETETE (37 intervenciones) el 29/06/2017 14:16:51
Hola buenas,

utilizo itextsharp, y ya he mriado información pero no sale.....

mi codigo es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
Imports iTextSharp.text ' ES OBLIGATORIO IMPORTAR ESTA CLASE PARA QUE EL VISUAL BASIC ENTIENDA EL IDIOMA UTILIZADO
Imports iTextSharp.text.pdf
 
Module Module1
 
    Sub Main()
 
        ' CREAR PDF Y ESCRIBIR 
 
        Dim documentoPDF As New Document(PageSize.A4, 100, 100, 220, 150) ' SE LE PONE LAS CARACTERISTICAS DEL DOCUMENTO PDF (TAMAÑO ETC.)
        iTextSharp.text.pdf.PdfWriter.GetInstance(documentoPDF, New System.IO.FileStream("plantilla.PDF", System.IO.FileMode.Create))
        documentoPDF.Open()
 
 
        'AÑADIR TABLA 
 
        Dim tabla
        Dim celda
        Dim celda1
        Dim celda2
        Dim celda3
        Dim celda4
        Dim celda5
 
 
 
        tabla = New pdf.PdfPTable(6) 'EL 4 ES EL NUMERO DE COLUMNAS
 
 
        celda = New pdf.PdfPCell(New Phrase("")) 'TITULO DE LA TABLA
        celda1 = New pdf.PdfPCell(New Phrase("CÓDIGO CLIENTE"))
 
        celda2 = New pdf.PdfPCell(New Phrase("SU PEDIDO Nº"))
        celda3 = New pdf.PdfPCell(New Phrase("REFERENCIA PROVEEDOR"))
        celda4 = New pdf.PdfPCell(New Phrase("FECHA"))
        celda5 = New pdf.PdfPCell(New Phrase("FACTURA Nº"))
 
 
        'celda.colspan = 1 ' CELDAS QUE OCUPA EL TITULO DE TABLA  |||  SI LLEGA A SER 3, COMO LA TABLA TIENE 4 COLUMNAS, 1 DE LAS CELDAS SUBIRIA Y SE COLOCARIA JUNTA A LA DEL TITULO
        ' celda.horizontalAlignment = 1 ' UBICACIÓN DEL TITULO DE LA TABLA: 0=IZQUIERDA 1=CENTRADO 2=DERECHA
 
 
        'celda.padding = 0.5 ' ALTURA DE LA CELDA DE TITULO
        celda.HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER
        celda.VerticalAlignment = iTextSharp.text.Element.ALIGN_TOP
 
        celda1.HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER
        celda1.VerticalAlignment = iTextSharp.text.Element.ALIGN_TOP
        celda2.HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER
        celda2.VerticalAlignment = iTextSharp.text.Element.ALIGN_TOP
        celda3.HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER
        celda3.VerticalAlignment = iTextSharp.text.Element.ALIGN_TOP
        celda4.HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER
        celda4.VerticalAlignment = iTextSharp.text.Element.ALIGN_TOP
        celda5.HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER
        celda5.VerticalAlignment = iTextSharp.text.Element.ALIGN_TOP
 
        celda.backgroundcolor = pdf.ExtendedColor.LIGHT_GRAY ' COLOR DE RELLENO DE LA CELDA DE TITULO
        celda1.backgroundcolor = pdf.ExtendedColor.LIGHT_GRAY
        celda2.backgroundcolor = pdf.ExtendedColor.LIGHT_GRAY
        celda3.backgroundcolor = pdf.ExtendedColor.LIGHT_GRAY
        celda4.backgroundcolor = pdf.ExtendedColor.LIGHT_GRAY
        celda5.backgroundcolor = pdf.ExtendedColor.LIGHT_GRAY
 
 
        tabla.addcell(celda)
        tabla.addcell(celda1)
        tabla.addcell(celda2)
        tabla.addcell(celda3)
        tabla.addcell(celda4)
        tabla.addcell(celda5)
 
 
        tabla.addcell(" 1 ")   'SE AÑADE LA CELDA 1
        tabla.addcell(" 2 ")
        tabla.addcell(" 3 ")
        tabla.addcell(" 4 ")
        tabla.addcell(" 5 ")
        tabla.addcell(" 6 ")
 
 
        ' TOTAL DE CELDAS: 12
 
 
        documentoPDF.Add(tabla)
 
        documentoPDF.Close()
        Process.Start("plantilla.PDF")
 
 
 
    End Sub
 
End Module
 
 
 
 
Quiero crear 3 tablas pero de momento con una me vale.. jajaja
 
Lo que pretendo es que la tabla que se genere tenga 6 columnas y 2 filas. y que la celdas de la fila 1 tenga un tamaño X. A parte de eso quiero mover la tabla a la parte superior izquierda.
 
 
 
Un saludo,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo
Val: 1.239
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Tabla en pdf

Publicado por Wilfredo Patricio Castillo (720 intervenciones) el 29/06/2017 18:44:02
Si quieres poner la tabla en la parte superior izquierda, debes usar la propiedad horizontalAlignment de la tabla e indicarle que se posicione a la izquierda.

A las celdas no le puedes dar un ancho X, ya que es una tabla, entonces si tienes una tabla con 6 columnas, como crees que quedarían las demás celdas?.,

Si son 6 columnas tendrás 6 celdas del mismo ancho, ya que son como repito, tablas, si necesitas que una celda ocupe 3, 4 o 5 columnas lo que tienes que hacer es indicar en el colspan, cuantas columnas quieres que ocupe, eso es muy sencillo, pero no pretendas a una celda darle un tamaño menor a una columna.

Saludos cordiales,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Tabla en pdf

Publicado por PETETE (37 intervenciones) el 29/06/2017 20:32:25
Hola,
gracias por la ayuda.
ya he conseguido modificar el tamaño de las tabals como yo queria.

Pero ahora tengo una cosilla que no me sale.

He leido un archivo txt. Ese archivo lo he guardado en un array. como puedo hacer para cuando el codigo lea el txt introduzca los datos en las tablas? a ver se como hacer que los introduzca, lo que no se es como hacer que el array entienda los datos....
mejor os pongo el codigo y así lo entendereis.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Public Enum c0 As Integer
        NOMBRE = 1
        DIRECCIÓN = 2
        LOCALIDAD = 3
        PROVINCIA = 4
        CIF = 5
        CODIGO_CLIENTE = 6
        NUMERO_PEDIDO = 7
        PROVEEDOR = 8
        FECHA = 9
        NUMERO_FACTURA = 10
        ALBARÁN = 11
        CÓDIGO = 12
        CONCEPTO = 13
        PRECIO = 14
        IMPORTE = 15
        PORCEN = 16
        DESCUENTO = 17
        BASE = 18
        IVA = 19
        CANT_IVA = 20
        TOTAL = 21
    End Enum
 
 
Dim txt As String = "C:\Users\JonAnder\Desktop\FACTURA.TXT"
        Dim b() As String = System.IO.File.ReadAllLines(txt)
        Dim numreg As Integer = b.GetUpperBound(0)
        Dim bsalida(,)
        ReDim bsalida(numreg, 100)
        For i = 0 To numreg
            Dim linea As String
            For Each linea In b
 
           AQUI ES DONDE NO SE QUE PONER.........
 
            Next
        Next
sub datos_bsalida()
        bsalida(0, c0.NOMBRE) = linea
        bsalida(1, c0.DIRECCIÓN) = linea
        bsalida(2, c0.LOCALIDAD) = linea
        bsalida(3, c0.PROVINCIA) = linea
        bsalida(4, c0.CIF) = linea
        bsalida(5, c0.CODIGO_CLIENTE) = linea
        bsalida(6, c0.NUMERO_PEDIDO) = linea
        bsalida(7, c0.PROVEEDOR) = linea
        bsalida(8, c0.FECHA) = linea
        bsalida(9, c0.NUMERO_FACTURA) = linea
        bsalida(10, c0.ALBARÁN) = linea
        bsalida(11, c0.CÓDIGO) = linea
        bsalida(12, c0.CONCEPTO) = linea
        bsalida(13, c0.PRECIO) = linea
        bsalida(14, c0.IMPORTE) = linea
        bsalida(15, c0.PORCEN) = linea
        bsalida(16, c0.DESCUENTO) = linea
        bsalida(17, c0.BASE) = linea
        bsalida(18, c0.IVA) = linea
        bsalida(19, c0.CANT_IVA) = linea
        bsalida(20, c0.TOTAL) = linea
end sub

No se si lo estoy haciendo bien. este codigo simplemente es el de leer el txt y ponerlo en un array para que luego ese array lo introduzca en las tablas con un --- nombre: bsalida(0, c0.NOMBRE)

Una ayudita por favor??
estoy atascadisimo.

pd, sabeis que os agradezco muchiisimo el que me ayudeis.

Un saludo,
PETETE;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo
Val: 1.239
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Tabla en pdf

Publicado por Wilfredo Patricio Castillo (720 intervenciones) el 29/06/2017 21:20:34
No es dificil, puedes hacer un for y dentro poner:
1
2
3
4
5
6
7
for i=0 to 100
 
	PdfPCell mycelda = new PdfPCell(new Phrase(b[i].Nombre.ToString()))
	mycelda.Colspan = 1
	mycelda.BackgroundColor = BaseColor.LIGHT_GRAY;
	MyTabla.AddCell(mycelda)
netx i


Creo que lo mas sencillo sería que tu array, lo conviertas en una lista, con lo cual, se te podría hacer mas sencillo el asunto.

Saludos cordiales,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Tabla en pdf

Publicado por PETETE (37 intervenciones) el 29/06/2017 21:33:16
Lo acabo de probar y funciona!!!!
hacer algo raro pero pone los datos del txt en el pdf.. desornedos pero los pone.
MUCHAS GRACIAS!!!!!

En caso de cualquier duda te comento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Tabla en pdf

Publicado por PETETE (37 intervenciones) el 03/07/2017 06:21:07
Hola buenas,
he estado intentando hacer como me dijiste y parecía que funcionaba pero no.. no me funciona..

¿ como puedo hacer la lista esa que dices? con la enumeración que tengo en el codigo?
la cosa es que no se como pasar los datos....

¿podrías ayudarme?

muchas gracias.

Un saludo,
PETETE;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Tabla en pdf

Publicado por PETETE (37 intervenciones) el 03/07/2017 09:05:02
Yo otra vez, ya lo he conseguido!!
gracias otra vez por ayudarme!

pero antes de dar por cerrado este post tengo una ultima preguntilla.

una de las columnas tiene que tener una anchura especifica. width= 20.0F es igual a 2cm? o que relación tiene F con los cm?

Un saludo,
PETETE;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar