在 .NET 中管理演示文稿占位符

更改占位符中的文本

使用 Aspose.Slides for .NET,您可以在演示文稿的幻灯片中查找并修改占位符。Aspose.Slides 允许您更改占位符中的文本。

先决条件:您需要一个包含占位符的演示文稿。您可以使用标准的 Microsoft PowerPoint 应用程序创建此类演示文稿。

以下示例展示了如何使用 Aspose.Slides 替换该演示文稿中占位符的文本:

  1. 实例化 Presentation 类并将演示文稿作为参数传入。
  2. 通过索引获取幻灯片引用。
  3. 遍历形状以查找占位符。
  4. 将占位符形状强制转换为 AutoShape 并使用与该 AutoShape 关联的 TextFrame 更改文本。
  5. 保存修改后的演示文稿。

下面的 C# 代码演示了如何更改占位符中的文本:

// 实例化 Presentation 类
using (Presentation pres = new Presentation("ReplacingText.pptx"))
{

    // 访问第一张幻灯片
    ISlide sld = pres.Slides[0];

    // 遍历形状以查找占位符
    foreach (IShape shp in sld.Shapes)
        if (shp.Placeholder != null)
        {
            // 更改每个占位符中的文本
            ((IAutoShape)shp).TextFrame.Text = "This is a Placeholder";
        }

    // 将演示文稿保存到磁盘
    pres.Save("output_out.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}

在占位符中设置提示文本

标准和预构建的布局包含占位符提示文本,例如 Click to add a titleClick to add a subtitle。使用 Aspose.Slides,您可以在占位符布局中插入您喜欢的提示文本。

下面的 C# 代码展示了如何在占位符中设置提示文本:

using (Presentation pres = new Presentation("Presentation2.pptx"))
{
    ISlide slide = pres.Slides[0];
    foreach (IShape shape in slide.Slide.Shapes) // 遍历幻灯片
    {
        if (shape.Placeholder != null && shape is AutoShape)
        {
            string text = "";
            if (shape.Placeholder.Type == PlaceholderType.CenteredTitle) // PowerPoint 显示 "Click to add title"
            {
                text = "Add Title";
            }
            else if (shape.Placeholder.Type == PlaceholderType.Subtitle) // 添加副标题
            {
                text = "Add Subtitle";
            }

            ((IAutoShape)shape).TextFrame.Text = text;

            Console.WriteLine($"Placeholder with text: {text}");
        }
    }

    pres.Save("Placeholders_PromptText.pptx", SaveFormat.Pptx);
}

设置占位符图像透明度

Aspose.Slides 允许您设置文本占位符中背景图像的透明度。通过调整该框架中图片的透明度,您可以使文本或图像更加突出(取决于文本和图片的颜色)。

下面的 C# 代码展示了如何为形状内的图片背景设置透明度:

using (var presentation = new Presentation())
{
    IAutoShape autoShape = presentation.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 10, 10, 100, 100);
    
    autoShape.FillFormat.FillType = FillType.Picture;
    autoShape.FillFormat.PictureFillFormat.Picture.Image = presentation.Images.AddImage(File.ReadAllBytes("image.png"));
    autoShape.FillFormat.PictureFillFormat.PictureFillMode = PictureFillMode.Stretch;
    autoShape.FillFormat.PictureFillFormat.Picture.ImageTransform.AddAlphaModulateFixedEffect(75);
}

FAQ

什么是基础占位符,它与幻灯片上的本地形状有何不同?
基础占位符是布局或母版上原始的形状,幻灯片的形状会从其继承类型、位置以及部分格式。本地形状是独立的;如果不存在基础占位符,则不会进行继承。

如何在不遍历每张幻灯片的情况下更新整个演示文稿中的所有标题或字幕?
在布局或母版上编辑相应的占位符。基于这些布局/母版的幻灯片会自动继承此更改。

如何控制标准的页眉/页脚占位符——日期与时间、幻灯片编号以及页脚文本?
在相应的范围(普通幻灯片、布局、母版、备注/讲义)使用 HeaderFooter 管理器来启用或禁用这些占位符并设置其内容。