保存演示文稿
概述
Presentation 类保存演示文稿的内容。无论是从头创建演示文稿还是修改现有演示文稿,完成后都希望保存演示文稿。使用 Aspose.Slides for Java,可以将其保存为 文件 或 流。本文解释了如何以不同方式保存演示文稿:
将演示文稿保存为文件
通过调用 Presentation 类的 Save 方法将演示文稿保存为文件。只需将文件名和 SaveFormat 传递给 Save 方法。
下面的示例演示了如何使用 Aspose.Slides for Java 保存演示文稿。
// 实例化一个表示 PPT 文件的 Presentation 对象
Presentation pres = new Presentation();
try {
// ...在此处执行一些工作...
// 将演示文稿保存到文件中
pres.save("demoPass.pptx", com.aspose.slides.SaveFormat.Pptx);
} finally {
if(pres != null) pres.dispose();
}
将演示文稿保存为流
可以通过将输出流传递给 Presentation 类的 Save 方法,将演示文稿保存为流。可以保存演示文稿的多种类型的流。在下面的示例中,我们创建了一个新的演示文稿文件,在形状中添加文本,并将演示文稿保存到流中。
// 实例化一个表示 PPT 文件的 Presentation 对象
Presentation pres = new Presentation();
try {
IAutoShape shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 200, 200);
// 向形状添加文本
shape.getTextFrame().setText("此演示展示了如何创建 PowerPoint 文件并将其保存到流中。");
OutputStream os = new FileOutputStream("Save_As_Stream_out.pptx");
pres.save(os, com.aspose.slides.SaveFormat.Pptx);
os.close();
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
使用预定义视图类型保存演示文稿
Aspose.Slides for Java 提供了一个功能,可以在通过 ViewProperties 类打开生成的演示文稿时设置视图类型。setLastView 属性用于通过使用 ViewType 枚举来设置视图类型。
// 打开演示文稿文件
Presentation pres = new Presentation();
try {
// 设置视图类型
pres.getViewProperties().setLastView((byte) ViewType.SlideMasterView);
// 保存演示文稿
pres.save("newDemo.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
将演示文稿保存为严格的 Office Open XML 格式
Aspose.Slides 允许您以严格的 Office Open XML 格式保存演示文稿。为此,它提供了 PptxOptions 类,您可以在保存演示文稿文件时设置 Conformance 属性。如果您将其值设置为 Conformance.Iso29500_2008_Strict,则输出演示文稿文件将以严格的 Open XML 格式保存。
以下示例代码创建一个演示文稿,并以严格的 Office Open XML 格式保存它。在为演示文稿调用 Save 方法时,将带有 Conformance 属性设置为 Conformance.Iso29500_2008_Strict 的 PptxOptions 对象传递给它。
// 实例化一个表示 PPT 文件的 Presentation 对象
Presentation pres = new Presentation();
try {
// 获取第一张幻灯片
ISlide slide = pres.getSlides().get_Item(0);
// 添加类型为线的自动形状
slide.getShapes().addAutoShape(ShapeType.Line, 50, 150, 300, 0);
// 设置严格的 Office Open XML 格式保存选项
PptxOptions options = new PptxOptions();
options.setConformance(Conformance.Iso29500_2008_Strict);
// 将演示文稿保存到文件中
pres.save("demoPass.pptx", SaveFormat.Pptx, options);
} finally {
if (pres != null) pres.dispose();
}
将演示文稿保存为 Office Open XML 格式的 Zip64 模式
Office Open XML 文件是一个 ZIP 压缩文件,具有 4 GB (2^32 字节) 的限制,适用于未压缩文件的大小、压缩文件的大小和压缩包的总大小,以及在压缩包中 65,535 (2^16-1) 个文件的限制。ZIP64 格式扩展将这些限制提高到 2^64。
新的 IPptxOptions.Zip64Mode 属性允许您选择何时对保存的 Office Open XML 文件使用 ZIP64 格式扩展。
此属性提供以下模式:
- Zip64Mode.IfNecessary 意味着只有在演示文稿超出上述限制时才使用 ZIP64 格式扩展。这是默认模式。
- Zip64Mode.Never 意味着不使用 ZIP64 格式扩展。
- Zip64Mode.Always 意味着始终使用 ZIP64 格式扩展。
下面的代码演示了如何使用 ZIP64 格式扩展将演示文稿保存为 PPTX 格式:
Presentation pres = new Presentation("Sample.pptx");
try {
PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setZip64Mode(Zip64Mode.Always);
pres.save("Sample-zip64.pptx", SaveFormat.Pptx, pptxOptions);
} finally {
if (pres != null) pres.dispose();
}
注意
以 Zip64Mode.Never 模式保存时,如果演示文稿无法以 ZIP32 格式保存,将抛出 PptxException 。以百分比保存进度更新
新的 IProgressCallback 接口已添加到 ISaveOptions 接口和 SaveOptions 抽象类中。 IProgressCallback 接口表示一个用于保存进度更新的回调对象,进度更新以百分比表示。
下面的代码片段展示了如何使用 IProgressCallback 接口:
// 打开演示文稿文件
Presentation pres = new Presentation("ConvertToPDF.pptx");
try {
ISaveOptions saveOptions = new PdfOptions();
saveOptions.setProgressCallback((IProgressCallback) new ExportProgressHandler());
pres.save("ConvertToPDF.pdf", SaveFormat.Pdf, saveOptions);
} finally {
pres.dispose();
}
class ExportProgressHandler implements IProgressCallback
{
public void reporting(double progressValue)
{
// 在这里使用进度百分比值
int progress = Double.valueOf(progressValue).intValue();
System.out.println(progress + "% 文件已转换");
}
}