2011-05-18 3 views
1

J'ai une situation où j'ai 2 blocs-conteneurs - s'ils sont assez courts, le devrait être sur une page, séparés par une ligne. Sinon, alors le 2. block-container doit commencer à la page suivante et il ne devrait PAS y avoir de ligne entre eux. Comment puis-je faire cela (parce que je ne sais pas comment je peux vérifier si dans un flux est un saut de page)? Y a-t-il des paramètres que je peux utiliser pour vérifier FO, si le bloc commence après un saut de page ou autre chose?XSL FO: Comment déterminer les sauts de page?

Merci pour toute aide !!

Frangoo

Répondre

2

Vous pouvez définir l'attribut suivant dans le second conteneur de bloc

keep-together.within-page="always" 

Avec ce processeur XSL-FO fera en sorte que tout le bloc restera sur la même page. Donc, il ressemblerait à quelque chose comme ceci:

<fo:block keep-together.within-page="always"> <!-- any other attribute as necessary --> 
    ... 
</fo:block> 
+0

Merci, oui cela fonctionne déjà. Mais le problème est de tracer une ligne (ou tout autre élément) entre ces blocs, selon qu'il y a un saut de page ou non. – Frangoo

+0

Je ne pense pas que ce soit possible avec la définition XSL-FO. Si vous êtes vraiment intéressé par la ligne, vous pouvez essayer d'obtenir le nombre de pages rendues et l'utiliser pour déterminer le dessin de la ligne. – Osiris76

+0

Hmpf. Je m'attendais à ce que ce ne soit pas possible. Mais comment puis-je vérifier dans FO le nombre de pages? Je peux utiliser IF uniquement en XSLT, mais là je ne connais pas le nombre de pages, non? En tout cas merci pour votre réponse! – Frangoo