示例#1
0
 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);
    }