Printing documents in Windows is not as trivial as it might seem at first glance. To do this, you must, at a minimum, provide in your application the ability for the user to select a printing device (printer), configure it (select the paper size and orientation, print quality, other options specific to this printer, for example, color or black and white printing) ... In addition, the application must be able to print the document regardless of the technical characteristics of the device, such as resolution, for example.
This all looks a little tricky to program if you only use API calls directly. Not to mention the fact that when programming something tied to hardware, it is always better to use well tested code (in different conditions and on different equipment) than your own, well tested only for one or two configurations that you personally encountered ... As I remember now, my programs had several times problems with printing on unprecedented printing equipment - only due to the fact that at one time, when writing code, I could not foresee some deviations in the parameters of the device, such that I do not have was close at hand for testing the moment of writing the code.