我有一些代码可以根据用户的选择生成文本块。这些文本块的高度因用户选择的项目数而异。我要做的是确保这些块以最有效的方式排列在页面上。
例如,第 1 节高 250 磅,第 2 节高 650 磅。如果用户选择:
400 分来自表格 a 部分的
内容 200 分来自 b 部分
的内容 250 分来自表格 c 的内容
d 部分内容 50 分
如何确保 b 部分和 d 部分进入第 1 部分,a 和 c 部分进入第 2 部分?
到目前为止,这是我的代码:
section1_height = 250
section2_height = 650
#list1 and list2 are the variables that contain the user selections
Column1 = DWIMBLOCK([list1], (18, 430), (LEFT, TOP_BASELINE), (250, 250))
Column2 = DWIMBLOCK([list2], (275, 430), (LEFT, TOP_BASELINE), (250, 650))
columns = [Column1, Column2]
sec1_columns = []
sec2_columns = []
for column in columns:
if column.height <= 250:
sec1_columns.append(column)
for shorts in sec1_columns:
if #This is where I am stuck
如您所见,我已将我的列划分为高度小于 250 点的列,但现在我被困在试图做一些类似的事情if sum of any number of blocks <= 250, assign those blocks to a new list
我应该如何做这件事?谢谢!
更新:
这是布局的粗略轮廓,以便您可以获得更清晰的图片。
____________________
|#########**********|
|# image #* *|
|#########* *|
|********** *|
|* ** *|
|*sec. 1 ** *|
|* **sec. 2 *|
|********** *|
|#########* *|
|# #* *|
|# image #* *|
|# #* *|
|#########**********|
____________________
这两个图像总是在同一个位置和相同的大小。
还应该注意的是,这是用于 PDF 制作,而不是 Web 使用,因此 CSS 和 Javascript 不是选项。我正在使用的环境仅允许使用 Python 代码。