Saltar al contenido

¿Qué determina el espacio vertical en las tablas de Reportlab?

Si te encuentras con algún detalle que te causa duda nos puedes dejar un comentario y te ayudaremos lo más rápido posible.

Solución:

No creo que haya un ajuste en TableStyle que le permite cambiar la altura de la fila. Esa medida se da cuando estás creando un nuevo Table objeto:

Table(data, colwidths, rowheights)

Donde colwidths y rowheights son listas de valores de medición, así:

from reportlab.lib.units import inch
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import Paragraph
from reportlab.platypus import Table
from reportlab.lib import colors

# Creates a table with 2 columns, variable width
colwidths = [2.5*inch, .8*inch]

# Two rows with variable height
rowheights = [.4*inch, .2*inch]

table_style = [
    ('GRID', (0, 1), (-1, -1), 1, colors.black),
    ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'),
    ('ALIGN', (1, 1), (1, -1), 'RIGHT')
]

style = getSampleStyleSheet()

title_paragraph = Paragraph(
    "My Title Here",
    style["Normal"]
)
# Just filling in the first row
data = [[title_paragraph, 'Random text string']]

# Now we can create the table with our data, and column/row measurements
table = Table(data, colwidths, rowheights)

# Another way of setting table style, using the setStyle method.
table.setStyle(tbl_style)

report.append(table)

colwidths y rowheights se puede cambiar a cualquier medida que necesite para adaptarse al contenido. colwidths se lee de izquierda a derecha y rowheights se lee de arriba hacia abajo.

Si sabe que todas las filas de su tabla van a tener la misma altura, puede usar este buen atajo:

rowheights = [.2*inch] * len(data)

Lo que te da una lista como [.2*inch, .2*inch, ...] por cada fila en su data variable.

(No tengo suficiente reputación para comentar la otra respuesta)

Con respecto al último atajo, simplemente “ROW_HEIGHT = 5 * mm” está funcionando. No es necesario multiplicar la altura de la fila por el número de filas en la tabla.

ROW_HEIGHT = 5 * mm
curr_table = Table(data, COL_WIDTHS, rowHeights=ROW_HEIGH )

Ahorra un poco de memoria. 🙂

valoraciones y reseñas

Recuerda que puedes dar difusión a esta reseña si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *