如何解决如何在XSL-FO中垂直对齐长表的文本底部
我有两列的长(两页及更多)表,并且想将Right Column Cell
放在表的末尾。对于第一行,我已经做到了:
<fo:table-row>
<fo:table-cell>
<fo:block>Row 1</fo:block>
</fo:table-cell>
<fo:table-cell display-align="after" number-rows-spanned="20">
<fo:block>Right Column Cell</fo:block>
</fo:table-cell>
</fo:table-row>
但是在生成的PDF中,我在首页的底部得到了文本,但没有表格:
XSL-FO处理器:Apache FOP v2.5。
我的示例.fo:
<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master margin-right="2cm" margin-left="2cm" margin-bottom="2cm" margin-top="2cm" page-width="210mm" page-height="297mm" master-name="page">
<fo:region-body region-name="xsl-region-body"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="page">
<fo:flow flow-name="xsl-region-body">
<fo:block font-size="36pt">
<fo:table width="100%" table-layout="fixed">
<fo:table-column column-width="30%"/>
<fo:table-column column-width="70%"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 1</fo:block>
</fo:table-cell>
<fo:table-cell display-align="after" number-rows-spanned="20">
<fo:block>Right Column Cell</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 2</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 3</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 4</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 5</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 6</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 7</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 8</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 9</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 10</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 11</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 12</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 13</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 14</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 15</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 16</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 17</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 18</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 19</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>Row 20</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
我做错了什么?还是FOP错误?
解决方法
如果“行20”和“右列单元格”将始终是相同的行数(或者如果“行20”也可能比“右列单元格”更多的行),则只需将“右列单元格”放入'在第20行的第二列中。
如果不是那么简单,那么您可能不走运。我使用AH Formatter V7.0尝试了您的示例,并在第一页底部显示了“右列单元格”。
如果您使用的是AH Formatter,则可以使用axf:repeat-cell-content-at-break
(请参阅https://www.antenna.co.jp/AHF/help/v70e/ahf-ext.html#axf.repeat-cell-content-at-break)重复内容,尽管那不是完全一样。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。