#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 или нет, чтобы я мог показать полный заголовок или продолжение.