2016-06-10 6 views
0

Ich versuche, einen Baum für einen Teile-Liste zu erstellen, wie folgt aus:XSLT - XSL: FO PDF Table-Reihe zu hoch - Unicode-Block-Elemente in Baum

The Tree

Aber wenn ich versuche, um in eine senkrechte Linie zu passen (Courier New, HTML decimal: & # 9474), passt es nicht perfekt bis zum nächsten Blockelement. Ich habe alle Ränder, Ränder und Abstände überprüft.

Ich dachte auch, dass vielleicht das schwarze Element selbst nicht das Zeichen füllen würde, Raum, aber das ist nicht der Fall, wie Sie auf dem Bild sehen können. Das Element mit dem Streifen rechts hat die gleiche Größe wie die senkrechte Linie. Und das Element mit der Linie nach rechts passt perfekt, die senkrechte Linie nicht:

enter image description here

Hier ist der Code der verschachtelten zusammen Tabellen:

<fo:table-body> 
[...] 
<fo:table-row font-size="8pt" padding-top="0pt" 
    margin-bottom="-3pt" margin-top="0pt" vertical-align="center" 
    font-family="MyCourierNew"> 
    <fo:table-cell border-left="{$Standardrand}" font-size="11pt" font-family="MyCourierNew"> 
     <fo:block> 
      <xsl:if test="$ben2 != ''"> 
       <xsl:choose> 
        <xsl:when test="$naechste &gt; $aktuelle"> 
         │ 
        </xsl:when> 
        <xsl:when test="$naechste = $aktuelle and $aktuelle &gt; 1"> 
         │ 
        </xsl:when> 
       </xsl:choose> 
      </xsl:if> 
     </fo:block> 
    </fo:table-cell> 
</fo:table-row> 

ich ernsthaft kann das Problem nicht finden.

+0

Nicht sicher, es wird wirklich Lösung dieses Problems sein, aber vielleicht können Sie alle explizit die border-top und border-bottom auf die versuchen Einstellung 'table-row' und auf' table-cell' auf 0pt. – potame

+1

Ich bezweifle, dass Ihre Courier New (oder "MyCourierNew") Schriftart die Box-Zeichen-Zeichen (sofern Sie sie zu "MyCourierNew" hinzugefügt haben). Siehe z. B. http://www.myfonts.com/fonts/mti/courier-new/courier-new/glyphs.html für die Glyphen in Monotype's Courier New. Daher ersetzt Ihr Formatierer wahrscheinlich auch Zeichen aus einer anderen Schriftart. Außerdem würde es hilfreich sein, wenn Sie ein Snippet des tatsächlichen XSL-FO-Markups hinzufügen könnten. Schließlich könnte es helfen, 'padding-top' und' padding-bottom' auf '0pt' und' line-height' auf '1' zu setzen. –

+0

@TonyGraham Einstellung der Zeilenhöhe auf 1 behoben mein Problem! Vielen Dank! – MrOnkelChiller

Antwort

0

Ich bin nicht sicher, welche XSL-FO Sie generieren. Aber line-height.conditionality = "discard" kann Ihnen helfen. Diese Eigenschaftseinstellung entfernt die Hälfte der Zeilen vor und nach der Zeile. So wird es für diesen Fall geeignet sein.

Hier ist mein Formatierungsergebnis, das & # 9474; verwendet.

Sample formatting result

Und hier ist mein XSL-FO

<fo:table-and-caption> 
    <fo:table border-after-width.conditionality="retain" 
     border-before-width.conditionality="retain" border-bottom="2pt solid black" 
     border-left="2pt solid black" border-right="2pt solid black" 
     border-top="2pt solid black" font-size="9.5pt" space-after="2mm"> 
     <fo:table-column 
      column-width="20mm" text-align="left"/> 
     <fo:table-column 
      column-width="40mm" text-align="left"/> 
     <fo:table-column 
      column-width="20mm" text-align="left"/> 
     <fo:table-column 
      column-width="20mm" text-align="left"/> 
     <fo:table-body start-indent="3pt"> 
      <fo:table-row font-size="8pt" display-align="center" font-family="Arial"> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black"> 
        <fo:block>35</fo:block> 
       </fo:table-cell> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black" font-family="Courier New" font-size="11pt" line-height.conditionality="discard"> 
        <fo:block>1</fo:block> 
       </fo:table-cell> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black"> 
        <fo:block>2</fo:block> 
       </fo:table-cell> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black"> 
        <fo:block>8247947</fo:block> 
       </fo:table-cell> 
      </fo:table-row> 
      <fo:table-row font-size="8pt" display-align="center" font-family="Arial"> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black"> 
        <fo:block>35</fo:block> 
       </fo:table-cell> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black" font-family="Courier New" font-size="11pt" line-height.conditionality="discard"> 
        <fo:block>&#x2502;</fo:block> 
       </fo:table-cell> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black"> 
        <fo:block>2</fo:block> 
       </fo:table-cell> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black"> 
        <fo:block>8247947</fo:block> 
       </fo:table-cell> 
      </fo:table-row> 
      <fo:table-row font-size="8pt" display-align="center" font-family="Arial"> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black"> 
        <fo:block>35</fo:block> 
       </fo:table-cell> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black" font-family="Courier New" font-size="11pt" line-height.conditionality="discard"> 
        <fo:block>&#x251C;2</fo:block> 
       </fo:table-cell> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black"> 
        <fo:block>2</fo:block> 
       </fo:table-cell> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black"> 
        <fo:block>8247947</fo:block> 
       </fo:table-cell> 
      </fo:table-row> 
      <fo:table-row font-size="8pt" display-align="center" font-family="Arial"> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black"> 
        <fo:block>35</fo:block> 
       </fo:table-cell> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black" font-family="Courier New" font-size="11pt" line-height.conditionality="discard"> 
        <fo:block>&#x2502;</fo:block> 
       </fo:table-cell> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black"> 
        <fo:block>2</fo:block> 
       </fo:table-cell> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black"> 
        <fo:block>8247947</fo:block> 
       </fo:table-cell> 
      </fo:table-row> 
      <fo:table-row font-size="8pt" display-align="center" font-family="Arial"> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black"> 
        <fo:block>35</fo:block> 
       </fo:table-cell> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black" font-family="Courier New" font-size="11pt" line-height.conditionality="discard"> 
        <fo:block>&#x2514;3</fo:block> 
       </fo:table-cell> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black"> 
        <fo:block>2</fo:block> 
       </fo:table-cell> 
       <fo:table-cell border-end-width="1pt" border-end-style="solid" border-end-color="black"> 
        <fo:block>8247947</fo:block> 
       </fo:table-cell> 
      </fo:table-row> 
     </fo:table-body> 
    </fo:table> 
</fo:table-and-caption> 
+0

Die 'line-height.conditionality =" discard "funktionierte für die senkrechte Linie, aber vermasselte den Rest meines Dokuments ... Aber ich reparierte es. :) Danke für die Mühe! – MrOnkelChiller