2013-06-28 4 views
0

Я использую C# Interop, чтобы получить содержимое страницы текста формы, используя код ниже:Как сохранить форматирование TextShape формата PowerPoint слайда с использованием C#

var textRange = shape.TextFrame.TextRange; 
var text = textRange.Text; 

где текст содержит текст TextShape. Но все форматирование ушло. :(

Изменит содержимое, используя свой собственный редактор и создать PPT с помощью измененного содержания:

string strToReplace = StripTagsRegex(xmlTempNode.InnerText); 
strToReplace = strToReplace.Replace(" ", " "); 
shape.TextFrame.TextRange.Text = strToReplace;//load new text to shape 

Я получаю необходимый текст окончательного вывода (т.е. генерироваться п.п.). Все Трассы, pragraphs, форматирование исчезло. есть ли способ, чтобы сохранить это ??

Спасибо, что заглянули ... !!

ответ

1

Если вы хотите, чтобы заменить текст в форме PowerPoint и сохранить форматирование, использовать собственный метод Replace в PowerPoint .

В VBA:

With Shape.TextFrame.TextRange 
    .Replace "this text", "with this text" 
End With 
+0

: спасибо за ответ Стиву. Но я не уверен, что часть текста будет изменена пользователем. Он может добавлять новый контент или заменять/удалять старый контент. –

+0

В этом случае, если какой-то текст отформатирован иначе, чем остальные, невозможно узнать, какие биты замененного текста получают форматирование. Если все текстовое поле должно сохранять одно и то же форматирование, попробуйте использовать метод «Пикап» в форме для захвата форматирования и после изменения текста используйте «Применить», чтобы повторно применить его. Если это не сработает, вам может потребоваться сохранить все форматирование, которое вы хотите сохранить, а затем применить его после замены текста. –

+0

можно получить/установить html ppt slide, а затем использовать его в редакторе для внесения изменений. и, наконец, плохо использовать этот html для создания слайда. Возможно ли это? –

Смежные вопросы