13

reportlabを使用していくつかのPDFファイルを生成しています。繰り返される特定のセクションがあります。ヘッダーとテーブルが含まれています。

            Story.append(Paragraph(header_string, styleH))
            Story.append(table) 

段落をテーブルとグループ化して(ラテックスでは同じ環境に配置します)、ページブレーキの場合に段落とテーブルを一緒に保つにはどうすればよいですか?現在、段落は1ページの終わりに浮かぶことがあり、表は次のページの上から始まります。

4

3 に答える 3

13

KeepTogether次のように、それらをフロー可能にまとめることができます。

Story.append(KeepTogether([Paragraph(header_string, styleH), table])

ただし、最後に確認したところ、実装は完全ではなく、アイテムが頻繁に分割されることに注意してください。次のように、別の方法では分割される単一のフロー可能なものをまとめるのに適していることを私は知っています。

Story.append(KeepTogether(Paragraph(header_string, styleH))

その場合、その段落が分割されないことが不可能でない限り、その段落は分割されません。

KeepTogetherうまくいかない場合は、段落とテーブルを内部に含むカスタムを作成し、レイアウト中にカスタムサブクラスが分割されないようにすることをお勧めしFlowableますFlowable

于 2011-02-02T21:35:02.837 に答える
10

これは、reportlabのソースコードを調べて見つけたソリューションです。

paragraph = Paragraph(header_string, styleH)
paragraph.keepWithNext = True
Story.append(paragraph)
Story.append(table)
于 2011-02-03T11:04:16.803 に答える