XSL - XSL-FO detectar un salto de página

 
Vista:

XSL-FO detectar un salto de página

Publicado por Piteko (2 intervenciones) el 08/07/2005 11:04:29
Hola,
Necesitaría saber cómo detectar un salto de página cuando se utiliza XSL-FO, o cómo poder especificar un page-sequence determinado para todas las páginas menos la primera, ya que necesito tener un formato determinado para los datos en la primera página y otro distinto para el resto, y no tengo ni idea de cuántos datos tendrá la primera página.

Agradecería cualquier ayuda. Muchas gracias !!

Saludos.
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

Cómo detectar un salto de página y aplicar un formato diferente en XSL-FO

Publicado por Alejandro (227 intervenciones) el 05/07/2023 00:51:34
En XSL-FO, puedes detectar un salto de página utilizando la función `page-position()` en una condición de selección. Para aplicar un formato diferente a la primera página, puedes utilizar una combinación de `page-sequence-master` y `page-sequence`.

Aquí hay una solución general para detectar un salto de página y aplicar un formato diferente en XSL-FO:

1. Define un `page-sequence-master` que especifique el formato para la primera página y otro formato para el resto de las páginas. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<fo:layout-master-set>
  <fo:simple-page-master master-name="first-page" page-height="..." page-width="...">
    <!-- Definir formato para la primera página -->
  </fo:simple-page-master>
 
  <fo:simple-page-master master-name="other-pages" page-height="..." page-width="...">
    <!-- Definir formato para las demás páginas -->
  </fo:simple-page-master>
 
  <fo:page-sequence-master master-name="page-sequence">
    <fo:repeatable-page-master-alternatives>
      <fo:conditional-page-master-reference master-reference="first-page"
        page-position="first"/>
      <fo:conditional-page-master-reference master-reference="other-pages"
        page-position="rest"/>
    </fo:repeatable-page-master-alternatives>
  </fo:page-sequence-master>
</fo:layout-master-set>

2. En tu `fo:page-sequence`, especifica el `master-reference` como el `page-sequence-master` definido anteriormente. Por ejemplo:

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

Con esta configuración, el formato especificado en `first-page` se aplicará solo a la primera página, mientras que el formato especificado en `other-pages` se aplicará a todas las demás páginas.

Recuerda ajustar los valores de altura, ancho y otros atributos según tus requisitos.

Ten en cuenta que la implementación exacta puede variar dependiendo de la herramienta o biblioteca que estés utilizando para procesar XSL-FO.
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