Если все таблицы являются достаточно маленькими, чтобы соответствовать одной странице, тогда существует простое решение: установите свойство KeepWith первой строки для подсчета числа минус один, чтобы сохранить всю таблицу на одной странице.
Если таблицы не всегда соответствуют одной странице: вы можете попробовать взломать, например. установка KeepWith на 6 или 8 или 10 (зависит от высоты строк таблицы). Если значение близко к тому, что подходит для одной страницы (без перехода), таблицы будут начинаться на новой странице автоматически.
Очевидно, что это будет работать очень хорошо, если строки таблицы имеют постоянную высоту; если строки строк имеют разную высоту, это не будет работать надежно, но все равно будет препятствовать таблицам, которые будут иметь только одну или две строки на первой странице (это не ваше требование, но, возможно, это требование можно обсудить?).
Чистый (но сложный) способ выполнить ваши требования: получить доступ к внутреннему методу GetRenderInfoFromPage. Вам нужно будет начать инкрементный процесс:
1) визуализировать документ;
2) если вы найдете раздвоение таблицу, вставить разрыв страницы перед этой таблицы и повторите с 1
Смотрите также здесь:
http://forum.pdfsharp.net/viewtopic.php?p=1960#p1960
Каждая таблица должна быть не более 3/4ths на странице, поэтому KeepWith свойство должно быть достаточным. Я отмечу это как ответ, как только смогу, наконец, проверить его! – KallDrexx
Работает отлично, спасибо! – KallDrexx