幻灯片母版,可在幻灯片中预先存储设计模板信息,包括字形、占位符大小或位置、背景设计和配色方案等;对设定好的母版可应用于所有幻灯片,也可设计多个不同母版应用于不同幻灯片。下面通过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();
}
}

多个母版创建效果:

(完)

Java 创建并应用PPT幻灯片母版的更多相关文章

  1. Java 合并、拆分PPT幻灯片

    序 在日常使用PPT时,为了便于操作和管理文档,时常会遇到需要将PPT幻灯片进行合并或拆分的情况.本文将通过Java程序来演示如何进行上述操作. 示例要点: 1. 合并PPT幻灯片 1.1 将第一个P ...

  2. Java 插入公式到PPT幻灯片

    PowerPoint幻灯片中可插入公式,用于在幻灯片放映时演示相关内容的论证.推算的依据,能有效地为演讲者提供论述的数据支撑.通过后端程序代码,我们可借助特定的工具来实现在幻灯片中的插入公式,本文,将 ...

  3. Java 复制PPT幻灯片

    本篇文章将介绍通过java程序原样复制PPT幻灯片的方法.这里分两种情况来复制,即 在同一幻灯片文档中复制 在不同幻灯片文档间复制 使用工具:Free Spire.Presentation for J ...

  4. Java 插入html字符串到PPT幻灯片

    通过Java后端代码操作PPT幻灯片时,可直接在幻灯片中绘制形状,并在形状中添加文本字符串内容.本篇文章,介绍一种通过html字符串来添加内容到PPT幻灯片的的方法,可添加文字.图片.视频.音频等.下 ...

  5. Java 将PPT幻灯片转为HTML

    本文以Java程序代码为例展示如何通过格式转换的方式将PPT幻灯片文档转为HTML文件.这里的PPT幻灯片可以是.ppt/.pptx/.pps/.ppsx/.potx等格式. 代码实现思路:[加载PP ...

  6. Java设置PPT幻灯片背景——纯色、渐变、图片背景

    PPT幻灯片生成时,系统默认是无色背景填充,幻灯片设计需要手动设置背景效果,可设置颜色填充或者图片背景填充.本文将对此介绍具体实现方法. 使用工具:Free Spire.Presentation fo ...

  7. PPT 设置幻灯片母版

    现在我设计了一个PPT背景,我想新建幻灯片的时候,直接就是以这个背景展现,并把这个背景作用于左右的幻灯片. 1.选中第二页幻灯片,CTRL + C 复制一下 2.点击视图,幻灯片母版,背景样式,点击下 ...

  8. java 使用 apoi 更新 ppt 中图表的数据

    本文源码:    1. https://github.com/zhongchengyi/zhongcy.demos/tree/master/apoi-ppt-chart 2. 在第5节也有核心源码 1 ...

  9. C# 合并、拆分PPT幻灯片

    概述 通过合并.拆分的功能,将不同的文档中的幻灯片进行组合形成新的的文档,同时也可以将一个多页的PPT文档按页拆分成多个不同的文档.此功能也丰富了编程人员对PPT幻灯片的操作的选择.下面将分别从以下几 ...

随机推荐

  1. buuctf misc wp 01

    buuctf misc wp 01 1.金三胖 2.二维码 3.N种方法解决 4.大白 5.基础破解 6.你竟然赶我走 1.金三胖 root@kali:~/下载/CTF题目# unzip 77edf3 ...

  2. 【python实现卷积神经网络】批量归一化层实现

    代码来源:https://github.com/eriklindernoren/ML-From-Scratch 卷积神经网络中卷积层Conv2D(带stride.padding)的具体实现:https ...

  3. AJ学IOS(10)UI之_NSTimer_ios计时器

    AJ分享,必须精品 先看效果 代码 #import "NYViewController.h" @interface NYViewController () <UIAlertV ...

  4. 选择IT行业的自我心得,希望能帮助到各位!(一)

    我记得当时我还在读书的时候,也是卡在高三在后面,纠结我该怎么选择专业,一边顶着高考的压力又担心这担心那的,前怕狼后怕虎,一直犹犹豫豫,知道有一天我就听到谁谁谁的哥哥学IT老牛逼了,一个月多少多少钱,买 ...

  5. Jquery+php鼠标滚动到页面底部自动加载更多内容,使用分页

    1.index.php <style type="text/css"> #container{margin:10px auto;width: 660px; border ...

  6. 告诉你那里最受欢迎,python爬取全国13个城市旅游数据

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...

  7. Docker-Bridge Network 03 自定义网络

    本节介绍自定义bridge network的自定义网络. 1.前言2.创建自定义网络2.1 创建网络2.2 指定网段创建网络3.创建容器3.1 指定网络创建容器3.2 指定IP创建容器4.通信4.1 ...

  8. stand up meeting 12-9

    今天项目小组本已约好在今天下午四点半进行今天的daily scrum: 但是在四点半的时候,天赋和士杰同学均因组内项目会议延时,导致今天的daily scrum只能在晚上进行,但静雯同学因身体不舒服无 ...

  9. C - Roads in the North DFS+树的直径

    Building and maintaining roads among communities in the far North is an expensive business. With thi ...

  10. Celery实现周期任务

    这个翻译之后居然叫芹菜~~最近Django框架需要涉及到执行周期任务~~上网搜了下其实还挺多的(django_crontab:这个学习周期短,但是发现不仅麻烦还不好用啊).(apscheduler,简 ...