reportlab: настройка colspan для td в rml - PullRequest
5 голосов
/ 15 февраля 2011

Не могу найти ни одной опции, которая позволила бы установить colspan для td элемента в rml Это как-то возможно?

Ответы [ 2 ]

8 голосов
/ 02 декабря 2011

Предложение Гордона об элементе 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>
3 голосов
/ 16 февраля 2011

Обычный способ сделать это в ReportLab - вместо этого использовать Platypus и Table. Когда вы устанавливаете стиль Table, вы можете указать команду 'SPAN', которая объединит любую прямоугольную область ячеек в одну. Подробнее об этом вы найдете в Руководство пользователя ReportLab , глава 7, стр. 81.

Если вы должны использовать RML, я склонен думать, что colspan просто недоступен. По крайней мере, этого нет в справочном документе ReportLab RML . Вместо этого я думаю, что вы должны использовать blockSpan элементов. Пример не приведен, но вы найдете его в руководстве по RML .

...