网站首页 > java教程 正文
本文将使用Free Spire.Presentation for Java免费控件来介绍如何插入图片到PowerPoint幻灯片中,以及如何编辑、提取和删除幻灯片中已有的图片。
Free Spire.Presentation for Java 是一个专业的PowerPoint API,它允许开发人员在Java应用程序中创建、编辑、读取、转换和保存PowerPoint文档。作为一款独立的Java组件,它的运行环境无需安装Microsoft PowerPoint。
Jar文件获取及导入
在运行代码前,需将Jar包导入IDEA中。导入方式有两种:其一,在E-iceblue中文官网上下载Free Spire.Presentation for Java产品包,解压后将lib文件夹下的Spire.Presentation.jar手动导入IDEA;其二,在IDEA中创建一个Maven项目,然后在pom.xml文件下键入以下代码,最后点击“Import Changes”即可。
<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>3.9.0</version>
</dependency>
</dependencies>
代码示例
示例1 插入图片到PowerPoint幻灯片中
import com.spire.presentation.*;
import com.spire.presentation.drawing.FillFormatType;
import java.awt.geom.Rectangle2D;
public class InsertImages {
public static void main(String[] args) throws Exception {
//创建Presentation实例
Presentation ppt = new Presentation();
Rectangle2D rect = new Rectangle2D.Double(ppt.getSlideSize().getSize().getWidth() / 2 - 280, 140, 300, 250);
//获取第一张幻灯片(创建后默认含有一张幻灯片)
ISlide slide = ppt.getSlides().get(0);
//插入图片到幻灯片
IEmbedImage image = slide.getShapes().appendEmbedImage(ShapeType.RECTANGLE, "C:\\Users\\Test1\\Desktop\\Image1.jpg", rect);
image.getLine().setFillType(FillFormatType.NONE);
//添加一张新的幻灯片
slide = ppt.getSlides().append();
//插入图片到幻灯片
image = slide.getShapes().appendEmbedImage(ShapeType.RECTANGLE, "C:\\Users\\Test1\\Desktop\\Image2.png", rect);
image.getLine().setFillType(FillFormatType.NONE);
//保存文档
ppt.saveToFile("output/InsertImages.pptx", FileFormat.PPTX_2013);
}
}
效果图:
示例2 编辑PowerPoint幻灯片中的图片
import com.spire.presentation.*;
public class EditImage {
public static void main(String[] args) throws Exception {
//创建实例,加载PPT测试文档
Presentation ppt = new Presentation();
ppt.loadFromFile("C:\\Users\\Test1\\Desktop\\InsertImages.pptx");
//获取第一张幻灯片
ISlide slide = ppt.getSlides().get(0);
//遍历幻灯片中的形状
for( int i = 0; i< slide.getShapes().getCount();i++){
IShape shape = slide.getShapes().get(i);
//设置图片高、宽、位置、旋转、可选文本、像素、名称等
if(shape instanceof SlidePicture){
SlidePicture pic = (SlidePicture) shape;
pic.setHeight(270);
pic.setWidth(400);
pic.setAlternativeText("原始图片文件");
pic.setAlternativeTitle("标题1");
pic.setRotation(30);
pic.setLeft(200);
pic.setTop(150);
pic.setName("图片1");
pic.getPictureFill().getPicture().setTransparency(60);
}
}
//保存文档
ppt.saveToFile("output/ModifyImage.pptx",FileFormat.PPTX_2013);
ppt.dispose();
}
}
编辑前后对比图:
示例3 提取Powerpoint幻灯片中的图片
情况1:提取所有幻灯片中的图片
import com.spire.presentation.Presentation;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
public class ExtractImages {
public static void main(String[] args) throws Exception {
//创建Presentation实例
Presentation ppt = new Presentation();
//加载PowerPoint文档
ppt.loadFromFile("C:\\Users\\Test1\\Desktop\\InsertImages.pptx");
//提取文档中的所有图片
for (int i = 0; i < ppt.getImages().getCount(); i++) {
BufferedImage image = ppt.getImages().get(i).getImage();
ImageIO.write(image, "PNG", new File(String.format("output/" + "extractImage-%1$s.png", i)));
}
}
}
提取效果:
情况2 提取指定幻灯片中的图片
import com.spire.presentation.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
public class ExtractSpecifiedImage {
public static void main(String[] args) throws Exception {
//创建Presentation实例
Presentation ppt = new Presentation();
//加载PowerPoint文档
ppt.loadFromFile("C:\\Users\\Test1\\Desktop\\InsertImages.pptx");
//获取第一张幻灯片
ISlide slide = ppt.getSlides().get(0);
//提取图片
for(int i = 0; i< slide.getShapes().getCount(); i++)
{
IShape shape = slide.getShapes().get(i);
if(shape instanceof SlidePicture)
{
SlidePicture pic = (SlidePicture) shape;
BufferedImage image = pic.getPictureFill().getPicture().getEmbedImage().getImage();
ImageIO.write(image, "PNG", new File(String.format("output/" + "extractSpecifiedImage-%1$s.png", i)));
}
if(shape instanceof PictureShape)
{
PictureShape ps = (PictureShape) shape;
BufferedImage image = ps.getEmbedImage().getImage();
ImageIO.write(image, "PNG", new File(String.format("output/" + "extractSpecifiedImage-%1$s.png", i)));
}
}
}
}
提取效果:
示例4 删除PowerPoint幻灯片中的图片
import com.spire.presentation.*;
public class DeleteImages {
public static void main(String[] args) throws Exception {
//加载PPT文档
Presentation ppt = new Presentation();
ppt.loadFromFile("C:\\Users\\Test1\\Desktop\\InsertImages.pptx");
//获取指定幻灯片
ISlide slide = ppt.getSlides().get(1);
//遍历幻灯片中的形状
for( int i = 0; i< slide.getShapes().getCount();i++){
IShape shape = slide.getShapes().get(i);
//删除图片
if(shape instanceof SlidePicture){
SlidePicture pic = (SlidePicture) shape;
slide.getShapes().remove(pic);
}
}
//保存文档
ppt.saveToFile("output/DeleteImages.pptx", FileFormat.PPTX_2013);
ppt.dispose();
}
}
删除前后对比图:
猜你喜欢
- 2024-09-30 SQL SERVER 清理日志文件的方法(sql server怎么清除日志)
- 2024-09-30 如何使用 Java 在 PDF 文档中添加、删除或旋转页面
- 2024-09-30 夯实基础:完全理解掌握Java文件类File
- 2024-09-30 Java基础——IO流(10)(java基础)
- 2024-09-30 Java编程思想:清除一收尾和垃圾收集
- 2024-09-30 Java教程Java 文件 IO 操作(java io写文件)
- 2024-09-30 近2万字详解JAVA NIO2文件操作,过瘾
- 2024-09-30 JAVA运维必备——linux的基本常见命令,也是“装逼”命令
- 2024-09-30 Java中常用IO流之文件流的基本使用姿势
- 2024-09-30 Java平台的海量小文件分布式文件系统BRFS-全套源码+文档
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)