管理占位符
Contents
[
Hide
]
更改占位符中的文本
使用 Aspose.Slides for Android via Java,您可以在演示文稿的幻灯片上查找和修改占位符。Aspose.Slides 允许您更改占位符中的文本。
先决条件:您需要一个包含占位符的演示文稿。您可以在标准的 Microsoft PowerPoint 应用程序中创建这样的演示文稿。
以下是如何使用 Aspose.Slides 替换该演示文稿中占位符文本的方法:
- 实例化
Presentation
类,并将演示文稿作为参数传递。 - 通过索引获取幻灯片引用。
- 遍历形状以查找占位符。
- 将占位符形状强制转换为
AutoShape
,并使用与AutoShape
关联的TextFrame
更改文本。 - 保存修改后的演示文稿。
以下 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);