es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo saber cuándo se está generando una nueva página en Jinja?

Estoy utilizando jinja y flask para renderizar una tabla en una plantilla HTML que quiero enviar como PDF. La tabla se extenderá a lo largo de varias páginas y quiero que los encabezados de la tabla sean visibles en cada página.

¿Cómo puedo saber cuándo la tabla está en una nueva página para poder renderizar un encabezado de tabla en la parte superior de cada nueva página que la tabla abarque?

Gracias.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Una manera de lograr esto es utilizando las variables integradas loop.index y loop.index0 proporcionadas por Jinja2. loop.index comienza en 1 y se incrementa con cada iteración del bucle, mientras que loop.index0 comienza en 0 y se incrementa con cada iteración del bucle.

    Puedes utilizar estas variables para verificar si la iteración actual es la primera fila de una nueva página. Por ejemplo:

    {% for row in table_rows %}
      {% if loop.index0 % page_size == 0 %}
        <!-- Renderizar encabezado de la tabla aquí -->
      {% endif %}
      <!-- Renderizar fila de la tabla aquí -->
    {% endfor %}
    

    En este ejemplo, page_size sería el número máximo de filas que pueden caber en una sola página. Si la fila actual es la primera fila de una nueva página (es decir, el resto de loop.index0 / page_size es 0), renderizarías el encabezado de la tabla. De lo contrario, solo renderizarías la fila de la tabla.

    Ten en cuenta que esto asume que ya has determinado el page_size y estás generando el HTML para el documento PDF en algún tipo de bucle o función generadora.

Comments are closed.