dynamic - XSL-FO creando tabla de contenido dinámica
reference flow (1)
¿Cómo podemos crear dinámicamente una página de tabla de contenido en XSL-FO?
Lo que he hecho en el pasado es usar <fo:page-number-citation> para cada entrada en el TOC (Table of Contents). Hago la tabla de contenidos como <fo:table> .
El <fo:page-number-citation> tiene un atributo ref-id que debe contener el id de la ubicación a la que hace referencia. Debe generar el número de página PDF donde se encuentra esa id .
Por ejemplo, si quisiera que cada <chapter> referenciado en su TOC, use <fo:page-number-citation> con un ref-id que coincida con el id de donde se produjo el <chapter> (como fo:page-sequence , fo:block , etc.).
Aquí hay un ejemplo. Estoy basando el atributo id en el valor de un atributo existente, pero puede generar un id si lo necesita.
Ejemplo de capítulo XML:
<chapter foo="CHAP-1">
...
</chapter>
Ejemplo de entrada en la tabla TOC:
<fo:table-cell>
<fo:block>
<fo:page-number-citation ref-id="CHAP-1"/>
</fo:block>
</fo:table-cell>
Ejemplo de salida del <chapter> :
<fo:page-sequence id="CHAP-1">
...
</fo:page-sequence>
También puede envolver el fo:page-number-citation en un fo:basic-link para vincular el número de página en el TOC a la página real.