reportlab:在rml中为td设置colspan

时间:2011-02-15 11:18:25

标签: python reportlab rml

我找不到任何选项,允许在colspan中为td元素设置rml。这有可能吗?

2 个答案:

答案 0 :(得分:8)

戈登对blockSpan元素的建议对我有用。以下是如何使用它的示例:

<?xml version="1.0"?>
<document filename="test.pdf">
  <template pageSize="(612,792)" title="Test" author="Don Kirkby">
    <pageTemplate id="first">
      <frame id="first" x1="10.0" y1="10.0" width="592" height="772"/>
    </pageTemplate>
  </template>
  <stylesheet>
    <blockTableStyle id="main">
      <blockSpan start="0,1" stop="1,1"/>
    </blockTableStyle>
  </stylesheet>
  <images/>
  <story>
    <blockTable colWidths="100.0,287.5,187.5" style="main">
      <tr>
        <td><para>Cell 0,0</para></td>
        <td><para>Cell 1,0</para></td>
        <td><para>Cell 2,0</para></td>
      </tr>
      <tr>
        <td><para>Cell 0,1 will flow into its neighbour</para></td>
        <td><para>Cell 1,1 will not appear, but must be present</para></td>
        <td><para>Cell 2,1</para></td>
      </tr>
      <tr>
        <td><para>Cell 0,2</para></td>
        <td><para>Cell 1,2</para></td>
        <td><para>Cell 2,2</para></td>
      </tr>
    </blockTable>
  </story>
</document>

答案 1 :(得分:3)

正常的ReportLab方法是使用Platypus和Table可流动的。设置Table的样式时,可以指定'SPAN'命令,将任何矩形单元格区域捆绑为一个。您可以在ReportLab User Guide第7章第81页找到更多相关信息。

如果你必须使用RML,我倾向于认为colspan根本不可用。它至少不在ReportLab RML reference document中。相反,我认为你应该使用blockSpan元素。没有给出示例,但您可以在the RML manual中找到它。