`

Java 创建并应用PPT幻灯片母版

阅读更多

幻灯片母版,可在幻灯片中预先存储设计模板信息,包括字形、占位符大小或位置、背景设计和配色方案等;对设定好的母版可应用于所有幻灯片,也可设计多个不同母版应用于不同幻灯片。下面通过Java代码示例介绍如何创建单一母版以及不同母版。

 

使用工具:Free Spire.Office for Java(免费版)

Jar获取及导入:官网下载jar包,并解压将lib文件夹下的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 CreateMasterSlide {
    public static void main(String[] args) throws Exception {
        //创建PPT文档,并设置幻灯片大小
        Presentation ppt = new Presentation();
        ppt.getSlideSize().setType(SlideSizeType.SCREEN_16_X_9);


        //获取第一张母版
        IMasterSlide masterSlide = ppt.getMasters().get(0);

        //设置母版背景
        BufferedImage image = ImageIO.read(new FileInputStream("tp.png"));
        IImageData imageData = ppt.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);

        //添加图片到母版
        image = ImageIO.read(new FileInputStream("logo.png"));
        imageData = ppt.getImages().append(image);
        IEmbedImage imageShape = masterSlide.getShapes().appendEmbedImage(ShapeType.RECTANGLE,imageData,new Rectangle2D.Float((float) ppt.getSlideSize().getSize().getWidth()-240,40,60,60));
        imageShape.getLine().setFillType(FillFormatType.NONE);

        //添加文字到母版
        IAutoShape textShape = masterSlide.getShapes().appendShape(ShapeType.RECTANGLE, new Rectangle2D.Float((float) ppt.getSlideSize().getSize().getWidth()-230,85,200,30));
        textShape.getTextFrame().setText("文娱传媒");
        textShape.getTextFrame().getTextRange().setFontHeight(20f);
        textShape.getTextFrame().getTextRange().getFill().setFillType(FillFormatType.SOLID);
        textShape.getTextFrame().getTextRange().getFill().getSolidColor().setColor(Color.black);
        textShape.getTextFrame().getTextRange().getParagraph().setAlignment(TextAlignmentType.CENTER);
        textShape.getFill().setFillType(FillFormatType.NONE);
        textShape.getLine().setFillType(FillFormatType.NONE);

        //添加一张幻灯片(创建PPT文档时,已默认生成一张幻灯片,这里添加一张幻灯片可对比查看母版添加效果)
        ppt.getSlides().append();

        //保存文档
        ppt.saveToFile("CreateSlideMaster.pptx", FileFormat.PPTX_2013);
        ppt.dispose();
    }
} 

 

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.*;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;

public class CreateMasterSlide2 {
    public static void main(String[] args) throws Exception{
        //创建PPT文档,并设置幻灯片大小
        Presentation ppt = new Presentation();
        ppt.getSlideSize().setType(SlideSizeType.SCREEN_16_X_9);

        //插入4页幻灯片(连同默认的幻灯片,文档中共5页)
        for (int i = 0; i < 4; i++)
        {
            ppt.getSlides().append();
        }

        //获取默认的母版
        IMasterSlide first_master = ppt.getMasters().get(0);

        //创建并获取第二个母板
        ppt.getMasters().appendSlide(first_master);
        IMasterSlide second_master = ppt.getMasters().get(1);

        //为两个母版分别设置不同的背景图片
        BufferedImage image = ImageIO.read(new FileInputStream("pic1.png"));
        IImageData imageData = ppt.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);
        IAutoShape textShape = first_master.getShapes().appendShape(ShapeType.RECTANGLE, new Rectangle2D.Float((float) ppt.getSlideSize().getSize().getWidth()/3,180,200,30));
        textShape.getTextFrame().setText("首页母版");
        textShape.getTextFrame().getTextRange().setFontHeight(40f);
        textShape.getTextFrame().getTextRange().getFill().setFillType(FillFormatType.SOLID);
        textShape.getTextFrame().getTextRange().getFill().getSolidColor().setColor(Color.red);
        textShape.getTextFrame().getTextRange().getParagraph().setAlignment(TextAlignmentType.CENTER);
        textShape.getFill().setFillType(FillFormatType.NONE);
        textShape.getLine().setFillType(FillFormatType.NONE);

        image = ImageIO.read(new FileInputStream("pic2.png"));
        imageData = ppt.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为空板式)
        ppt.getSlides().get(0).setLayout(first_master.getLayouts().get(6));

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

        //保存文档
        ppt.saveToFile("MultiSlideMaters.pptx", FileFormat.PPTX_2013);
        ppt.dispose();
    }
}

 

0
4
分享到:
评论

相关推荐

    Java 创建并应用PPT幻灯片母版的方法示例

    Java 创建并应用 PPT 幻灯片母版的方法示例 幻灯片母版是 PowerPoint 文档中的一种重要组成部分,它允许用户设置幻灯片的样式,例如标题文字、背景、属性等。本文将介绍如何用 Java 创建并应用单个或多个幻灯片母版...

    利用java poi操作ppt

    3. **创建幻灯片并插入文本** 创建新幻灯片使用`createSlide()`方法,然后通过`XSLFSlide`对象的`createTextShape()`方法插入文本。例如: ```java XSLFSlide slide = ppt.createSlide(); XSLFTextShape ...

    快乐圣诞ppt模板.ppt

    6. **Aspose.Slides for Java**:文件中提到了Aspose.Slides for Java,这是一个强大的API,允许开发者在Java应用程序中创建、编辑和转换PPT文件,而无需依赖Microsoft PowerPoint。这个工具对于自动化处理PPT文件...

    葵花蝴蝶自然PPT模板.ppt

    选择“幻灯片母版”或“备注母版”,在这些模板上更改LOGO,更改将自动应用于所有幻灯片。这确保了品牌形象在每个页面上的连贯性。 3. **图像版权注意事项**: 模板中的一些图像可能已经获得了特定用途的许可,如...

    快乐圣诞ppt模板 (2).ppt

    要添加或修改LOGO,首先需进入【视图】-&gt;【母版】-&gt;【幻灯片母版】,在这里你可以找到放置LOGO的位置,删除原有LOGO或替换为你自己的。 3. **字体格式设置**:标题和文本的清晰度及可读性对PPT至关重要。同样在...

    Aspose.Slides-for-Java

    这个库允许开发者在Java应用程序中创建、读取、修改和转换PPT、PPTX、PPS、PPSX等多种幻灯片格式,而无需依赖Microsoft Office。下面我们将详细探讨Aspose.Slides for Java的相关知识点。 1. **文件操作与格式支持*...

    蓝色-节日模板PPT模板.ppt

    - 要在PPT中加入公司或个人的Logo,你需要转到【视图】菜单,然后选择【母版】,接着进入【幻灯片母版】。在这个模式下,你可以直接选择现有的Logo图片进行删除或替换,确保Logo的位置和大小符合你的需求,同时保持...

    快乐感恩节ppt模板.ppt

    7. **自定义幻灯片母版**:PPT的母版功能可以统一模板的风格,包括页眉、页脚、背景和占位符的设计,这样每张幻灯片都能保持一致的外观。 8. **内容编辑**:模板中的“点击添加标题”和“点击添加文本”提示表明...

    2021-2022计算机二级等级考试试题及答案No.1198.docx

    - 幻灯片母版是一张特殊的幻灯片, 它定义了幻灯片的布局、背景、颜色、字体等样式。 #### 25. JSP 页面中Bean属性设置 - **知识点**: JSP页面中Bean属性设置的规则。 - **详细解释**: - 在JSP中, 通过request的...

    全国计算机二级考试的高分攻略

    近几年常考内容归纳部分列出了WPS Office和MS Office中的高频考点,如排序与筛选、幻灯片母版的设计、函数应用等,并指出数据结构中对二叉树性质和软件测试原则的考查。 考生应该深入理解并掌握上述重点与难点,...

    计算机2级一些习题和解析

    PPT操作包括设计幻灯片母版、设置动画效果、插入超链接等。 二、C语言程序设计(常见题型) C语言是计算机二级考试中的另一项重要科目,主要考核考生对C语言的基本知识、基本语法和编程能力的掌握。 1. 程序填空题...

Global site tag (gtag.js) - Google Analytics