public static string FlowDocumentToText(FlowDocument doc) { var builder = new StringBuilder(); foreach (var el in doc.Descendants().Distinct()) { if (el is Paragraph && !(((Paragraph)el).Parent is TableCell)) { builder.AppendLine(); } if (el is Run) { builder.Append((((Run)el).Text ?? "").Trim()); } if (el is TableRow) { builder.AppendLine(); } if (el is TableCell) { builder.Append("|"); } } return(builder.ToString().Trim()); }
public static IEnumerable <Paragraph> Paragraphs(this FlowDocument doc) { return(doc.Descendants().OfType <Paragraph>()); }