Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用c保存powerpoint幻灯片的textshape格式的格式#_C#_Interop_Powerpoint_Office Interop - Fatal编程技术网

C# 如何使用c保存powerpoint幻灯片的textshape格式的格式#

C# 如何使用c保存powerpoint幻灯片的textshape格式的格式#,c#,interop,powerpoint,office-interop,C#,Interop,Powerpoint,Office Interop,我使用c#interop获得形状文本的页面内容,代码如下: var textRange = shape.TextFrame.TextRange; var text = textRange.Text; 其中文本包含textshape的文本。但所有的格式都消失了( 我们使用自己的编辑器修改内容,并使用更改的内容创建ppt: string strToReplace = StripTagsRegex(xmlTempNode.InnerText); strToReplace = strToReplace

我使用c#interop获得形状文本的页面内容,代码如下:

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
我在最终输出中获得了所需的文本(即生成的ppt)。但是所有对齐、杂注、格式都消失了。有没有办法保留它


感谢您访问…!!

如果要替换PowerPoint形状中的文本并保留格式,请使用PowerPoint自己的替换方法

在VBA中:

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

:感谢回复steve。但我不确定用户是否修改了文本的哪一部分。他可能会添加新内容或替换/删除旧内容。在这种情况下,如果部分文本的格式与其他文本不同,则无法知道被替换文本的哪些位获得了什么格式。如果整个文本框保留相同的格式ting,尝试使用形状上的拾取方法获取格式,在文本更改后,使用“应用”重新应用。如果不起作用,您可能需要存储所有要保留的格式,然后在替换文本后应用。是否可以获取/设置ppt幻灯片的html,然后在编辑器中使用它进行更改s、 最后,我将使用html创建幻灯片。是否可能?PPTX文件实际上是包含XML和其他组件的ZIP文件。理论上,您可以为正在编辑的幻灯片提取XML,修改它并将其放回文件中。我怀疑您在文件本身打开时是否可以这样做,但也许您不需要这样做。你仍然会面临同样的问题。如果你开始使用的一些文本是粗体的,而其中一些是其他文本的另一种字体,并且你用新文本替换它,你如何知道哪些位是粗体的/哪些位是哪种字体,等等?同样,这取决于你需要做什么,以及你需要保留的格式有多复杂。如果E保留文本的整体格式就足够了(即,可能会丢失文本中单个单词/字母的任何格式更改),这样就相当简单了。您可以通过迭代文本的.Runs集合来获取文本任何给定部分的格式。每个.Run(x)表示格式的更改。