Spire.Presentation支持丰富的格式转换,例如PPT、PPTX格式互转,PPT/PPTX转PDF,PPT/PPTX转PNG,PPT/PPTX转SVG(可缩放矢量图)。下表列出了实现这些格式转换的具体方法及用法。
方法 | 参数一 | 参数二 | 作用 |
Presentation.SaveToFile(string file, FileFormat fileformat) | string类型变量,用于指定文件名及地址 | 枚举类型变量,用于指定文件保存格式。此枚举包含Auto、PPT、Pptx2007、Pptx2007、Pptx2010、Pptx2013、Ppsx2007、 Ppsx2010、Ppsx2013、PPS、ODP、XPS、PDF |
将PowerPoint文档保存为指定格式的文件 |
Presentation.SaveToSVG() | 将PowerPoint文档保存为SVG(可缩放矢量图)格式文件 | ||
ISlide.SaveAsImage() | 将幻灯片(slide)按原始大小保存为Bitmap对象 | ||
ISlide.SaveAsImage(int width, int height) | int类型变量,用于指定图片的宽度 | int类型变量,用于指定图片的高度 | 将幻灯片按指定大小保存为Bitmap对象 |
ISlide.SaveAsEMF(string filePath) | string类型变量,用于指定文件名及地址 | 将幻灯片保存为EMF图片 |
PowerPoint转换为PDF
通过Presentatin.SaveToFile()的方法,我们可以将PowerPoint文件转换为PPT、PPTX、 PPSX、 PPS、 ODP、 XPS、 PDF格式的文档。这里以转到PDF为例:
C#
//初始化Presentation实例
Presentation presentation = new Presentation();
//加载一个PowerPoint文档
presentation.LoadFromFile("模板.pptx");
//保存为PDF文档
presentation.SaveToFile("ToPDF.pdf", FileFormat.PDF);
VB.NET
'初始化Presentation实例
Dim presentation As New Presentation()
'加载一个PowerPoint文档
presentation.LoadFromFile("模板.pptx")
'保存为PDF文档
presentation.SaveToFile("ToPDF.pdf", FileFormat.PDF)
PowerPoint转换为位图
通过ISlide.SaveAsImage()方法,我们可以将特定的幻灯片转换为常见的位图格式,包括PNG、BMP、JPEG、TIFF。这里以转到PNG为例:
C#
//初始化Presentation实例
Presentation presentation = new Presentation();
//加载一个PowerPoint文档
presentation.LoadFromFile("模板.pptx");
//遍历PowerPoint文档中的幻灯片并保存为PNG图片
for (int i = 0; i < presentation.Slides.Count; i++)
{
Image image = presentation.Slides[i].SaveAsImage();
String fileName = String.Format("图{0}.png", i);
image.Save(fileName, System.Drawing.Imaging.ImageFormat.Png);
}
VB.NET
'初始化Presentation实例
Dim presentation As New Presentation()
'加载一个PowerPoint文档
presentation.LoadFromFile("模板.pptx")
'遍历PowerPoint文档中的幻灯片并保存为PNG图片
For i As Integer = 0 To presentation.Slides.Count - 1
Dim image As Image = presentation.Slides(i).SaveAsImage()
Dim fileName As [String] = [String].Format("图{0}.png", i)
image.Save(fileName, System.Drawing.Imaging.ImageFormat.Png)
Next
PowerPoint转换为矢量图(EMF,SVG)
PowerPoint转EMF:
C#
//初始化Presentation实例
Presentation presentation = new Presentation();
//加载一个PowerPoint文档
presentation.LoadFromFile("模板.pptx");
//遍历PowerPoint文档中的幻灯片并保存为EMF图片
for (int i = 0; i < presentation.Slides.Count; i++)
{
String fileName = String.Format("Result-{0}.emf", i);
presentation.Slides[i].SaveAsEMF(fileName);
}
VB.NET
'初始化Presentation实例
Dim presentation As New Presentation()
'加载一个PowerPoint文档
presentation.LoadFromFile("模板.pptx")
'遍历PowerPoint文档中的幻灯片并保存为EMF图片
For i As Integer = 0 To presentation.Slides.Count - 1
Dim fileName As [String] = [String].Format("Result-{0}.emf", i)
presentation.Slides(i).SaveAsEMF(fileName)
Next
PowerPoint转SVG
C#
//初始化Presentation实例
Presentation presentation = new Presentation();
//加载一个PowerPoint文档
presentation.LoadFromFile("模板.pptx");
//将PowerPoint转换为SVG图像并以字节形式存储在列队中
Queue<byte[]> svgBytes = presentation.SaveToSVG();
//获取列队中字节数组生成SVG文件
int len = svgBytes.Count;
for (int i = 0; i < len; i++)
{
FileStream fs = new FileStream(string.Format("SVG-{0}.svg", i), FileMode.Create);
byte[] bytes = svgBytes.Dequeue();
fs.Write(bytes, 0, bytes.Length);
presentation.Dispose();
}
VB.NET
'初始化Presentation实例
Dim presentation As New Presentation()
'加载一个PowerPoint文档
presentation.LoadFromFile("模板.pptx")
'将PowerPoint转换为SVG图像并以字节形式存储在列队中
Dim svgBytes As Queue(Of Byte()) = presentation.SaveToSVG()
'获取列队中字节数组生成SVG文件
Dim len As Integer = svgBytes.Count
For i As Integer = 0 To len - 1
Dim fs As New FileStream(String.Format("SVG-{0}.svg", i), FileMode.Create)
Dim bytes As Byte() = svgBytes.Dequeue()
fs.Write(bytes, 0, bytes.Length)
presentation.Dispose()
Next