public static string ConvertXamlToRtf(string xamlText)
{
FlowDocument flowDocument;
using (var xamlTextReader = new StringReader(xamlText))
using (var xamlXmlReader = new XmlTextReader(xamlTextReader))
{
flowDocument = (FlowDocument) XamlReader.Load(xamlXmlReader);
flowDocument.SetValue (FlowDocument.TextAlignmentProperty, TextAlignment.Left);
}
using (var rtfMemoryStream = new MemoryStream())
{
var textRange = new TextRange(flowDocument.ContentStart, flowDocument.ContentEnd);
textRange.Save(rtfMemoryStream, DataFormats.Rtf);
rtfMemoryStream.Seek(0, SeekOrigin.Begin);
using (var rtfStreamReader = new StreamReader(rtfMemoryStream))
{
return rtfStreamReader.ReadToEnd();
}
}
}
}