void Printing.IPrintable.PrintBy(Printing.IPrinter printer) { int pageNumber = 0; int lineNumberInPage = 0; foreach (var line in _lineEnum) { if (lineNumberInPage >= _numberOfLines) { printer.PageBreak(); lineNumberInPage = 0; ++pageNumber; Progress(pageNumber); } line.PrintBy(printer); printer.LineFeed(_leading); printer.CarriageReturn(); ++lineNumberInPage; } Progress(pageNumber + 1); }