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不起作用。
您用來複制文本的代碼是什麼? – 2010-01-11 16:03:53
我不這麼認爲 - 很難相信它無法完成。 – 2010-06-28 10:49:46
我有完全相同的問題。任何解決方案呢? – 2018-03-03 14:55:34