管理占位符

更改占位符中的文本

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

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

以下是如何使用 Aspose.Slides 替换该演示文稿中占位符文本的方法:

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

以下 Java 代码演示如何更改占位符中的文本:

// 实例化一个 Presentation 类
Presentation pres = new Presentation("ReplacingText.pptx");
try {

    // 访问第一张幻灯片
    ISlide sld = pres.getSlides().get_Item(0);

    // 遍历形状以查找占位符
    for (IShape shp : sld.getShapes()) 
    {
        if (shp.getPlaceholder() != null) {
            // 更改每个占位符中的文本
            ((IAutoShape) shp).getTextFrame().setText("这是占位符");
        }
    }

    // 将演示文稿保存到磁盘
    pres.save("output_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

在占位符中设置提示文本

标准和预构建布局包含提示文本,例如 点击添加标题点击添加副标题。使用 Aspose.Slides,您可以在占位符布局中插入您所需的提示文本。

以下 Java 代码演示如何在占位符中设置提示文本:

Presentation pres = new Presentation("Presentation.pptx");
try {
    ISlide slide = pres.getSlides().get_Item(0);
    for (IShape shape : slide.getSlide().getShapes()) // 遍历幻灯片
    {
        if (shape.getPlaceholder() != null && shape instanceof AutoShape)
        {
            String text = "";
            if (shape.getPlaceholder().getType() == PlaceholderType.CenteredTitle) // PowerPoint 显示 "点击添加标题" 
            {
                text = "添加标题";
            }
            else if (shape.getPlaceholder().getType() == PlaceholderType.Subtitle) // 添加副标题
            {
                text = "添加副标题";
            }

            ((IAutoShape)shape).getTextFrame().setText(text);
            System.out.println("带有文本的占位符: " + text);
        }
    }

    pres.save("Placeholders_PromptText.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

设置占位符图像透明度

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

以下 Java 代码演示如何为图像背景设置透明度(在形状内):

Presentation presentation = new Presentation("example.pptx");

IAutoShape shape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);

IImageTransformOperationCollection operationCollection = shape.getFillFormat().getPictureFillFormat().getPicture().getImageTransform();
for (int i = 0; i < operationCollection.size(); i++)
{
    if(operationCollection.get_Item(i) instanceof AlphaModulateFixed)
    {
        AlphaModulateFixed alphaModulate = (AlphaModulateFixed)operationCollection.get_Item(i);
        float currentValue = 100 - alphaModulate.getAmount();
        System.out.println("当前透明度值: " + currentValue);

        int alphaValue = 40;
        alphaModulate.setAmount(100 - alphaValue);
    }
}

presentation.save("example_out.pptx", SaveFormat.Pptx);