public void Print()
{
// Set up and position everything.
SetupPrinting();
printPreviewInProgress = false;
do {
using (PrintDocument printDocument = CreatePrintDocument()) {
printDocument.Print();
}
// If we didn't print all the pages, then we must have been doing a pause
// between pages.
if (currentPage < totalPages) {
string pauseMessage;
bool pause = PausePrintingAfterPage(currentPage - 1, out pauseMessage);
Debug.Assert(pause);
if (!controller.OkCancelMessage(pauseMessage, true))
break;
}
} while (currentPage < totalPages);
}