I assume that you want this to happen programmatically and not as a manual process.
Method 1: Install a PDF driver, such as Amyuni or PrimoPDF . Print the FlowDocument with the desired PrintTicket / page size in the printer driver. The PDF you get from it should be a pretty good conversion. Some of these drivers (e.g. Amyuni) have SDKs that you can programmatically manage this process.
Method 2: Print to XPS programmatically using the XPS driver without the Save As dialog; there you can build a sample for this in the Windows DDK yourself quite easily. Then use an XPS to PDF converter such as NiXPS or Adobe SDK (so expensive, I wonโt post the link) or GhostXPS to convert XPS directly to PDF.
Method 3: Convert the flow document directly to XPS using methods such as This , and then use XPS to PDF Converter, such as those mentioned above.
Disclaimer: I do not work for any of these companies or their competitors. I used the Adobe SDK, Amyuni printer and various XPS tricks with pretty good success. No method will convert to 100% accuracy.
source share