2016-07-22 33 views
2

Ich erzeuge einige PDF mit Apache FOP und ich möchte einige gepunktete Grenzen auf einigen Zellen haben. Es scheint jedoch, dass der Rahmenhintergrund seine Farbe von der Tabelle selbst und nicht von der Zelle erhält, was ziemlich merkwürdig ist.Gepunktete Grenze Hintergrund auf Apache FOP

Dies ist ein einfaches Beispiel:

<?xml version="1.0" encoding="UTF-8" ?> 
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xml:lang="en"> 
    <fo:layout-master-set> 
     <fo:simple-page-master master-name="A4-landscape" page-height="210mm" page-width="297mm"> 
      <fo:region-body margin-top="15mm" margin-bottom="15mm" margin-left="15mm" margin-right="15mm" /> 
      <fo:region-before region-name="docHeader"/> 
      <fo:region-after region-name="docFooter" extent="15mm" /> 
     </fo:simple-page-master> 
    </fo:layout-master-set> 
    <fo:page-sequence master-reference="A4-landscape" initial-page-number="1"> 
     <fo:flow flow-name="xsl-region-body"> 
      <fo:block> 
       <fo:table table-layout="fixed" break-after="page" background-color="red"> 
        <fo:table-column column-width="100.0mm" /> 
        <fo:table-body> 
         <fo:table-row height="25.0mm"> 
          <fo:table-cell text-align="center" display-align="center" background-color="blue" border-top="0.35277778mm dotted green" 
              border-bottom="0.35277778mm solid rgb(0,0,0)" 
              border-left="0.35277778mm solid rgb(0,0,0)" 
              border-right="0.35277778mm solid rgb(0,0,0)"> 
           <fo:block-container overflow="hidden"> 
            <fo:block wrap-option="no-wrap">test</fo:block> 
           </fo:block-container> 
          </fo:table-cell> 
         </fo:table-row> 
        </fo:table-body> 
       </fo:table> 
      </fo:block> 
      <fo:block id="endOfDoc"></fo:block> 
     </fo:flow> 
    </fo:page-sequence> 
</fo:root> 

Und das ist das Ergebnis:

The border background is red and not blue.

Haben Sie Ideen, wie die Hintergrundfarbe der Grenze zu setzen? Id dies ein normales Verhalten?

Antwort

4

Ja, das ist normales Verhalten. Die Zelle wird innerhalb der Grenze gezeichnet und die gepunktete Grenze wird dazwischen aufgeteilt. Verwenden Sie RenderX XEP mit Gehrungen Ecken und dies wird ein wenig deutlicher in was passiert. Schauen Sie sich das gezoomte Bild der Ecke:

enter image description here

Nun könnten Sie versuchen, zu jonglieren, was Sie als eine Option tun. Wie folgt aus:

  <fo:table table-layout="fixed" break-after="page" background-color="red"> 
       <fo:table-column column-width="100.0mm" /> 
       <fo:table-body> 
        <fo:table-row> 
         <fo:table-cell background-color="blue" display-align="center" 
          border-bottom="0.35277778mm solid rgb(0,0,0)" 
          border-left="0.35277778mm solid rgb(0,0,0)" 
          border-right="0.35277778mm solid rgb(0,0,0)"> 
          <fo:block-container height="25.0mm" overflow="hidden" border-top="0.35277778mm dotted green" text-align="center" > 
           <fo:block wrap-option="no-wrap">test</fo:block> 
          </fo:block-container> 
         </fo:table-cell> 
        </fo:table-row> 
       </fo:table-body> 
      </fo:table> 

und Sie würden diese:

enter image description here