Печать многостраничных форм со страницей продолжения

#c# #printing

#c# #печать

Вопрос:

У меня есть динамически сгенерированный счет-фактура, который печатается нормально, если он помещается на одну страницу.

У меня есть несколько примеров распечатки этих форм, где вы считаете позицию Y на странице, но многие из них кажутся слишком простыми.

Когда примеры переполняются, они просто устанавливают

 e.HasMorePages = true; 
  

в событии pDoc_PrintPage(отправитель объекта, PrintPageEventArgs e).

Однако мне нужно печатать заголовок продолжения на каждой последующей странице, чтобы убедиться, что все многостраничные формы могут быть связаны с одним и тем же клиентом и номером заказа.

Есть ли другое событие, которое я могу перехватить для печати второй страницы (я предполагаю, что нет, поскольку я не могу ее найти), или мне нужно сделать что-то вроде;

 if (PageIsOverflowing)
{
    e.HasMorePages = true; 
    yPos = 10;
    WriteContinuationPage();
}
  

Прошу прощения за то, что не попробовал выше, но у меня здесь нет Visual Studio, я просто искал, пытаясь найти пример, который делает то, что мне нужно. Если никто не публикует, я попробую завтра и обновлю это по мере необходимости

выпишите заголовок страницы продолжения, когда я установлю HasMorePages

Комментарии:

1. PrintPage — это просто: он печатает страницу. Когда вы устанавливаете для e.HasMorePages значение true, вы сообщаете системе снова запустить это событие PrintPage, поэтому вам нужно отслеживать, какую «строку» вы напечатали последней, и начинать со следующей после этого. Используйте событие BeginPrint, чтобы установить индекс строки равным нулю, увеличьте значение в событии PrintPage.

2. Извини, Джон, я запомню это на будущее. Спасибо, Ларс, я попробую, имеет смысл, просто мне нужно отследить, является ли его страница 1 или нет, чтобы я мог показать полный заголовок или продолжение.