You can use a third-party PDF printer driver; such as PDFCreator or CutePDF.
CutePDF has a free developer version (for purchase) with programmatic access through the registry.
The only other option I came across is to use MigraDOC + PDFSharp, but you must authorize the document through MigraDOC / PDFSharp directly, it cannot be "pre-made" PrintDocument.
David source share