让第二列的数据留在第二列

Make the data from the second column stay at the second column

我正在使用 reportlab 制作一个表格,它分为两列。第二列只是第一列的副本。

我使用 Frame() 函数创建了两列,我使用了 Spacer() 函数将原始表单与复制的表单分成两列。

我的预期结果是让第二列的数据保持原样。但我得到的结果是,当第一列的数据变短时,第二列开始向上移动并移动到第一列。

如果我答对了你的问题,问题是你使用间隔符来控制内容在两个 columns/frames 中的视觉位置。这样,您将其视为一分为二的单个长列,同时您需要将其视为两个单独的列(两个单独的框架)。

因此,如果您结束第一帧(在开始填充另一帧之前使用 FrameBreak() 并且仅使用间隔符来控制同一帧内的任何视觉设计,您将获得更好的控制。

您需要了解的工具有: FrameBreak(),如果你搜索它,你会发现很多代码示例。

例如您用 10 行文本填充第 1 帧,然后插入 FramBreak() 并指示脚本开始填充第二列。

您应该注意的另一个工具是使用的设置,例如 BaseDocTemplate:

allowSplitting:如果设置为 1,可流动内容(例如,段落)可以跨框架或页面拆分。如果为 0,则强制内容进入同一帧。 (默认值:1,禁用 0)。