主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

clone

类: mlreportgen.ppt.Paragraph
命名空间: mlreportgen.ppt

复制 PPT API 段 落

自 R2021b 起

语法

objCopy = clone(obj)

说明

objCopy = clone(obj) 返回 obj 指定的 mlreportgen.ppt.Paragraph 对象的副本。副本包含源段落的子级,但不包括父级。

输入参数

全部展开

要克隆的段落对象,指定为 mlreportgen.ppt.Paragraph 对象。

输出参量

全部展开

段落对象副本,作为 mlreportgen.ppt.Paragraph 对象返回。

示例

全部展开

在此示例中,您可以通过复制第一张幻灯片中使用的段落并将副本追加到第二张幻灯片来在两张幻灯片中使用相同的段落内容。

导入 PPT API 命名空间,这样您就不必使用长而完全限定的类名。

import mlreportgen.ppt.*;

创建并打开演示文稿。向演示文稿中添加幻灯片。

ppt = Presentation("myPresentation.pptx");
open(ppt);
slide1 = add(ppt,"Title and Content");

创建一个 Paragraph 对象并将 BoldItalic 属性设置为 true。将 slide1 的内容替换为 Paragraph 对象。

p = Paragraph("My slide content");
p.Bold = true;
p.Italic = true;
replace(slide1,"Content",p);

在演示文稿中添加第二张幻灯片。

slide2 = add(ppt,"Title and Content");

复制添加到 Paragraphslide1 对象。副本的属性值与源 Paragraph 对象具有相同的值。

pcopy = clone(p)
pcopy = 
  Paragraph with properties:

                 Bold: 1
                 Font: []
    ComplexScriptFont: []
            FontColor: []
             FontSize: []
               Italic: 1
               Strike: []
            Subscript: []
          Superscript: []
            Underline: []
               HAlign: []
                Level: []
                Style: {[1×1 mlreportgen.ppt.Bold]  [1×1 mlreportgen.ppt.Italic]}
             Children: [1×1 mlreportgen.ppt.Text]
               Parent: []
                  Tag: 'ppt.Paragraph:15'
                   Id: '15'

将追加内容追加到 Paragraph 对象的副本。

append(pcopy," for the second slide");

用副本替换第二张幻灯片的内容。

replace(slide2,"Content",pcopy);

关闭并查看演示文稿。

close(ppt);
rptview(ppt);

此示例显示了段落的格式与段落副本之间的关系。

当您在 mlreportgen.ppt.Paragraph 对象中设置格式属性时,PPT API 会将相应的格式对象添加到 Style 对象的 Paragraph 属性。当您克隆 Paragraph 对象时,其副本具有相同的格式属性值,并包含与源 Paragraph 对象相同的格式对象。如果更改共享格式对象中的格式设置,则源 Paragraph 对象和副本都会反映该更改。如果您更改源 Paragraph 对象或副本的格式属性,PPT API 会将新的格式对象添加到您更改的对象的 Style 属性中。由于源 Paragraph 对象和副本不再共享相同的格式对象,因此对其中一个 Paragraph 对象中的格式属性的更改不会影响另一个对象。

创建一个 mlreportgen.ppt.Paragraph 对象,并将 BoldItalic 属性设置为 true

import mlreportgen.ppt.*;
p = Paragraph("My slide content");
p.Bold = true;
p.Italic = true;

PPT API 将 Style 对象的 Paragraph 属性设置为一个元胞数组,该元胞数组包含一个 mlreportgen.ppt.Bold 对象(其中 Value 设置为 true)和一个 mlreportgen.ppt.Italic 对象(其中 Value 设置为 true)。

p.Style
ans=1×2 cell array
    {1×1 mlreportgen.ppt.Bold}    {1×1 mlreportgen.ppt.Italic}

克隆 Paragraph 对象。BoldItalicand Style 属性值与源 Paragraph 对象的属性值相同。

pClone = clone(p);
pClone.Bold
ans = logical
   1

pClone.Italic
ans = logical
   1

pClone.Style
ans=1×2 cell array
    {1×1 mlreportgen.ppt.Bold}    {1×1 mlreportgen.ppt.Italic}

在源 Style 对象的 Paragraph 属性中,将 Value 对象的 Italic 属性设置为 false。此更改会影响 Paragraph 对象的副本,因为其 Style 属性包含与源 Italic 对象相同的 Paragraph 对象。PPT API 将 Italic 副本的 Paragraph 属性值设置为 false,以使其与 Italic 属性中包含的 Style 对象的值相匹配。

p.Style{2}.Value = false;
pClone.Italic
ans = logical
   0

Paragraph 对象的副本中,将 Bold 属性设置为 false。此更改不会影响源 Paragraph 对象。在源 Paragraph 对象中,Bold 属性仍然是 true

pClone.Bold = false;
p.Bold
ans = logical
   1

提示

  • 使用 clone 方法在演示文稿中多次包含相同的段落内容。

  • 当您克隆一个段落时,PPT API 会复制源段落的所有子对象,但不会复制该段落的父对象。

  • 段落副本包括您在源段落中设置的格式。段落副本的格式使用与源段落相同的格式对象。如果更改共享格式对象中的格式设置,则源和副本都会反映该更改。

    如果您更改段落副本中的格式设置,PPT API 将使用新的格式设置为该副本创建一个新的格式对象。对于该格式,源段落和副本不再共享相同的格式对象。

版本历史记录

在 R2021b 中推出