dynamic reference xsl-fo flow toc

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.