/// <summary> /// Populate the view given the specified text. /// </summary> /// <param name="contents"></param> /// <param name="editingEnabled"></param> /// <returns></returns> private bool PopulateView(string contents, bool editingEnabled) { if (contents.Contains(@"{\rtf")) { richTextBox1.Rtf = contents; } else { var doc = new MigraDoc.DocumentObjectModel.Document(); var section = doc.AddSection(); if (contents.Contains("<html>")) { HtmlToMigraDoc.Convert(contents, section, ImagePath); } else { MarkdownDeep.Markdown markDown = new MarkdownDeep.Markdown(); markDown.ExtraMode = true; string html = markDown.Transform(contents); editingEnabled = true; HtmlToMigraDoc.Convert(html, section, ImagePath); } RtfDocumentRenderer renderer = new RtfDocumentRenderer(); richTextBox1.Rtf = renderer.RenderToString(doc, null); } return(editingEnabled); }
private MemoryStream RenderDocument() { switch (DocumentSettings.DocumentType) { case DocumentType.Rtf: var renderer = new RtfDocumentRenderer(); var documentString = renderer.RenderToString(Document, null); using (var stream = new MemoryStream()) using (var writer = new StreamWriter(stream)) { writer.Write(documentString); writer.Flush(); //stream.Position = 0; stream.Seek(0, SeekOrigin.Begin); return(stream); } case DocumentType.Pdf: var pdfRenderer = new PdfDocumentRenderer(true); pdfRenderer.Document = Document; pdfRenderer.RenderDocument(); using (var stream = new MemoryStream()) { pdfRenderer.PdfDocument.Save(stream, false); stream.Seek(0, SeekOrigin.Begin); return(stream); } default: throw new Exception("Unknown document type: " + DocumentSettings.DocumentType); } }
public void MakeRtf(Stream stream, bool keepOpen = false, string workingDirectory = null) { var doc = ClonedDocument(); var renderer = new RtfDocumentRenderer(); #if MIGRADOC132 if (!keepOpen) { renderer.Render(doc, stream, workingDirectory); return; } var str = renderer.RenderToString(doc, workingDirectory); StreamWriter strmWrtr = null; try { strmWrtr = new StreamWriter(stream, System.Text.Encoding.Default); strmWrtr.Write(str); } finally { if (strmWrtr != null) { strmWrtr.Flush(); if (stream != null) { //if (!keepOpen) // strmWrtr.Close(); //else stream.Position = 0; // Reset the stream position if the stream is kept open. } } } #else renderer.Render(doc, stream, !keepOpen, workingDirectory); #endif }