使用Open XML在Powerpoint中的占位符中插入格式化的HTML字符串

时间:2016-09-27 15:49:44

标签: c# openxml office-automation openxml-table

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

现在问题是我需要显示一些HTML代码,用户使用WYSIWYG编辑器输入的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>";

任何帮助或指针将不胜感激。提前谢谢

0 个答案:

没有答案