我使用reportlab生成一些pdf文件。我有一個重複的部分。它包含一個標題和一個表:如何在reportlab中對對象進行分組,以便它們在新頁面中保持一致
Story.append(Paragraph(header_string, styleH))
Story.append(table)
我怎麼能集團與表中的第(乳膠我把它們放進相同的環境),這樣,在一個頁面制動,段落和表格的情況下,待在一起?目前該段落有時會浮動在一頁的末尾,表格從下一頁的頂部開始。
我使用reportlab生成一些pdf文件。我有一個重複的部分。它包含一個標題和一個表:如何在reportlab中對對象進行分組,以便它們在新頁面中保持一致
Story.append(Paragraph(header_string, styleH))
Story.append(table)
我怎麼能集團與表中的第(乳膠我把它們放進相同的環境),這樣,在一個頁面制動,段落和表格的情況下,待在一起?目前該段落有時會浮動在一頁的末尾,表格從下一頁的頂部開始。
這是我發現通過ReportLab的源代碼去溶液:
paragraph = Paragraph(header_string, styleH)
paragraph.keepWithNext = True
Story.append(paragraph)
Story.append(table)
你可以試試把它們放在一起在KeepTogether
流動的,就像這樣:
Story.append(KeepTogether([Paragraph(header_string, styleH), table])
但是要知道,去年我檢查,落實不完美,仍會分手項目過於頻繁。我知道它保持一個流動性一起,否則將分裂,就像如果你說的不錯:
Story.append(KeepTogether(Paragraph(header_string, styleH))
那麼這一段不會得到分流,除非它是不可能的,但並非如此。
如果KeepTogether
不爲你工作,我建議創建一個自定義Flowable
與段落和表格內,然後佈局過程中要確保您的自定義Flowable
子不允許自己被分裂。
我喜歡使用`故事[-1] .keepWithNext = TRUE;因爲它使代碼短和更清潔的,並且可以很容易地添加並且無需更改變量名稱即可移除。因爲可以在循環中設置`story [-1] .keepWithNext = True`,然後在循環之後設置`story [-1] .keepWithNext = False`來斷開循環中添加的內容從任何下一個添加。 – jenniwren 2016-03-14 23:27:29