用于pdf生成的FOP代码:表格单元格变得怪异

时间:2016-01-27 13:35:19

标签: apache-fop

我目前使用FOP Code生成.pdf文件。我需要根据用户输入动态生成一个表。在CMS <table>中,<tr><td>定义如下:

TD:

<fo:table-cell padding-top="0pt" padding-left="5.4pt" padding-bottom="0pt" padding-right="5.4pt"  border-left-style="solid" border-right-style="solid"  border-left-color="$CMS_VALUE(borderColor)$" border-right-color="$CMS_VALUE(borderColor)$" border-left-width="0.0pt" border-right-width="0.0pt" border-top-style="solid" border-bottom-style="solid" border-top-color="$CMS_VALUE(borderColor)$" border-bottom-color="$CMS_VALUE(borderColor)$" border-top-width="0.0pt" border-bottom-width="0.0pt">
<fo:block font-family="$CMS_VALUE(mainFontFamily)$" color="$CMS_VALUE(mainFontColor)$" font-size="$CMS_VALUE(fontSize)$pt" language="DE" text-align="left">
    <fo:inline font-weight="normal" font-size="$CMS_VALUE(fontSize)$pt">
    <fo:leader leader-length="0pt"/>
          $CMS_VALUE(#content)$
    </fo:inline>
</fo:block>
</fo:table-cell>

表:

<fo:table table-layout="fixed" font-family="$CMS_VALUE(mainFontFamily)$" color="$CMS_VALUE(mainFontColor)$" start-indent="0pt" border-style="solid"  border-top-color="$CMS_VALUE(borderColor)$" border-top-width="0.0pt" border-left-color="$CMS_VALUE(borderColor)$" border-left-width="0.0pt" border-bottom-color="$CMS_VALUE(borderColor)$" border-bottom-width="0.0pt" border-right color="$CMS_VALUE(borderColor)$" border-right-width="0.0pt">

$CMS_FOR(col,[1..#table.cols])$
    <fo:table-column column-number="$CMS_VALUE(col)$" column-width="$CMS_VALUE(100.0/#table.cols)$%"/>
$CMS_END_FOR$       

<fo:table-body start-indent="0pt" end-indent="0pt">
    $CMS_VALUE(#content)$
</fo:table-body>
</fo:table>

TR:

<fo:table-row>
$CMS_VALUE(#content)$
</fo:table-row>
然而,这会产生一个非常奇怪的格式化表(参见附图)。我在表格单元格周围添加了红色边框以使其更清晰。中间的大单元实际上是一个单元格,在第三行之后不应该在文本中有那么大的间隙(我只是输入一些虚拟文本......)。

为什么会发生这种情况,我该如何解决?

我玩<fo:leader/><line-height>以及其他一些东西,但这些似乎都不是那些&#34;分裂&#34;细胞

谢谢!

enter image description here

0 个答案:

没有答案