2017-02-02 6 views
0

Ich versuche, mit 2 vertikalen grauen Balken mit XSL-FO zu umgeben und zu bebildern. Ich habe ein vertikales Trennzeichen mit 180 * 1 Dimension erstellt und kann es in meinem XSL korrekt rendern.XSL-FO: Blockelement falsche Höhe

Problem ist, das <fo:block> Element nimmt zu viel Höhe, und ich kann nicht scheinen, einen Workaround zu finden, siehe Bild unten (das Rot ist der Hintergrund des Elements <fo:block>, während die dünne graue Linie ist mein Trennzeichen. Ich ' habe gutes Ergebnis hatte durch die ganze <fo-block> in eine <fo:block-container> Einwickeln aber der Separator ist nicht zentriert, und ich war nicht der Lage, es zu zentrieren.

das ist mein Code

<fo:block height='1px' background-color='#DE122D'> 
    <fo:external-graphic height='1px' content-width="scale-down-to-fit" src="url('images/verticalSeparator.png')" /> 
</fo:block> 

ich habe Farbe ein Hintergrund ist, um zu sein in der Lage zu sehen, wie viel Höhe es dauerte.

Letztendlich versuche ich, den 2. Screenshot zu erreichen, könnte es andere Wege geben, dies zu tun (vielleicht etwas mit Grenze?) und ich bin bereit, sie auszuprobieren. Beachten Sie, dass die 2 vertikalen Balken länger als das Bild sind und dass der Inhalt zentriert sein muss!

enter image description here


enter image description here

+0

Sie sollten einige FO zu Ihrer Frage hinzufügen, so können wir –

+0

helfen ich die relevanten Code hinzugefügt afterwars, müssen Sie möglicherweise aktualisieren :) –

+0

OK, Schriftgröße auf 0 px und line-height auf 0 auf dem Block und testen Sie wieder –

Antwort

0

könnte ich nicht verstehe Ihre Frage, aber basierend auf dem Code geschrieben Sie die Regel impliziert das Problem ist, und zu viel Platz machen. Wenn die Regel Ihr Problem ist, möchten Sie möglicherweise eine alternative Struktur als ein Bild verwenden. Dazu können Sie einen Vorspann verwenden und die Länge auf das einstellen, was Sie wollen und keine Probleme haben, ihn zu zentrieren. Der folgende Code:

<fo:block text-align="center">Text Before</fo:block> 
    <fo:block text-align="center" font-size="1px" line-height="0"><fo:leader color="silver" leader-length="2in" leader-pattern="rule"/></fo:block> 
    <fo:block text-align="center">Text Between</fo:block> 
    <fo:block text-align="center" font-size="1px" line-height="0"><fo:leader color="silver" leader-length="2in" leader-pattern="rule"/></fo:block> 
    <fo:block text-align="center">Text After</fo:block> 

erzeugt diese Ausgabe - Sie keine Probleme im Abstand sehen:

enter image description here

Verwandte Themen