首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从剪贴板获取Word ML

从剪贴板获取Word ML
EN

Stack Overflow用户
提问于 2013-07-01 22:27:01
回答 1查看 645关注 0票数 3

我拦截了一个richtextbox的paste事件,以便在粘贴之前处理内容。如果它包含表或图像等。我需要做一些自定义的东西。如果复制的选择来自Word 2010并且由混合内容组成(例如,文本和表格/图像) Word以多种格式将内容放置在剪贴板上。其中包括超文本标记语言和实时文本格式,但我更喜欢使用WordML。我使用ClipSpy检查了剪贴板上实际放置了哪些格式和数据,而“嵌入源”格式似乎就是包含WordML的格式。我认为这可以作为一个包打开:

代码语言:javascript
复制
var stream = Clipboard.GetData("Embed Source") as MemoryStream;
var package = Package.Open(stream);

它抛出了一个EndOfStreamException,我想它可能是被其他东西包裹起来的。我可以将流写入磁盘,并使用7-zip打开它,然后查看内容是否符合预期。所以基本上有两个问题:“嵌入源”是获得WordML的正确DataObject吗?如果是,我该如何反序列化它呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-03 00:10:51

将流保存到磁盘并与适当的docx进行二进制比较后,我发现它实际上包装在一个复合文档文件中:http://www.openoffice.org/sc/compdocfileformat.pdf。我用谷歌搜索了前几个字节

代码语言:javascript
复制
D0 CF 11 E0 A1 B1 1A E1

它是CDF格式的标识符。

可以使用OpenMCDF从复合文件中提取包。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17406873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档