You get a PrintPage event for each page, provided you set the HasMorePages property of the PrintPageEventArgs to true - it defaults to false, so unless your code explicitly sets it, you will only print a single page.
PrintPageEventArgs.HasMorePages Property (System.Drawing.Printing) | Microsoft Docs[
^]
So create a class-level private "last printed line" counter, and advance it by a "page" each time you print. If there are more lines to print, then set HasMorePages to true at the end of the event handler, and you will be given another event pretty much immediately for you to print the next page and repeat.