XSL - cabeceras y fop

 
Vista:

cabeceras y fop

Publicado por alfredo (1 intervención) el 07/11/2005 14:31:56
hola, estoy generando un pdf desde una jsp con fop. En el pdf tiene que aparecer en la primera pagina un cabecera general y luego otra con el nombre de las columnas de un listado que muestro. Como el listado puede ser muy largo y pasar a varias paginas, quiero quye en las paginas siguientes aparezca la cabecera de las columnas tambien antes de seguir con el listado. Alguien sabe como se hace? Muchas gracias!
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
Imágen de perfil de Alejandro

Repetir cabecera de columnas en páginas siguientes

Publicado por Alejandro (227 intervenciones) el 05/07/2023 17:00:42
Si deseas repetir la cabecera de las columnas en las páginas siguientes de tu PDF generado con Apache FOP, puedes utilizar el elemento `<fo:table-header>` en combinación con el elemento `<fo:repeatable-page-master-alternatives>` en tu documento XSL-FO. A continuación, te muestro cómo puedes lograrlo:

1. Envuelve tu contenido de listado dentro del elemento `<fo:table>` y define la cabecera de las columnas dentro del elemento `<fo:table-header>`. Por ejemplo:

1
2
3
4
5
6
7
8
<fo:table>
  <fo:table-header>
    <!-- Define la cabecera de las columnas aquí -->
  </fo:table-header>
 
  <!-- Contenido del listado aquí -->
 
</fo:table>

2. Define la estructura de la página maestra en tu documento XSL-FO, utilizando el elemento `<fo:page-sequence-master>`. Aquí debes definir una página maestra principal y una página maestra alternativa que incluya la repetición de la cabecera de las columnas. Por ejemplo:

1
2
3
4
5
6
7
8
9
<fo:page-sequence-master master-name="main-sequence">
  <fo:repeatable-page-master-alternatives>
    <!-- Página maestra principal sin repetición de cabecera -->
    <fo:conditional-page-master-reference master-reference="main-page" />
 
    <!-- Página maestra alternativa con repetición de cabecera -->
    <fo:conditional-page-master-reference master-reference="alternate-page" />
  </fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>

3. Define las páginas maestras en tu documento XSL-FO, utilizando el elemento `<fo:simple-page-master>`. Aquí debes crear una página maestra principal y una página maestra alternativa que incluya la cabecera de las columnas. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
<fo:layout-master-set>
  <!-- Página maestra principal sin repetición de cabecera -->
  <fo:simple-page-master master-name="main-page">
    <!-- Define la estructura de tu página principal aquí -->
  </fo:simple-page-master>
 
  <!-- Página maestra alternativa con repetición de cabecera -->
  <fo:simple-page-master master-name="alternate-page">
    <!-- Define la estructura de tu página alternativa aquí -->
    <fo:region-body margin-top="X" />
    <fo:region-before extent="Y" />
  </fo:simple-page-master>
</fo:layout-master-set>

En el ejemplo anterior, el elemento `<fo:region-before>` dentro de la página maestra alternativa se encargará de mostrar la cabecera de las columnas en las páginas siguientes.

4. En tu documento XSL-FO, asegúrate de utilizar el `<fo:page-sequence-master>` que has definido para aplicar la estructura de página adecuada. Por ejemplo:

1
2
3
<fo:page-sequence master-reference="main-sequence">
  <!-- Contenido de tu página -->
</fo:page-sequence>

Con estos cambios en tu documento XSL-FO, al generar el PDF con Apache FOP, la cabecera de las columnas se repetirá en las páginas siguientes, proporcionando una visualización consistente de tu listado.

Recuerda ajustar los valores de `X` e `Y` en las propiedades de margen y extensión según tus necesidades.

Espero que esto te ayude a repetir la cabecera de las columnas en las páginas siguientes de tu PDF generado con FOP. ¡Buena suerte!
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