Question: How would ya'll recommend that I convert a FlowDocument to PDF to be attached to an EMail?

The FlowDocument is dynamic, not static.

I would prefer to be able to store the PDF in memory as a byte[], rather than on disk, but that is negotiable.

Thanks for your help!

Answer: 
You have two options that I know of.

The first is to use a proprietary library called [NiPDF](http://nixps.com/nipdf/index.html), alternatively you can use Word Interop.

1. Save the FlowDocument to a DOCX file using [Open XML SDK](http://msdn.microsoft.com/en-us/library/bb448854.aspx)
2. Use Word Interop to load the saved document from some temporary store
3. Set the [WdSaveFormat](http://msdn.microsoft.com/en-us/library/bb238158%28v=office.12%29.aspx) to wdFormatPDF
4. Save the document again (remember to rename the file to PDF)

You can find further info [here](http://msdn.microsoft.com/de-de/library/microsoft.office.interop.word%28v=office.12%29.aspx)
You might want to consider the product called "Report Writer for .NET" by Seberix (http://www.siberix.com/). Its API is similar to the code behind in FlowDocument which I think is you want want when you said "dynamic, not static". (But I'm sure there are differences as well. Devils are in the details).

Once a Siberix.Report.Report object has been created,

```
Siberix.Report.Report report = CreateMyPdfReport();  //You write this
Stream stream = new MemoryStream();
report.Publish(stream, Siberix.Report.FileFormat.PDF);
byte[] bytes = stream.ToArray();

```

Now bytes can be saved to a database table or whatever.