2017-05-10 2 views
0

Bonjour,Comment créer une liste ordonnée (ol en HTML) avec XSL-FO?

Je travaille sur la présentation pour le convertir en PDF à partir de xml où j'utilise ces technologies:

  • XML
  • XSL
  • XSL-FO
  • saxon
  • autres choses ...

Et dans mon fichier XSL-FO-je besoin d'avoir une diapositive de présentation contenant la liste numérotée des éléments spécifiques. La seule chose que j'ai trouvé est seulement la liste commune comme indiqué ci-dessus ce paragraphe. Voici la documentation xsl-fo pour les listes: https://www.alt-soft.com/tutorial/xslfo_tutorial/xsl-fo_list.html

Voici mon code:

<fo:list-block padding="4pt" margin-left="10mm" margin-top="4mm"> 
     <xsl:for-each select="//*[starts-with(name(), 'slide_')]"> 
      <xsl:if test="not(position()=1)"> 
       <fo:list-item margin-left="13mm" margin-top="8mm" margin-right="5mm" font-family="Times, 'Times New Roman', serif" font-size="15pt"> 
        <fo:list-item-label end-indent="label-end()"> 
         <fo:block>&#x02022;</fo:block> 
        </fo:list-item-label> 
        <fo:list-item-body start-indent="body-start()"> 
         <fo:block margin-left="10mm"> 
          <xsl:value-of select="title"/> 
         </fo:block> 
        </fo:list-item-body> 

       </fo:list-item> 
      </xsl:if> 
     </xsl:for-each> 
    </fo:list-block> 

Ce code générera la liste des points communs de tous les titres de diapositives, mais je suis incapable de faire une liste ordonnée avec des chiffres comme ol en HTML. J'ai trouvé seulement la solution qui ne fonctionne pas pour moi où ces éléments de liste sont en quelque sorte imbriqués. Je l'ai essayé mais lors de la compilation il échoue toujours. Voici le lien à ce code (page 8,9): https://www.w3.org/Style/XSL/TestSuite/contrib/FOP/list.pdf

Ce site en ligne peut vous aider à me trouver solution, pour le tester en ligne: http://www.utilities-online.info/foprender/#.WRLOAYh97cs

Y at-il une solution comment cela peut se faire S'il vous plaît? Merci d'avance pour votre réponse.

Répondre

1

Vous devez mettre un numéro à la place du &#x02022; dans chaque fo:list-item-label.

Vous pouvez générer les numéros de la structure de votre source XML en utilisant xsl:number. Voir https://www.w3.org/TR/xslt#number pour la définition XSLT 1.0 et quelques exemples simples.

+0

Hmm, merci! Maintenant, je comprends mon erreur. J'ai utilisé À partir de w3.org que vous avez posté ici, mais il produit toujours une mauvaise sortie ... comme suit: . 1 pas comme 1. –

+0

aa .. mauvaise étiquette, j'ai utilisé la fin, besoin d'être comme ceci: end-indent = "label-start()" ... ok, merci, ça marche! –