当一个 PowerPoint 演示文稿被转换为 PDF 时,它的文档布局和格式是固定的。接收者可以在没有安装微软 PowerPoint 的情况下查看转换后的文档,但他们不能轻易地修改它。在本文中,我们将演示如何使用 Spire.Presentation for Java 库将 PowerPoint 演示文稿转换为 PDF 以及实现各种转换效果。
- 将整个 PowerPoint 转换为 PDF
- 将 PowerPoint 的特定幻灯片转换为 PDF
- 将 PowerPoint 转换为 PDF/A
- 将 PowerPoint 转换为受密码保护的 PDF
- 将 PowerPoint 转换为有权限限制的 PDF
- 将 PowerPoint 转换为 PDF 时设置每页中幻灯片数量
- 将 PowerPoint 转换为自定义页面尺寸的 PDF
安装 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>9.9.2</version>
</dependency>
</dependencies>
将整个 PowerPoint 转换为 PDF
直接将 PowerPoint 文档转换为 PDF 时,可以先使用 Presentation.loadFromFile() 方法加载文档,然后使用 Presentation.saveToFile() 方法将其保存为 PDF 文件。详细步骤如下:
- 初始化一个 Presentation 类的实例。
- 使用 Presentation.loadFromFile() 方法加载 Powerpoint 演示文稿。
- 使用 Presentation.saveToFile(filePath, FileFormat.PDF) 方法将其保存为 PDF 格式。
- Java
import com.spire.presentation.FileFormat;
import com.spire.presentation.Presentation;
public class ConvertPowerPointToPDF {
public static void main(String[] args) throws Exception {
// 创建一个Presentation对象,用于操作PowerPoint演示文稿
Presentation ppt = new Presentation();
// 从文件系统中加载一个名为"Sample.pptx"的PowerPoint文件到Presentation对象中
ppt.loadFromFile("Sample.pptx");
// 将加载后的PowerPoint演示文稿保存为PDF格式的文件,文件名为"ToPdf1.pdf"
ppt.saveToFile("ToPdf1.pdf", FileFormat.PDF);
}
}
将 PowerPoint 的特定幻灯片转换为 PDF
首先,使用 Presentation.getSlides().get() 方法获取到特定的幻灯片,然后使用 ISlide.saveToFile() 方法将该幻灯片保存为 PDF,详细步骤如下:
- 初始化一个 Presentation 类的实例。
- 使用 Presentation.loadFromFile() 方法加载 Powerpoint 演示文稿。
- 通过索引使用 Presentation.getSlides().get(slideIndex) 方法获取想要的幻灯片。
- 使用 ISlide.saveToFile(filePath, FileFormat.PDF) 方法将其保存为 PDF 格式。
- Java
import com.spire.presentation.FileFormat;
import com.spire.presentation.ISlide;
import com.spire.presentation.Presentation;
public class toPdfSpecifySlide {
public static void main(String[] args) throws Exception {
// 创建一个Presentation对象,用于操作PowerPoint演示文稿
Presentation ppt = new Presentation();
// 从文件系统中加载一个名为"Sample.pptx"的PowerPoint文件到Presentation对象中
ppt.loadFromFile("Sample.pptx");
// 获取演示文稿中的第二个幻灯片(索引为1)
ISlide slide= ppt.getSlides().get(1);
// 将选定的幻灯片保存为PDF格式的文件,文件名为"ToPdf2.pdf"
slide.saveToFile("ToPdf2.pdf", FileFormat.PDF);
}
}
将 PowerPoint 转换为 PDF/A
Spire.Presenation for Java 提供了 SaveToPdfOption 类来设置一些 PowerPoint 转 PDF 过程中的一些选项。比如你可以使用 SaveToPdfOption.setPdfConformanceLevel() 方法来使生成的 PDF 文档满足 PDF/A 规范,详细步骤如下:
- 初始化一个 Presentation 类的实例。
- 使用 Presentation.loadFromFile() 方法加载 Powerpoint 演示文稿。
- 通过 Presentation.getSaveToPdfOption() 方法获取 SaveToPdfOption 对象。
- 通过 SaveToPdfOption.setPdfConformanceLevel(PdfConformanceLevel pdfConformanceLevel) 设置结果 PDF 文档的格式。
- 使用 Presentation.saveToFile(filePath, FileFormat.PDF) 方法将其保存为 PDF 格式。
- Java
import com.spire.presentation.*;
import com.spire.presentation.pdf.PdfConformanceLevel;
public class newToPdfA {
public static void main(String[] args) throws Exception {
// 创建一个Presentation对象,用于处理PowerPoint演示文稿
Presentation ppt = new Presentation();
// 从文件系统中加载一个名为"Sample.pptx"的PowerPoint文件
ppt.loadFromFile("Sample.pptx");
// 获取SaveToPdfOption对象
SaveToPdfOption saveToPdfOption = ppt.getSaveToPdfOption();
// 设置结果PDF的格式为PDF/A-1a
saveToPdfOption.setPdfConformanceLevel(PdfConformanceLevel.Pdf_A_1_A);
// 将PowerPoint演示文稿保存为名为"outputPDFA.pdf"的PDF文件
ppt.saveToFile("outputPDFA.pdf", FileFormat.PDF);
// 释放资源
ppt.dispose();
}
}
将 PowerPoint 转换为受密码保护的 PDF
Spire.Presenation for Java 提供的 SaveToPdfOption 类还可以通过 SaveToPdfOption. getPdfSecurity().encrypt() 方法实现给转换后的 PDF 文档设置打开密码,详细步骤如下:
- 初始化一个 Presentation 类的实例。
- 使用 Presentation.loadFromFile() 方法加载 PowerPoint 演示文稿。
- 通过 Presentation.getSaveToPdfOption() 方法获取 SaveToPdfOption 对象。
- 通过 SaveToPdfOption. getPdfSecurity().encrypt(String openPassword) 方法来设置结果 PDF 文档的打开密码。
- 使用 Presentation.saveToFile(filePath, FileFormat.PDF) 方法将其保存为 PDF 格式。
- Java
import com.spire.presentation.FileFormat;
import com.spire.presentation.Presentation;
import com.spire.presentation.SaveToPdfOption;
public class toPassWordPdf {
public static void main(String[] args) throws Exception {
// 创建一个Presentation对象,用于处理PowerPoint演示文稿
Presentation ppt = new Presentation();
// 从文件系统中加载一个名为"Sample.pptx"的PowerPoint文件
ppt.loadFromFile("Sample.pptx");
// 获取SaveToPdfOption对象
SaveToPdfOption saveToPdfOption = ppt.getSaveToPdfOption();
// 给结果PDF设置打开密码
saveToPdfOption.getPdfSecurity().encrypt("e-iceblue");
// 将PowerPoint演示文稿保存为名为"outputPass.pdf"的PDF文件
ppt.saveToFile("outputPass.pdf", FileFormat.PDF);
// 释放资源
ppt.dispose();
}
}
将 PowerPoint 转换为有权限限制的 PDF
下面来看如何通过 Spire.Presenation for Java 提供的 SaveToPdfOption 类来实现给 PDF 设置权限和权限密码,主要会使用到 SaveToPdfOption. getPdfSecurity().encrypt() 方法,详细步骤如下:
- 初始化一个 Presentation 类的实例。
- 使用 Presentation.loadFromFile() 方法加载 Powerpoint 演示文稿。
- 通过 Presentation.getSaveToPdfOption() 方法获取 SaveToPdfOption 对象。
- 通过 SaveToPdfOption. getPdfSecurity().encrypt(String permissionPassword, PdfPermissionsFlags permissions) 方法来设置结果 PDF 文档的权限密码以及权限。
- 使用 Presentation.saveToFile(filePath, FileFormat.PDF) 方法将其保存为 PDF 格式。
- Java
import com.spire.presentation.*;
import com.spire.presentation.pdf.security.PdfPermissionsFlags;
public class toPermissionedPdf {
public static void main(String[] args) throws Exception {
// 创建一个Presentation对象,用于处理PowerPoint演示文稿
Presentation ppt = new Presentation();
// 从文件系统中加载一个名为"Sample.pptx"的PowerPoint文件
ppt.loadFromFile("Sample.pptx");
// 获取SaveToPdfOption对象
SaveToPdfOption saveToPdfOption = ppt.getSaveToPdfOption();
// 对生成的PDF设置权限密码、以及只允许文档有打印权限
saveToPdfOption.getPdfSecurity().encrypt("e-iceblue", PdfPermissionsFlags.Print);
// 将PowerPoint演示文稿保存为名为"outputPermission.pdf"的PDF文件
ppt.saveToFile("outputPermission.pdf", FileFormat.PDF);
// 释放资源
ppt.dispose();
}
}
将 PowerPoint 转换为 PDF 时设置每页中幻灯片数量
Spire.Presentation for Java 提供了 SaveToPdfOption.setPageSlideCount() 方法来设置生成的 PDF 文档设置一个页面包含幻灯片的数量,详细步骤如下:
- 初始化一个 Presentation 类的实例。
- 使用 Presentation.loadFromFile() 方法加载 PowerPoint 演示文稿。
- 通过 Presentation.getSaveToPdfOption() 方法获取 SaveToPdfOption 对象。
- 通过 SaveToPdfOption.setPageSlideCount(PageSlideCount pageSlideCount) 设置生成的 PDF 文档中一个页面包含几张幻灯片。
- 使用 Presentation.saveToFile(filePath, FileFormat.PDF) 方法将其保存为 PDF 格式。
- Java
import com.spire.presentation.*;
public class toPDFNumber {
public static void main(String[] args) throws Exception {
// 创建一个Presentation对象,用于处理PowerPoint演示文稿
Presentation ppt = new Presentation();
// 从文件系统中加载一个名为"Sample.pptx"的PowerPoint文件
ppt.loadFromFile("input.pptx");
// 获取SaveToPdfOption对象
SaveToPdfOption saveToPdfOption = ppt.getSaveToPdfOption();
// 设置生成的PDF文档中一个页面包含4页幻灯片
saveToPdfOption.setPageSlideCount(PageSlideCount.Four);
// 将PowerPoint演示文稿保存为名为"outputNumber.pdf"的PDF文件
ppt.saveToFile("outputNumber.pdf", FileFormat.PDF);
// 释放资源
ppt.dispose();
}
}
将 PowerPoint 转换为自定义页面尺寸的 PDF
将 PowerPoint 文档转为 PDF,有时为了适合打印,需要重新设置页面大小,通过 Presentation.getSlideSize().setType() 方法来设置当前 PowerPoint 文档的页面尺寸,转为 PDF 时也会是这个设置好的尺寸,详细步骤如下:
- 初始化一个 Presentation 类的实例。
- 使用 Presentation.loadFromFile() 方法加载 PowerPoint 演示文稿。
- 通过 Presentation.getSlideSize().setType(SlideSizeType slideSizeType) 方法来设置 PowerPoint 文档的页面尺寸。
- 使用 Presentation.saveToFile(filePath, FileFormat.PDF) 方法将其保存为 PDF 格式。
- Java
import com.spire.presentation.*;
public class toPdfWithSpecificPageSize {
public static void main(String[] args) throws Exception {
// 定义输入文件名,这里是一个PowerPoint演示文稿文件
String inputFile = "Sample.pptx";
// 定义输出文件名,这里是一个PDF文件
String outputFile = "result.pdf";
// 创建一个Presentation对象,用于处理PowerPoint文件
Presentation ppt = new Presentation();
// 从指定的文件中加载PowerPoint演示文稿
ppt.loadFromFile(inputFile);
// 设置幻灯片的大小类型为A4纸张大小
ppt.getSlideSize().setType(SlideSizeType.A4);
// 将PowerPoint演示文稿保存为PDF格式的文件
ppt.saveToFile(outputFile, FileFormat.PDF);
// 释放与Presentation对象关联的资源
ppt.dispose();
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。