使用CopySourceAsHtml+CSS, 打造Dflying Chen博客上的源代码样式

一款很有趣的开源VS2005插件:CopySourceAsHtml 看到CopySourceAsHtml , 安装发现中文的VS2005会出现问题, 还有, 它是开源的, 在修正 CopySourceAsHTML 插件无法用于中文 VS2005 的Bug 中可以找的解决方法,.
我自己也修改了一些, 加上了相邻行背景色可设置,
并做一些自己觉得需要的修改, 我修改后的DLL可在此下载: CopySourceAsHtml.dll.


添加样式表:  其中.cf的样式来自Dflying Chen 老大的博客.

样式示例:
/* CopySourceAsHtml Style */
.cf 
{ 
    font-family
: consolas, "Courier New", courier, monospace;
    font-size
: 1.2em;
    color
: black;
    background-color
: #fff;
    line-height
: 1em;
    
/*white-space: pre;*/
 
}
.cf p.cl 
{ margin: 0; padding: 0; } /*普通行*/
.cf p.cl_alt 
{ margin: 0; padding: 0; background-color: #f4f4f4;} /*相邻行*/
.cln 
{ color: #2b91af; } /*行号*/
.cb_green 
{ color: green; } /*按颜色分*/
.cb_blue 
{ color: blue; }
.cb_2b91af 
{ color: #2b91af; }
.cb_a31515 
{ color: #a31515; }
.cb_red 
{ color: red; }


示例:
不带行号:

        public static void SetHtml(string html)

        {

 

            DataObject data;

 

            data = new DataObject();

            data.SetData(DataFormats.Text, true, html);

            //data.SetData(DataFormats.UnicodeText, true, html);

            data.SetData(DataFormats.Html, true, EncodeHtml(html));

            //MessageBox.Show(data.GetText(TextDataFormat.Html));

            System.Windows.Forms.Clipboard.SetDataObject(data, true);

 

        }



带行号:

   34         public static void SetHtml(string html)

   35         {

   36 

   37             DataObject data;

   38 

   39             data = new DataObject();

   40             data.SetData(DataFormats.Text, true, html);

   41             //data.SetData(DataFormats.UnicodeText, true, html);

   42             data.SetData(DataFormats.Html, true, EncodeHtml(html));

   43             //MessageBox.Show(data.GetText(TextDataFormat.Html));

   44             System.Windows.Forms.Clipboard.SetDataObject(data, true);

   45 

   46         }



希望Dflying Chen能让我抄袭一下他的样式.
:)
posted @ 2007-08-13 13:20  MK2  阅读(665)  评论(2编辑  收藏  举报