从ClipBoard粘贴复杂的Word对象

时间:2016-12-13 17:30:13

标签: c# ms-word clipboard

我正在尝试基于https://github.com/mjvh80/SymWin项目创建一个快速Word数学方程式粘贴的工具。

我能用简单的数学字符来做,比如箭头,操作希腊字母等......

但是我遇到了一个复杂的单词对象的问题:

当我从Word复制复杂对象时 - 例如数学方程式。我可以将它粘贴在我想要的任何地方的单词页面中。但是,如果我将其粘贴到记事本中并复制粘贴的文本并将其粘贴回单词 - 单词将不会识别首先复制的对象(导致某些数据丢失)。

我已经看到,当我从单词复制一个简单的矩阵时,我有大约25000字节(并且它是html格式)。当我粘贴在记事本和副本中时,我有92字节......

当我用单个矩阵打开word文件时,我可以看到它的html编码,但我无法将其粘贴回来(它粘贴为文本,而不是作为对象)。 看起来像:

<m:oMathPara><m:oMath><m:d><m:dPr><m:begChr m:val="["/><m:endChr m:val="]"/><m:ctrlPr><w:rPr><w:rFonts w:ascii="Cambria Math" w:hAnsi="Cambria Math"/></w:rPr></m:ctrlPr></m:dPr><m:e><m:m><m:mPr><m:mcs><m:mc><m:mcPr><m:count m:val="2"/><m:mcJc m:val="center"/></m:mcPr></m:mc></m:mcs><m:ctrlPr><w:rPr><w:rFonts w:ascii="Cambria Math" w:hAnsi="Cambria Math"/></w:rPr></m:ctrlPr></m:mPr><m:mr><m:e><m:r><w:rPr><w:rFonts w:ascii="Cambria Math" w:hAnsi="Cambria Math"/></w:rPr><m:t>a11</m:t></m:r></m:e><m:e><m:r><w:rPr><w:rFonts w:ascii="Cambria Math" w:hAnsi="Cambria Math"/></w:rPr><m:t>a12</m:t></m:r></m:e></m:mr><m:mr><m:e><m:r><w:rPr><w:rFonts w:ascii="Cambria Math" w:hAnsi="Cambria Math"/></w:rPr><m:t>a22</m:t></m:r></m:e><m:e><m:r><w:rPr><w:rFonts w:ascii="Cambria Math" w:hAnsi="Cambria Math"/></w:rPr><m:t>a23</m:t></m:r></m:e></m:mr></m:m></m:e></m:d></m:oMath></m:oMathPara>

另一个问题是我无法改变word文档结构,因为它是由Word进程打开的(我想粘贴到打开的页面中)。

我想知道它是否可行......

0 个答案:

没有答案