1

我正在使用打开的 XML 创建一张幻灯片 PowerPoint 文件。我在 PPT 中标记了我需要以编程方式更新的占位符。我能够找到占位符并可以从数据库中更新其值。

现在的问题是我需要显示一些用户使用所见即所得编辑器输入的 HTML 代码,格式与用户输入的格式相同,例如在项目符号中。

当我尝试用 HTML 文本替换占位符时,HTML 文本像所有标签等一样被粘贴。

    var presPart = myPres.PresentationPart;
        var slideIdList = presPart.Presentation.SlideIdList;

        var list = slideIdList.ChildElements
                    .Cast<SlideId>()
                    .Select(x => presPart.GetPartById(x.RelationshipId))
                    .Cast<SlidePart>();


        var tableSlidePart = (SlidePart)list.First();
        var secondSlidePart = (SlidePart)list.Last();
        var current = tableSlidePart;

当我需要粘贴简单的平面文本时,下面的行工作正常

        List<DocumentFormat.OpenXml.Drawing.Text> textList = tableSlidePart.Slide.Descendants<DocumentFormat.OpenXml.Drawing.Text>().Where(t => t.Text.Equals("IntroText")).ToList();
        foreach (DocumentFormat.OpenXml.Drawing.Text text in textList)
        {
            text.Text = "Some Text";
        }

但是当我想将 HTML 粘贴到占位符中时,它被视为普通的纯字符串。

     textList = null;
        textList = tableSlidePart.Slide.Descendants<DocumentFormat.OpenXml.Drawing.Text>().Where(t => t.Text.Equals("##DESCRIPTION##")).ToList();
        foreach (DocumentFormat.OpenXml.Drawing.Text text in textList)
            text.Text = "<html><table><tr><td><b>Hello</b></td></tr></table></html>";

任何帮助或指针将不胜感激。先感谢您

4

0 回答 0