public override DialogResult CreateContent(IWin32Window dialogOwner, ref string newContent) { try { if (Clipboard.ContainsData(DataFormats.Rtf)) { newContent = "<pre class=\"code\">" + Undent(HTMLRootProcessor.FromRTF((string) Clipboard.GetData(DataFormats.Rtf))) + "</pre><a href=\"http://11011.net/software/vspaste\"></a>"; return DialogResult.OK; } } catch { MessageBox.Show("VS Paste could not convert that content.", "VS Paste Problem", MessageBoxButtons.OK, MessageBoxIcon.Hand); } return DialogResult.Cancel; }
public static string FromRTF(string rtf) { string str; using (StringWriter writer = new StringWriter()) { using (StringReader reader = new StringReader(rtf)) { ProcessorStack stack = new ProcessorStack(); HTMLRootProcessor processor = new HTMLRootProcessor(stack, writer); stack.Push(processor); Scanner scanner = new Scanner(reader); new Parser(scanner, stack).Parse(); str = writer.ToString(); } } return(str); }