2010-01-11 51 views
2

我需要將文本從一個PowerPoint演示文稿複製到另一個PowerPoint演示文稿。不過,我在複製特殊符號時遇到問題,例如在目標演示文稿中顯示爲空框的表情符號。看着原來介紹的Open XML文件,我可以看到,包含笑臉的Run具有「SymbolFont」屬性:將特殊符號從一個PowerPoint演示文稿複製到另一個

<a:sym typeface="Wingdings" />

然而,在VBA,Shape.TextFrame2.TextRange2.Font =那Run的字體 - 節目Arial字體。

如何使用VBA或C#(不是XML)確定文本Run的SymbolFont? 然後,我可以在目標演示文稿中指定該SymbolFont。

也許還有其他方法來複制不涉及XML的文本?

請注意,這個問題不僅發生在笑臉;其他特殊字符可能會顯示不同的SymbolFonts,如:

<a:symTypeface = "Symbol", PitchFamily = 18, CharacterSet = 2> 

代碼示例:

getRuns(TextRange2 paragraph) 
{ 
    foreach(TextRange2 run in paragraph.get_Runs(-1,-1)) 
    _myRuns.Add(new MyRun {_text=run.Text, _font=run.Font}); 
} 

copyRunsToParagraph(TextRange2 paragraph) 
{ 
    foreach(MyRun run in _myRuns) 
     paragraph=paragraph.InsertAfter(run._text); 
} 

注:Run.Font似乎只返回西文字體,而不是符號字體,如Arial字體而不是宋體。正如我寫的,不同的符號可能有不同的SymbolFonts,所以永遠使用Wingdings不起作用。

+0

您用來複制文本的代碼是什麼? – 2010-01-11 16:03:53

+0

我不這麼認爲 - 很難相信它無法完成。 – 2010-06-28 10:49:46

+0

我有完全相同的問題。任何解決方案呢? – 2018-03-03 14:55:34

回答

0

這不能在VBA中完成。

相關問題