florian: XSL-FO: Dynamische Führungslinien für Inhaltsverzeichnisse

Hallo @ all,
derzeit erprobe ich gerade die Erstellung von Katalogen mittels XML/XSL/FO-Transformation.
Dank eurer Hilfe habe ich auch bereits mehrere einzelne Produktdatenblätter in einen Katalog zusammenfassen können.
Was nun noch fehlt zu meinem Glück :) ist ein ansprechendes Inhaltsverzeichnis.
Insbesonders ärgern mich hier die Führungslinien, die ich mit fo:leader einfügen kann. Kann ich die Länge der Führungslinien nicht dynamisch regeln?
Problem:
Die Titel der einzelnen Produkte variieren in der Länge teilweise erheblich. Wenn ich nun dem fo:leader-Element das Attribut leader-length="10cm" zuweise, dann werden die 10 cm langen Führungslinien immer NACH dem Titel eingefügt. Das führt dazu, dass alles sehr "ausgefranst" aussieht:

Titel1 ..... 2
langerTitel2 .....5
kurz ..... 9
usw.

Gewünscht wäre aber:

Titel1......... 2
langerTitel2... 5
kurz........... 9

Habe auch schon mit Tabellen rumgespielt:
Produkttitel in Zelle 1, anschließend das leader-length="100%" angegeben und in Zelle 2 die Seitenzahlen eingefügt. Funktioniert aber auch nicht...

Kann mir nicht vorstellen, dass es in FO dafür keine "elegante" Lösung gibt.

Vielen Dank für eure Hilfe.

Schöne Grüße aus Mannheim,
Florian

  1. Hallo,

    Insbesonders ärgern mich hier die Führungslinien, die ich mit fo:leader einfügen kann. Kann ich die Länge der Führungslinien nicht dynamisch regeln?
    Problem:

    Gewünscht wäre aber:

    Titel1......... 2
    langerTitel2... 5
    kurz........... 9

    <fo:block text-align-last="justify">
       bal bla bla
       <fo:leader leader-alignment="reference-area" leader-pattern="rule" rule-style="dotted" rule-thickness="1pt" />
       blub
    </fo:block>

    oder:

    <fo:block text-align-last="justify">
       fo:inlinebla bla bla </fo:inline>
       <fo:leader leader-alignment="reference-area" leader-pattern="rule" rule-style="dotted" rule-thickness="1pt" />
       <fo:page-number-citation ref-id="blub"/>
    </fo:block>

    Grüße
    Thomas