图片文件是人们日常生活中最常用的文档类型之一。有时,您可能需要将文件夹中的所有图片转换为 PowerPoint 演示文稿。根据不同的需求,您可以将图片转换为形状或幻灯片背景。本文将演示如何使用 Spire.Presentation for Java 在 Java 中将常见格式的图片转换为 PowerPoint 文档。
安装 Spire.Presentation for Java
首先,您需要在 Java 程序中添加 Spire.Presentation.jar 文件作为依赖项。JAR 文件可以从此链接下载。如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而轻松地在应用程序中导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.presentation</artifactId>
<version>10.4.0</version>
</dependency>
</dependencies>
Java 将图片转换为 PowerPoint 背景图
当图片被转换为 PowerPoint 文档的背景图时,它们无法移动或缩放。合适的背景图可以让您的演示文稿更加美观,吸引观众的眼球。下面我们来看看怎样通过 Spire.Presentation for Java 将一组图片转换为 PowerPoint 文件背景图片。
- 创建一个 Presentation 类的对象。
- 将幻灯片尺寸类型设置为 Sreen16x9。
- 从文件夹中获取图片路径。
- 遍历图片。
- 获取指定图片,并使用 Presentation.getImages().append() 方法将其添加到文档的图片集合中。
- 使用 Presentation.getSlides().append() 方法向文档添加幻灯片。
- 通过 SlideBackground 对象下的方法将图片设置为幻灯片背景。
- 使用 Presentation.saveToFile() 方法将文档保存为 PowerPoint 文件。
- Java
import com.spire.presentation.*;
import com.spire.presentation.drawing.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
public class ConvertImagesAsBackground {
public static void main(String[] args) throws Exception {
// 创建一个 Presentation 对象
Presentation presentation = new Presentation();
// 设置幻灯片大小类型
presentation.getSlideSize().setType(SlideSizeType.SCREEN_16_X_9);
// 移除默认幻灯片
presentation.getSlides().removeAt(0);
// 从文件夹中获取图片文件
File directoryPath = new File("/图片");
File[] picFiles = directoryPath.listFiles();
// 遍历图片文件
for (int i = 0; i < picFiles.length; i++)
{
// 添加一张幻灯片
ISlide slide = presentation.getSlides().append();
// 获取一张图片
String imageFile = picFiles[i].getAbsolutePath();
// 将该图片添加到图片集合中
BufferedImage bufferedImage = ImageIO.read(new FileInputStream(imageFile));
IImageData imageData = presentation.getImages().append(bufferedImage);
// 将该图片设置为幻灯片的背景图片
slide.getSlideBackground().setType(BackgroundType.CUSTOM);
slide.getSlideBackground().getFill().setFillType(FillFormatType.PICTURE);
slide.getSlideBackground().getFill().getPictureFill().setFillType(PictureFillType.STRETCH);
slide.getSlideBackground().getFill().getPictureFill().getPicture().setEmbedImage(imageData);
}
// 保存结果文件
presentation.saveToFile("/转换图片为背景.pptx", FileFormat.PPTX_2013);
}
}
在 Java 中将图片转换为 PowerPoint 形状
如果您希望在 PowerPoint 文件中移动和调整图片大小,可以将其转换为形状。以下是使用 Spire.Presentation for Java 将图片转换为形状的具体步骤。
- 创建一个 Presentation 对象。
- 将幻灯片大小类型设置为 Sreen16x9。
- 从文件夹中获取图片路径。
- 遍历图片。
- 使用 Presentation.getImages().append() 方法获取特定图片并将其追加到文档的图片集合中。
- 利用 Presentation.getSlides().append() 方法向文档添加幻灯片。
- 使用 ISlide.getShapes().appendShape() 方法添加一个与幻灯片大小相等的形状。
- 通过 FillFormat 对象下的方法将图片填充到形状中。
- 利用 Presentation.saveToFile() 方法将文档保存为 PowerPoint 文件。
- Java
import com.spire.presentation.*;
import com.spire.presentation.drawing.*;
import javax.imageio.ImageIO;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
public class ConvertImageToShape {
public static void main(String[] args) throws Exception {
// 创建一个 Presentation 类的对象
Presentation presentation = new Presentation();
// 设置幻灯片大小类型
presentation.getSlideSize().setType(SlideSizeType.SCREEN_16_X_9);
// 移除默认幻灯片
presentation.getSlides().removeAt(0);
// 从文件夹中获取图片文件
File directoryPath = new File("/图片");
File[] picFiles = directoryPath.listFiles();
// 遍历图片
for (int i = 0; i < picFiles.length; i++)
{
// 添加一张幻灯片
ISlide slide = presentation.getSlides().append();
// 获取一张图片
String imageFile = picFiles[i].getAbsolutePath();
// 将图片添加到图片集合中
BufferedImage bufferedImage = ImageIO.read(new FileInputStream(imageFile));
IImageData imageData = presentation.getImages().append(bufferedImage);
// 添加一个与幻灯片同样大小的形状
IAutoShape shape = slide.getShapes().appendShape(ShapeType.RECTANGLE, new Rectangle2D.Float(0, 0, (float) presentation.getSlideSize().getSize().getWidth(), (float)presentation.getSlideSize().getSize().getHeight()));
// 用图片填充形状
shape.getLine().setFillType(FillFormatType.NONE);
shape.getFill().setFillType(FillFormatType.PICTURE);
shape.getFill().getPictureFill().setFillType(PictureFillType.STRETCH);
shape.getFill().getPictureFill().getPicture().setEmbedImage(imageData);
}
// 保存结果文件
presentation.saveToFile("/图片转换为形状.pptx", FileFormat.PPTX_2013);
}
}
Java 将图片转换为 PowerPoint 时自定义幻灯片大小
如果图片长宽比不是 16:9,或者它们不是标准幻灯片大小,您可以根据图片的实际尺寸创建幻灯片,这样可以有效防止图片被拉伸或压缩。以下是使用 Spire.Presentation for Java 将图片转换为 PowerPoint 文档并且自定义幻灯片大小的步骤。
- 创建一个 Presentation 对象。
- 创建一个 PdfUnitConvertor 对象,用于将像素转换为点。
- 获取文件夹中的图片路径。
- 遍历图片。
- 获取特定图片,并使用 Presentation.getImages().append() 方法将其添加到文档的图片集合中。
- 获取图片的宽度和高度,并将其转换为点。
- 使用 Presentation.getSlideSize().setSize() 方法,根据图片大小设置演示文稿的幻灯片大小。
- 使用 Presentation.getSlides().append() 方法向文档添加幻灯片。
- 使用 SlideBackground 对象下的方法,将图片设置为幻灯片的背景图片。
- 使用 Presentation.saveToFile() 方法将文档保存为 PowerPoint 文件。
- Java
import com.spire.pdf.graphics.PdfGraphicsUnit;
import com.spire.pdf.graphics.PdfUnitConvertor;
import com.spire.presentation.*;
import com.spire.presentation.drawing.*;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
public class CustomizeSlideSize {
public static void main(String[] args) throws Exception {
// 创建一个 Presentation 对象
Presentation presentation = new Presentation();
// 移除默认幻灯片
presentation.getSlides().removeAt(0);
// 从文件夹中获取图片文件
File directoryPath = new File("/图片文件夹");
File[] picFiles = directoryPath.listFiles();
// 创建一个 PdfUnitConvertor 对象
PdfUnitConvertor convertor = new PdfUnitConvertor();
// 遍历图片
for (int i = 0; i < picFiles.length; i++)
{
// 获取一张图片
String imageFile = picFiles[i].getAbsolutePath();
// 将该图片添加到图片集合中
BufferedImage bufferedImage = ImageIO.read(new FileInputStream(imageFile));
IImageData imageData = presentation.getImages().append(bufferedImage);
// 获取图片的高和宽的像素
int height = imageData.getHeight();
int width = imageData.getWidth();
// 将像素转换为点
float widthPoint = convertor.convertUnits(width, PdfGraphicsUnit.Pixel, PdfGraphicsUnit.Point);
float heightPoint= convertor.convertUnits(height, PdfGraphicsUnit.Pixel, PdfGraphicsUnit.Point);
// 设置幻灯片的大小
presentation.getSlideSize().setSize(new Dimension((int)widthPoint, (int)heightPoint));
// 添加一张幻灯片
ISlide slide = presentation.getSlides().append();
// 设置图片为幻灯片背景
slide.getSlideBackground().setType(BackgroundType.CUSTOM);
slide.getSlideBackground().getFill().setFillType(FillFormatType.PICTURE);
slide.getSlideBackground().getFill().getPictureFill().setFillType(PictureFillType.STRETCH);
slide.getSlideBackground().getFill().getPictureFill().getPicture().setEmbedImage(imageData);
}
// 保存结果文档
presentation.saveToFile("/自定义幻灯片大小.pptx", FileFormat.PPTX_2013);
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。