The Print system does not do the printing for you. Think about it. Where in your code do you have anything that describes what the printed page is supposed to look like? You don't have any!
The Print system exposes a framework for you to write your own code to do the actual printing. On top of the code you posted, you also need to handle the PrintDocument.PrintPage event to draw whatever you need to draw on the "current page". Without that code, the page you get out of the printer will have nothing on it.
See the example at
PrintDocument.PrintPage Event (System.Drawing.Printing) | Microsoft Learn[
^]