前言

PPT母版具有强大的模板作用,它能够允许用户根据自己的需求自行设计幻灯片的标题文字、背景图、主题颜色等。PPT母版设计成功后可以直接调用此模板应用到其他幻灯片,避免多次重复编辑。本文将介绍如何使用代码在Java应用程序中创建幻灯片母版样式并应用到其他幻灯片。

基本步骤

1. 下载Free Spire.Presentation for Java包并解压缩。

2. 将lib文件夹下的Spire.Presentation.jar包作为依赖项导入到Java应用程序中。(也可直接通过Maven仓库安装JAR包(配置pom.xml文件的代码见下文))

3. 在Java应用程序中新建一个Java Class(此处我命名为CreateSlideMaster 和 CreateMultiSlideMasters),然后输入相应的Java代码并运行。

配置pom.xml文件

<repositories><repository><id>com.e-iceblue</id><url>http://repo.e-iceblue.cn/repository/maven-public/</url></repository>
</repositories>
<dependencies><dependency><groupId>e-iceblue</groupId><artifactId>spire.presentation.free</artifactId><version>2.6.1</version></dependency>
</dependencies>

创建唯一母版

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 CreateSlideMaster {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 = "pic.jpg";String logo = "logo.jpg";//设置母版背景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);//添加图片到母版image = ImageIO.read(new FileInputStream(logo));imageData = presentation.getImages().append(image);IEmbedImage imageShape = masterSlide.getShapes().appendEmbedImage(ShapeType.RECTANGLE,imageData,new Rectangle2D.Float(60,60,220,80));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,200,60));//Shapes.AppendShape(ShapeType.Rectangle, new RectangleF(ppt.SlideSize.Size.Width-200, ppt.SlideSize.Size.Height-60, 200, 30));textShape.getTextFrame().setText("工作总结汇报");textShape.getTextFrame().getTextRange().setFontHeight(20f);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();}
}

创建多个母版并分别应用到幻灯片

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 CreateMultiSlideMasters {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 = "image1.jpg";String pic2 = "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("MultiSlideMaters.pptx", FileFormat.PPTX_2013);presentation.dispose();}
}

Java 创建并用应用幻灯片母版相关推荐

  1. java在己有的类创子类怎么创_如何使用Java创建自己的异常子类

    Java不知道学了多少课时了,你知道如何使用Java创建自己的异常子类吗,Java的内置异常处理有哪些常见的错误呢,今天IT培训网小编就来给大家详细介绍下吧: 尽管Java的内置异常处理大多数常见错误 ...

  2. Java 创建用户异常类、将异常一直向上抛、 throw和throws的区别

    Java 创建用户异常类.将异常一直向上抛. throw和throws的区别 参考文章: (1)Java 创建用户异常类.将异常一直向上抛. throw和throws的区别 (2)https://ww ...

  3. java 创建多线程_Java创建多线程

    Java创建多线程 下一节> 到目前为止,我们仅用到两个线程:主线程和一个子线程.然而,你的程序可以创建所需的更多线程.例如,下面的程序创建了三个子线程: // Create multiple ...

  4. java 区块链使用_使用Java创建第一个区块链

    本系列教程的目的是帮助你了解如何开发区块链技术.在本教程中,我们将: 创建你的第一个非常基础的区块链. 实施简单的工作量证明系统(采矿). 探讨任何的可能性. 我假设你对面向对象编程有基本的了解.值得 ...

  5. java创建线程代码_Java创建与结束线程代码示例

    本文讲述了在Java中如何创建和结束线程的最基本方法,只针对于Java初学者.一些高级知识如线程同步.调度.线程池等内容将会在后续章节中逐步深入. 创建线程 创建普通线程有两种方式,继承Thread类 ...

  6. jax ws ri 生成java类_JAX-WS(一)之使用wsgen从Java创建简单的WebService

    概念 JAX-WS2.0的全称Java API for XML-Based Web Service 2.0.JAX-WS2.0是对JAX-RPC1.0规范的扩展,是JAX-RPC1.1的后续版本,JA ...

  7. Java创建cookie和删除cookie

    Java创建cookie和删除cookie //写cookie操作         Cookie cooki;         cooki=new Cookie("bbs_0001" ...

  8. java 创建文件夹的方法_Java创建文件夹的方法

    Java创建文件夹的方法 /** * 用于创建文件夹的方法 * @param mkdirName */ public void mkdir(String mkdirName) { try { File ...

  9. java chat_使用 Java 创建聊天客户端-1

    1.聊天客户端文本框的搭建. 项目截图:java project 代码: (1).ChatManager.java package com.nantian.javachatclient.main; i ...

最新文章

  1. git如何移除某文件的版本控制
  2. mysql 自增语句_Mysql 自动增加设定基值的语句 | 很文博客
  3. 组合数学及其应用——鸽巢原理
  4. 计算机在剪辑方面的应用,多媒体技术对影视后期制作的应用
  5. 【TSP问题】基于禁忌搜索算法求解旅行商问题Matlab源码
  6. linux实时监测cpu温度,Linux 监控CPU 温度
  7. 纯MSDOS操作系统下的计算机重启与关机
  8. average函数python_在Python3 numpy中mean和average的区别详解
  9. 全国省份、城市关联表 mysql(含城市名拼音)
  10. LIKE视频网站无法登录服务器,解析视频地址失败,更换服务器也不行
  11. 紫光展锐发布系统级安全的高性能5G SoC移动平台T820
  12. Android 自定义相机黑屏
  13. 35种低碳水化合物食物清单
  14. Spring Boot + Drools+模板引擎,优惠券的动态添加以及购物车结算
  15. 洛谷 P1348 Couple number
  16. Windows系统错误提示:缺少词库文件winabc.cwd缺少基础表文件winabc.ovl
  17. RTMP协议和RTSP协议的区别
  18. python网络安全工具箱界面,Python开发案例:设计启动工具箱,显示图形界面的方式...
  19. 浏览器(Browser) WebSql 学习笔记
  20. 谈恋爱就是创业?程序员必看的恋爱秘籍,赶紧get起来吧

热门文章

  1. 《西邮XUPT-ACM学子的文字》
  2. 导师和学生之间应该多说实话
  3. 苹果cms常见100个问题及解决方法
  4. ubuntu 14.04 成功迁移根分区到SSD
  5. 对向传播神经网络(CPN)
  6. 福建省一级计算机考试文字录入,2015福建省机关事业工勤人员计算机文字录入员工作总结.doc...
  7. 回忆童年游戏之棋盘决奕
  8. 修复win10的更新服务器,Win10系统无法更新如何修复Windows Update组件
  9. Ubuntu安装vim
  10. Linux Shell字符串变量头尾去除空格