替换 PowerPoint 中的某些文本

发布于 2024-11-25 21:07:15 字数 475 浏览 3 评论 0原文

我使用 Microsoft.Office.Interop.PowerPoint 替换 *.pptx 演示文稿中每张幻灯片上的某些特定标记。

问题是令牌所在的文本框具有以不同方式格式化的行(例如具有不同字体大小的行)。

进行替换

我实际上尝试通过shape.TextFrame.TextRange.Text = strStartText + replacementString + strEndText;

shape.TextFrame.TextRange.Text = 
    shape.TextFrame.TextRange.Text.Replace(oldString, replacementString);

但它统一了,从而破坏了我的文本框的所有格式。 所有的线条和文字现在都具有相同的大小/颜色等。

有什么解决方案吗?

I use Microsoft.Office.Interop.PowerPoint to replace some specific token at each slide from a *.pptx presentation.

The problem is that the text box in which the token resides has lines which are formatted in different ways (e.g. lines with different font size).

I actually tried doing the replacement by both

shape.TextFrame.TextRange.Text = strStartText + replacementString + strEndText;

and

shape.TextFrame.TextRange.Text = 
    shape.TextFrame.TextRange.Text.Replace(oldString, replacementString);

But it unifies and thus spoils all the formatting of my textbox.
All the lines and words are now having the same size/colour etc.

Is there any solution to this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

若有似无的小暗淡 2024-12-02 21:07:15

PowerPoint 的 .TextRange 对象有一个 .Replace 方法,其工作方式与 VB/VBA 的 Replace 命令类似,但它保留格式。

例如,假设您在变量 oSh 中引用了形状:

With oSh
    With .TextFrame.TextRange
        .Replace findwhat:=oldString, replacewhat:= replacementString
    End With
End With

PowerPoint's .TextRange objects have a .Replace method that works similarly to VB/VBA's Replace command, but it preserves formatting.

Example, assuming you have a reference to the shape in the variable oSh:

With oSh
    With .TextFrame.TextRange
        .Replace findwhat:=oldString, replacewhat:= replacementString
    End With
End With
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文