MigraDoc を使用していくつかの PDF を生成しています。配列内の各要素に対してテキストのテーブルを作成するコードがあり、これらのテーブルを含むページを印刷しています。
ただし、私が与えられている要件は、2 つのテーブルがあり、最初のテーブルの長さのために 2 番目のテーブルがページに収まらない場合、次のページを開始するには 2 番目のテーブルが必要であるということです。次に、ドキュメントに追加するテーブルごとにこれを繰り返す必要があります。
どうすればこれを行うことができますか?
すべてのテーブルが 1 ページに収まるほど小さい場合は、簡単な解決策があります。最初の行の KeepWith プロパティを行数から 1 を引いた値に設定して、テーブル全体を 1 ページに収めます。
表が常に 1 ページに収まらない場合: KeepWith を 6 または 8 または 10 に設定するなど、ハックを試すことができます (表の行の高さによって異なります)。値が 1 ページに収まる値に近い場合 (超過せずに)、テーブルは自動的に新しいページで開始されます。
テーブルの行の高さが一定の場合、明らかにこれは非常にうまく機能します。表の行の高さが異なる場合、これは確実に機能しませんが、最初のページに 1 つまたは 2 つの行しかない表を防ぐことができます (これは要件ではありませんが、要件について話し合うことができますか?)。
要件を満たすクリーンな (しかし複雑な) 方法: 内部の GetRenderInfoFromPage メソッドにアクセスします。増分プロセスを開始する必要があります
。1) ドキュメントをレンダリングします。
2) 分割された表が見つかった場合は、その表の前に改ページを挿入し、1 から繰り返します。
こちらも参照してください:
http://forum.pdfsharp.net/viewtopic.php?p=1960#p1960