C#复制图文信息到剪切板再粘贴到word
IDataObjectdataObj=newDataObject();dataobj.SetData(DataFormats.UnicodeText,str);datao...
IDataObject dataObj = new DataObject();
dataobj.SetData(DataFormats.UnicodeText, str);
dataobj.SetData(DataFormats.Bitmap, img);
Clipboard.SetDataObject(dataObj, true);
这样写粘贴到word的时候只有文字没有图片
粘贴到QQ聊天窗口的时候只有图片没有文字
想粘贴出来既有图片又有文字该怎么写?
求高手指点 展开
dataobj.SetData(DataFormats.UnicodeText, str);
dataobj.SetData(DataFormats.Bitmap, img);
Clipboard.SetDataObject(dataObj, true);
这样写粘贴到word的时候只有文字没有图片
粘贴到QQ聊天窗口的时候只有图片没有文字
想粘贴出来既有图片又有文字该怎么写?
求高手指点 展开
展开全部
参考一下这个,它是先定义一个网页,然后复制到剪贴板。这样在word就可以了。。
StringBuilder sb = new StringBuilder();
sb.Append(@"Version:0.9
StartHTML:71
EndHTML:170
StartFragment:140
EndFragment:160
StartSelection:140
EndSelection:160");
sb.Append("<html><body>");
sb.AppendFormat("<span>{0}</span>", "Hello World!");//可为任意文本
sb.AppendFormat("<img src='{0}' />", @"C:\1.png");//如果pictureBox1先保存到临时文件夹
sb.Append("</body></html>");
Clipboard.SetData(DataFormats.Html, sb.ToString());
StringBuilder sb = new StringBuilder();
sb.Append(@"Version:0.9
StartHTML:71
EndHTML:170
StartFragment:140
EndFragment:160
StartSelection:140
EndSelection:160");
sb.Append("<html><body>");
sb.AppendFormat("<span>{0}</span>", "Hello World!");//可为任意文本
sb.AppendFormat("<img src='{0}' />", @"C:\1.png");//如果pictureBox1先保存到临时文件夹
sb.Append("</body></html>");
Clipboard.SetData(DataFormats.Html, sb.ToString());
更多追问追答
追问
想分析一下word剪贴板的数据结构,因为我想接收从word里面复制出来的信息。能不能帮忙提个思路。
追答
如果你的VC++有一定基础,可以参考一下这个文章,它里面源码,就实现了,你在WORD复制内容,它能准确包括字体大小排版等等到粘帖到它的richtext控件里啊。。已测试程序过没有问题,不过没有细看代码是否包含你所想要的内容。
希望你能细看并从中也得到启示。
参考:http://www.codeproject.com/Articles/9541/A-Rich-Edit-Control-That-Displays-Bitmaps-and-Othe
展开全部
复制:
private void button1_Click(object sender, System.EventArgs e) {
// Takes the selected text from a text box and puts it on the clipboard.
if(textBox1.SelectedText != ”")
Clipboard.SetDataObject(textBox1.SelectedText);
}
粘贴:
private void button2_Click(object sender, System.EventArgs e) {
// Declares an IDataObject to hold the data returned from the clipboard.
// Retrieves the data from the clipboard.
IDataObject iData = Clipboard.GetDataObject();
// Determines whether the data is in a format you can use.
if(iData.GetDataPresent(DataFormats.Text)) {
// Yes it is, so display it in a text box.
textBox2.Text = (String)iData.GetData(DataFormats.Text);
}
}
主要通过调用Clipborad的API完成
private void button1_Click(object sender, System.EventArgs e) {
// Takes the selected text from a text box and puts it on the clipboard.
if(textBox1.SelectedText != ”")
Clipboard.SetDataObject(textBox1.SelectedText);
}
粘贴:
private void button2_Click(object sender, System.EventArgs e) {
// Declares an IDataObject to hold the data returned from the clipboard.
// Retrieves the data from the clipboard.
IDataObject iData = Clipboard.GetDataObject();
// Determines whether the data is in a format you can use.
if(iData.GetDataPresent(DataFormats.Text)) {
// Yes it is, so display it in a text box.
textBox2.Text = (String)iData.GetData(DataFormats.Text);
}
}
主要通过调用Clipborad的API完成
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
图片是文件流,文本是字符串,而剪贴板同时这能保存一种类型的对象,两者不能同时复制。
我们向word中粘贴富文本,实际上是粘贴能够被word解析的格式化的字符串,其中图片是以链接形式提供的(而非真正的图形对象或流),word能够识别这种链接并决定是否获取真正的文件对象来取代这种链接(这时使用的是嵌入的对象)。
我们向word中粘贴富文本,实际上是粘贴能够被word解析的格式化的字符串,其中图片是以链接形式提供的(而非真正的图形对象或流),word能够识别这种链接并决定是否获取真正的文件对象来取代这种链接(这时使用的是嵌入的对象)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |