1. 程式人生 > 程式設計 >Java 建立並應用PPT幻燈片母版的方法示例

Java 建立並應用PPT幻燈片母版的方法示例

前言

在PowerPoint文件中,幻燈片母版可供使用者設定幻燈片的樣式,比如標題文字、背景、屬性等。預先設定好的幻燈片母版可用於所有幻燈片,此外,也可建立多個幻燈片母版分別應用到幻燈片中。本文將介紹如何建立並應用單個或多個幻燈片母版。

環境構建

文中演示程式碼用到的工具是Free Spire.Presentation for Java,可通過官網下載獲取。解壓後將位於lib資料夾下的Spire.Presentation.jar匯入Java程式。此外,還可通過maven倉庫安裝匯入。

Java程式碼示例

示例1 建立唯一母版,並應用於所有幻燈片

import com.spire.presentation.*;
import com.spire.presentation.drawing.BackgroundType;
import com.spire.presentation.drawing.FillFormatType;
import com.spire.presentation.drawing.IImageData;
import com.spire.presentation.drawing.PictureFillType;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;

public class UniqueSlideMaster {
  public static void main(String[] args) throws Exception {

    //建立PPT文件,指定幻燈片大小
    Presentation presentation = new Presentation();
    presentation.getSlideSize().setType(SlideSizeType.SCREEN_16_X_9);

    //獲取第一張母版
    IMasterSlide masterSlide = presentation.getMasters().get(0);

    //獲取圖片地址
    String backgroundPic = "C:\\Users\\Test1\\Desktop\\Background.jpg";
    String logo = "C:\\Users\\Test1\\Desktop\\logo2.png";

    //設定母版背景
    BufferedImage image = ImageIO.read(new FileInputStream(backgroundPic));
    IImageData imageData = presentation.getImages().append(image);
    masterSlide.getSlideBackground().setType(BackgroundType.CUSTOM);
    masterSlide.getSlideBackground().getFill().setFillType(FillFormatType.PICTURE);
    masterSlide.getSlideBackground().getFill().getPictureFill().setFillType(PictureFillType.STRETCH);
    masterSlide.getSlideBackground().getFill().getPictureFill().getPicture().setEmbedImage(imageData);

    //新增圖片(公司Logo)到母版
    image = ImageIO.read(new FileInputStream(logo));
    imageData = presentation.getImages().append(image);
    IEmbedImage imageShape = masterSlide.getShapes().appendEmbedImage(ShapeType.RECTANGLE,imageData,new Rectangle2D.Float(40,40,200,100));
    imageShape.getLine().setFillType(FillFormatType.NONE);

    //新增文字(公司名稱)到母版
    IAutoShape textShape = masterSlide.getShapes().appendShape(ShapeType.RECTANGLE,new Rectangle2D.Float((float) presentation.getSlideSize().getSize().getWidth()-200,(float) presentation.getSlideSize().getSize().getHeight()-60,30));//Shapes.AppendShape(ShapeType.Rectangle,new RectangleF(ppt.SlideSize.Size.Width-200,ppt.SlideSize.Size.Height-60,30));
    textShape.getTextFrame().setText("鷹翔傳媒有限公司");
    textShape.getTextFrame().getTextRange().setFontHeight(15f);
    textShape.getTextFrame().getTextRange().getFill().setFillType(FillFormatType.SOLID);
    textShape.getTextFrame().getTextRange().getFill().getSolidColor().setColor(Color.blue);
    textShape.getTextFrame().getTextRange().getParagraph().setAlignment(TextAlignmentType.CENTER);
    textShape.getFill().setFillType(FillFormatType.NONE);
    textShape.getLine().setFillType(FillFormatType.NONE);

    //新增一張幻燈片
    presentation.getSlides().append();

    //儲存文件
    presentation.saveToFile("output/SlideMaster.pptx",FileFormat.PPTX_2013);
    presentation.dispose();
  }
}

建立效果:

Java 建立並應用PPT幻燈片母版的方法示例

示例2 建立多個母版並分別應用到幻燈片

import com.spire.presentation.*;
import com.spire.presentation.drawing.BackgroundType;
import com.spire.presentation.drawing.FillFormatType;
import com.spire.presentation.drawing.IImageData;
import com.spire.presentation.drawing.PictureFillType;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
public class MultiSlideMasters {
  public static void main(String[] args)throws Exception {
    //新建PPT文件
    Presentation presentation = new Presentation();
    presentation.getSlideSize().setType(SlideSizeType.SCREEN_16_X_9);

    //插入4頁幻燈片(連同預設的幻燈片,文件中共5頁)
    for (int i = 0; i < 4; i++)
    {
      presentation.getSlides().append();
    }

    //獲取預設的母版
    IMasterSlide first_master = presentation.getMasters().get(0);

    //建立並獲取第二個母板
    presentation.getMasters().appendSlide(first_master);
    IMasterSlide second_master = presentation.getMasters().get(1);

    //為兩個母版分別設定不同的背景圖片
    String pic1 = "C:\\Users\\Test1\\Desktop\\Image1.jpg";
    String pic2 = "C:\\Users\\Test1\\Desktop\\Image2.jpg";
    BufferedImage image = ImageIO.read(new FileInputStream(pic1));
    IImageData imageData = presentation.getImages().append(image);
    first_master.getSlideBackground().setType(BackgroundType.CUSTOM);
    first_master.getSlideBackground().getFill().setFillType(FillFormatType.PICTURE);
    first_master.getSlideBackground().getFill().getPictureFill().setFillType(PictureFillType.STRETCH);
    first_master.getSlideBackground().getFill().getPictureFill().getPicture().setEmbedImage(imageData);
    image = ImageIO.read(new FileInputStream(pic2));
    imageData = presentation.getImages().append(image);
    second_master.getSlideBackground().setType(BackgroundType.CUSTOM);
    second_master.getSlideBackground().getFill().setFillType(FillFormatType.PICTURE);
    second_master.getSlideBackground().getFill().getPictureFill().setFillType(PictureFillType.STRETCH);
    second_master.getSlideBackground().getFill().getPictureFill().getPicture().setEmbedImage(imageData);

    //在第一頁應用第一個母版及版式(板式6為空板式)
    presentation.getSlides().get(0).setLayout(first_master.getLayouts().get(6));

    //在剩下的幻燈片應用第二個母版及版式
    for (int i = 1; i < presentation.getSlides().getCount(); i++)
    {
      presentation.getSlides().get(i).setLayout(second_master.getLayouts().get(6));
    }

    //儲存文件
    presentation.saveToFile("output/MultiSlideMaters.pptx",FileFormat.PPTX_2013);
    presentation.dispose();
  }
}

建立效果:

Java 建立並應用PPT幻燈片母版的方法示例

到此這篇關於Java 建立並應用PPT幻燈片母版的方法示例的文章就介紹到這了,更多相關Java 建立PPT幻燈片母版內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!