管理 JavaScript 中的簡報背景
簡介
純色、漸層與影像常被用作投影片背景。您可以為 普通投影片(單一投影片)或 母片投影片(同時套用於多張投影片)設定背景。

為普通投影片設定純色背景
Aspose.Slides 允許您為簡報中的特定投影片設定純色背景,即使簡報使用了母片。此變更僅套用於所選投影片。
- 建立一個 Presentation 類別的實例。
- 將投影片的 BackgroundType 設為
OwnBackground。 - 將投影片背景的 FillType 設為
Solid。 - 使用 FillFormat 上的 getSolidFillColor 方法指定純色背景顏色。
- 儲存已修改的簡報。
以下 JavaScript 範例示範如何將藍色純色設定為普通投影片的背景:
// 建立 Presentation 類別的實例。
let presentation = new aspose.slides.Presentation();
try {
let slide = presentation.getSlides().get_Item(0);
// 將投影片的背景顏色設定為藍色。
slide.getBackground().setType(java.newByte(aspose.slides.BackgroundType.OwnBackground));
slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE"));
// 將簡報儲存至磁碟。
presentation.save("SolidColorBackground.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
為母片投影片設定純色背景
Aspose.Slides 允許您為簡報的母片投影片設定純色背景。母片投影片作為範本,控制所有投影片的格式,因此當您為母片背景選擇純色時,會套用至每張投影片。
- 建立一個 Presentation 類別的實例。
- 透過
getMasters取得母片投影片,將其 BackgroundType 設為OwnBackground。 - 將母片投影片背景的 FillType 設為
Solid。 - 使用 getSolidFillColor 方法指定純色背景顏色。
- 儲存已修改的簡報。
以下 JavaScript 範例示範如何將綠色純色設定為母片投影片的背景:
// 建立 Presentation 類別的實例。
let presentation = new aspose.slides.Presentation();
try {
let masterSlide = presentation.getMasters().get_Item(0);
// 將母片投影片的背景顏色設定為森林綠。
masterSlide.getBackground().setType(java.newByte(aspose.slides.BackgroundType.OwnBackground));
masterSlide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
masterSlide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GREEN"));
// 將簡報儲存至磁碟。
presentation.save("MasterSlideBackground.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
為投影片設定漸層背景
漸層是一種透過顏色逐漸變化產生的圖形效果。將漸層用作投影片背景,可使簡報更具藝術性與專業感。Aspose.Slides 允許您為投影片設定漸層顏色作為背景。
- 建立一個 Presentation 類別的實例。
- 將投影片的 BackgroundType 設為
OwnBackground。 - 將投影片背景的 FillType 設為
Gradient。 - 使用 FillFormat 上的 getGradientFormat 方法設定您想要的漸層屬性。
- 儲存已修改的簡報。
以下 JavaScript 範例示範如何將漸層顏色設定為投影片的背景:
// 建立 Presentation 類別的實例。
let presentation = new aspose.slides.Presentation();
try {
let slide = presentation.getSlides().get_Item(0);
// 將漸層效果套用到背景。
slide.getBackground().setType(java.newByte(aspose.slides.BackgroundType.OwnBackground));
slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Gradient));
slide.getBackground().getFillFormat().getGradientFormat().setTileFlip(aspose.slides.TileFlip.FlipBoth);
// 將簡報儲存至磁碟。
presentation.save("GradientBackground.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
將影像設為投影片背景
除了純色與漸層填色外,Aspose.Slides 亦支援使用影像作為投影片背景。
- 建立一個 Presentation 類別的實例。
- 將投影片的 BackgroundType 設為
OwnBackground。 - 將投影片背景的 FillType 設為
Picture。 - 載入您想用作背景的影像。
- 將影像加入簡報的 ImageCollection。
- 使用 FillFormat 上的 getPictureFillFormat 方法將影像指定為背景。
- 儲存已修改的簡報。
以下 JavaScript 範例示範如何將影像設定為投影片的背景:
// 建立 Presentation 類別的實例。
let presentation = new aspose.slides.Presentation();
try {
let slide = presentation.getSlides().get_Item(0);
// 設定背景影像屬性。
slide.getBackground().setType(java.newByte(aspose.slides.BackgroundType.OwnBackground));
slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Picture));
slide.getBackground().getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch);
// 載入影像。
let image = aspose.slides.Images.fromFile("Tulips.jpg");
// 將影像加入簡報的影像集合。
let ppImage = presentation.getImages().addImage(image);
image.dispose();
slide.getBackground().getFillFormat().getPictureFillFormat().getPicture().setImage(ppImage);
// 將簡報儲存至磁碟。
presentation.save("ImageAsBackground.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
以下程式碼範例示範如何將背景填色類型設為平鋪圖片,並修改平鋪屬性:
let presentation = new aspose.slides.Presentation();
try {
let firstSlide = presentation.getSlides().get_Item(0);
let background = firstSlide.getBackground();
background.setType(java.newByte(aspose.slides.BackgroundType.OwnBackground));
background.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Picture));
let newImage = aspose.slides.Images.fromFile("image.png");
let ppImage = presentation.getImages().addImage(newImage);
newImage.dispose();
// 設定用於背景填充的影像。
let backPictureFillFormat = background.getFillFormat().getPictureFillFormat();
backPictureFillFormat.getPicture().setImage(ppImage);
// 將圖片填充模式設為平鋪,並調整平鋪屬性。
backPictureFillFormat.setPictureFillMode(aspose.slides.PictureFillMode.Tile);
backPictureFillFormat.setTileOffsetX(15.0);
backPictureFillFormat.setTileOffsetY(15.0);
backPictureFillFormat.setTileScaleX(46.0);
backPictureFillFormat.setTileScaleY(87.0);
backPictureFillFormat.setTileAlignment(java.newByte(aspose.slides.RectangleAlignment.Center));
backPictureFillFormat.setTileFlip(aspose.slides.TileFlip.FlipY);
presentation.save("TileBackground.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
變更背景影像透明度
您可能想調整投影片背景影像的透明度,以使投影片內容更為突出。以下 JavaScript 程式碼示範如何變更投影片背景影像的透明度:
var transparencyValue = 30; // 例如。
// 取得圖片轉換操作的集合。
var imageTransform = slide.getBackground().getFillFormat().getPictureFillFormat().getPicture().getImageTransform();
// 尋找現有的固定百分比透明度效果。
var transparencyOperation = null;
for (let i = 0; i < imageTransform.size(); i++) {
let operation = imageTransform.get_Item(i);
if (java.instanceOf(operation, "com.aspose.slides.AlphaModulateFixed")) {
transparencyOperation = operation;
break;
}
}
// 設定新的透明度值。
if (transparencyOperation == null) {
imageTransform.addAlphaModulateFixedEffect(100 - transparencyValue);
} else {
transparencyOperation.setAmount(100 - transparencyValue);
}
取得投影片背景值
Aspose.Slides 提供 BackgroundEffectiveData 類別,用於取得投影片的實際背景值。此類別會公開實際的 FillFormat 與 EffectFormat。
使用 BaseSlide 類別的 getBackground 方法,即可取得投影片的實際背景。
以下 JavaScript 範例示範如何取得投影片的實際背景值:
// 建立 Presentation 類別的實例。
let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
let slide = presentation.getSlides().get_Item(0);
// 取得實際背景,考慮母片、版面配置與佈景主題。
let effBackground = slide.getBackground().getEffective();
if (effBackground.getFillFormat().getFillType() == aspose.slides.FillType.Solid)
console.log("Fill color:", effBackground.getFillFormat().getSolidFillColor().toString());
else
console.log("Fill type:", effBackground.getFillFormat().getFillType());
} finally {
presentation.dispose();
}
常見問題
是否可以重設自訂背景,並恢復佈景主題/版面配置的背景?
可以。移除投影片的自訂填色後,背景會再次從相應的 layout/master 投影片(即 theme background)繼承。
如果之後更改簡報的佈景主題,背景會發生什麼變化?