PDF 工具

如何使用C#将PowerPoint转换为图像

发布 2024年三月12日
分享:

介绍

转换的必要性PowerPoint软件开发领域经常出现图片格式演示。 许多开发人员发现,无论是预览生成、缩略图创建还是系统集成,能够以编程方式将 PowerPoint 文件转换为照片都非常有用。 本文将解释如何用 C# ppt 转图像来完成这一操作,并包含一些示例代码来帮助您完成这一过程。

如何使用 C## 将 PowerPoint 转换为图像

  1. 创建 PowerPoint 应用程序实例。

  2. 使用实例打开演示文稿。

  3. 检查并创建输出文件夹。

  4. 迭代幻灯片并将幻灯片导出为图片。

  5. 关闭演示并退出应用程序。

将 PowerPoint 演示文稿转换为图像格式?

在了解具体细节之前,让我们先快速了解一下将 PowerPoint 幻灯片转换成照片的意义。 尽管 PowerPoint 是制作动态演示文稿的绝佳工具,但并不总能以原始格式共享这些文件。 有时,只需要演示文稿中的特定幻灯片或照片,有时,不同的系统和设置可能无法直接呈现 PowerPoint 文件。 通过将 PowerPoint 演示文稿转化为图片,可以提供一个包罗万象的解决方案,便于在各种设备和应用程序上共享和查看。

使用 PowerPoint 交互库

用 C# 将 PowerPoint 演示文稿转化为照片有几种方法。 使用Microsoft.Office.Interop.PowerPoint命名空间是一种流行的方法,它提供了与 PowerPoint 应用程序进行编程接口的类和方法。 这为使用 PowerPoint 文件提供了广泛的能力。

创建一个新的Visual Studio项目

请按照以下步骤创建一个新的 Visual Studio 项目:

打开 Visual Studio IDE。确保已安装Visual Studio在使用之前,请先在您的电脑上下载。

启动新项目:

选择文件、新建,最后选择项目。

如何使用 C# 将 PowerPoint 转换为图像:图 1 - 打开 Visual Studio 并选择文件 - 新建 - 项目。

在 "创建新项目 "框中,选择您最喜欢的编程语言(例如 C#)从左侧开始。

接下来,选择 "控制台应用程序 "或 "控制台应用程序(.NET Core)从可用项目模板列表中选择".NET "模板。

请填写 "名称 "部分,为您的项目命名。

如何使用 C# 将 PowerPoint 转换为图像:图 2 - 从创建新项目框中,选择 C# 编程语言和控制台应用程序。配置项目名称和位置,然后点击 下一步 按钮。

选择项目的存储位置。

单击 "创建 "开始新的控制台应用程序项目。

如何使用 C# 将 PowerPoint 转换为图像:图 3 - 选择适当的 .NET Framework 并点击 创建 按钮。

在 C# 中将 PowerPoint 幻灯片转换为图像;

让我们从如何使用 Microsoft.Office.Interop.PowerPoint 命名空间将 PowerPoint 幻灯片转换为图片开始。 首先确保安装了所需的程序集,并将其作为引用添加到您的 C# 项目中。这些程序集通常可通过直接引用 InterOp 程序集或安装 Microsoft Office Primary Interop Assemblies 找到。(PIA).

代码示例

using System.IO;
using Microsoft.Office.Interop.PowerPoint;
class Program
{
    static void Main(string [] args)
    {
        string pptFilePath = "demo.pptx"; // Path to your PowerPoint file
        string outputFolder = "output_images"; // Output folder path where images will be saved
        ConvertPptToImages(pptFilePath, outputFolder);
    }
    static void ConvertPptToImages(string pptFilePath, string outputFolder)
    {
        Application pptApplication = new Application();
        Presentation pptPresentation = pptApplication.Presentations.Open(pptFilePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse);
        if (!Directory.Exists(outputFolder))
            Directory.CreateDirectory(outputFolder);
        int slidesCount = pptPresentation.Slides.Count;
        for (int i = 1; i <= slidesCount; i++)
        {
            string outputPath = Path.Combine(outputFolder, $"Slide{i}.png");
            pptPresentation.Slides[i].Export(outputPath, "png", 1024, 768);
        //saving the presentation slides into png images
        }
        pptPresentation.Close();
        pptApplication.Quit();
    }
}
using System.IO;
using Microsoft.Office.Interop.PowerPoint;
class Program
{
    static void Main(string [] args)
    {
        string pptFilePath = "demo.pptx"; // Path to your PowerPoint file
        string outputFolder = "output_images"; // Output folder path where images will be saved
        ConvertPptToImages(pptFilePath, outputFolder);
    }
    static void ConvertPptToImages(string pptFilePath, string outputFolder)
    {
        Application pptApplication = new Application();
        Presentation pptPresentation = pptApplication.Presentations.Open(pptFilePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse);
        if (!Directory.Exists(outputFolder))
            Directory.CreateDirectory(outputFolder);
        int slidesCount = pptPresentation.Slides.Count;
        for (int i = 1; i <= slidesCount; i++)
        {
            string outputPath = Path.Combine(outputFolder, $"Slide{i}.png");
            pptPresentation.Slides[i].Export(outputPath, "png", 1024, 768);
        //saving the presentation slides into png images
        }
        pptPresentation.Close();
        pptApplication.Quit();
    }
}
Imports System.IO
Imports Microsoft.Office.Interop.PowerPoint
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim pptFilePath As String = "demo.pptx" ' Path to your PowerPoint file
		Dim outputFolder As String = "output_images" ' Output folder path where images will be saved
		ConvertPptToImages(pptFilePath, outputFolder)
	End Sub
	Private Shared Sub ConvertPptToImages(ByVal pptFilePath As String, ByVal outputFolder As String)
		Dim pptApplication As New Application()
		Dim pptPresentation As Presentation = pptApplication.Presentations.Open(pptFilePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse)
		If Not Directory.Exists(outputFolder) Then
			Directory.CreateDirectory(outputFolder)
		End If
		Dim slidesCount As Integer = pptPresentation.Slides.Count
		For i As Integer = 1 To slidesCount
			Dim outputPath As String = Path.Combine(outputFolder, $"Slide{i}.png")
			pptPresentation.Slides(i).Export(outputPath, "png", 1024, 768)
		'saving the presentation slides into png images
		Next i
		pptPresentation.Close()
		pptApplication.Quit()
	End Sub
End Class
VB   C#

通过使用 Microsoft.Office.Interop.PowerPoint; 声明导入与 PowerPoint 应用程序配合使用所需的 C# 命名空间。 程序的入口点是 "Main "方法。 指定输出文件夹(输出文件夹)保存已创建照片的位置,以及 PowerPoint 文件的路径(pptFilePath). 将 PowerPoint 演示文稿转换成照片的实际工作就是通过这种方法完成的。

PowerPoint 演示文稿文件

如何使用 C# 将 PowerPoint 转换为图像:图 4 - 代码示例中使用的 PowerPoint ppt。

Application pptApplication = 新应用程序();用于启动 PowerPoint 程序的新实例。 这样就可以与 PowerPoint 进行编程交互。 使用 pptApplication.Presentations 打开由 pptFilePath.Open 指示的 PowerPoint 演示文稿文件。()功能。 此函数返回一个 Presentation 对象,表示已打开的演示文稿。 我们确定输出文件夹"outputFolder"是否存在。 如果没有,我们就使用 Directory.CreateDirectory方法。()`创建它。

控制台输出

如何使用 C# 将 PowerPoint 转换为图像:图 5 - 控制台输出。

我们使用 for 循环遍历演示文稿中的每张幻灯片。 pptPresentation "使用属性 "Slides.Count "提供幻灯片总数。 我们使用输出文件夹路径和幻灯片索引为每张幻灯片的图片创建输出路径(幻灯片{i}.png). 接下来,我们使用 pptPresentation 将 PowerPoint 幻灯片导出为图片(在本例中,采用 JPG 图像、PNG 图像格式)使用 "导出()功能。 参数为图片格式("png "格式)和尺寸(宽度:1024,高度:768). 最后,我们使用 pptPresentation 结束演示。 关闭()并使用 pptApplication 结束 PowerPoint 会话。 要适当放弃系统资源,请使用 Quit().

输出 - 将 PowerPoint 转换为 PNG 图像

如何使用 C# 将 PowerPoint 转换为图像:图 6 - 将 PowerPoint 幻灯片输出为 PNG 图像。

IronXL

一个广受欢迎的 .NET Framework 被称为IronXL使用 C# 来操作 Excel 文件变得更容易。 Excel 是一款灵活的工具,具有读取、创建和编辑 Excel 文件的广泛功能,适用于各种用途。 下面我将介绍 IronXL 的一些主要功能:

  • 开发人员可使用以下工具将数据快速写入新的或现有的 Excel 文件,并从现有的 Excel 文件中读取数据IronXL. 这包括访问工作表和工作簿属性,如格式化、公式和单元格值。
  • 有了 IronXL.Excel,开发人员可以从数据库和 CSV 文件等各种来源将数据导入 Excel 电子表格。 同样,Excel 文件中的信息也可以导出为 CSV、HTML、XML 和 PDF 等文件格式。
  • 开发人员可以使用 IronXL.Excel 动态添加、编辑和删除 Excel 电子表格中的工作表。 这样可以根据应用需求灵活组织数据和结构。
  • IronXL.Excel 可以精确操作 Excel 电子表格中的单个单元格。 开发人员可以通过编程设置格式、样式、公式、单元格值和其他特征。

    要了解有关文档的更多信息,请参阅IronXL 文档.

安装 IronXL

让我们先使用 NuGet 包管理器控制台安装 IronXL,然后再进一步:

Install-Package IronXL.Excel

安装完成后,IronXL 就可以在我们的 C# 项目中使用了。

使用 IronXL 进行 Excel 操作

让我们考察一种假设情况:我们希望使用 IronXL 从 Excel 文件中读取数据。

下面的代码示例简要说明了如何实现这一目标:

using IronXL;
using System;
class Program
{
    static void Main(string [] args)
    {
        // Path to the Excel file
        string excelFilePath = "sample.xlsx";
        // Load the Excel file
        WorkBook workbook = WorkBook.Load(excelFilePath);
        // Access the first worksheet
        WorkSheet worksheet = workbook.WorkSheets[0];
        // Iterate through rows and columns to read data
        foreach (var row in worksheet.Rows)
        {
            foreach (var cell in row)
            {
                Console.Write(cell.Value + "\t");
            }
            Console.WriteLine();
        }
    }
}
using IronXL;
using System;
class Program
{
    static void Main(string [] args)
    {
        // Path to the Excel file
        string excelFilePath = "sample.xlsx";
        // Load the Excel file
        WorkBook workbook = WorkBook.Load(excelFilePath);
        // Access the first worksheet
        WorkSheet worksheet = workbook.WorkSheets[0];
        // Iterate through rows and columns to read data
        foreach (var row in worksheet.Rows)
        {
            foreach (var cell in row)
            {
                Console.Write(cell.Value + "\t");
            }
            Console.WriteLine();
        }
    }
}
Imports Microsoft.VisualBasic
Imports IronXL
Imports System
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Path to the Excel file
		Dim excelFilePath As String = "sample.xlsx"
		' Load the Excel file
		Dim workbook As WorkBook = WorkBook.Load(excelFilePath)
		' Access the first worksheet
		Dim worksheet As WorkSheet = workbook.WorkSheets(0)
		' Iterate through rows and columns to read data
		For Each row In worksheet.Rows
			For Each cell In row
				Console.Write(cell.Value & vbTab)
			Next cell
			Console.WriteLine()
		Next row
	End Sub
End Class
VB   C#

首先,我们包含了所需的命名空间。 IronXL 库提供的类和方法包含在 IronXL 命名空间中。 我们希望阅读的 Excel 文件的路径(sample.xlsx)具体要求如下 WorkBook 用于加载 Excel 文件。Excel 工作簿由WorkBook对象表示,该对象由Load()函数。 使用工作簿,我们可以使用 workbook.WorkSheets' 访问第一个工作表[0]. 我们使用嵌套的 foreach 循环遍历工作表的行和列。 我们将每个单元格的值输出到控制台。

如何使用 C# 将 PowerPoint 转换为图像:图 7 - 控制台输出。

要了解有关代码的更多信息,请参阅IronXL 读取 Excel 示例.

结论

在许多软件应用程序中,需要使用 C# 将 PowerPoint 演示文稿转换为照片。 无论是否使用 Microsoft.Office.Interop.PowerPoint 命名空间,都可以快速完成翻译过程。 本文的代码示例将帮助您在 C# 应用程序中轻松加入 PowerPoint 到图片的转换功能,为信息发布和修改创造大量机会。

不要求在目标计算机上安装 Excel 或依赖 Interop 库、IronXLC#.NET》为在 C# 中执行 Excel 操作提供了一种快速有效的方法。 使用 IronXL 在其 C# 应用程序中处理 Excel 数据的开发人员会发现它非常有用,因为它通过用户友好的 API 和广泛的功能集简化了读取、写入和更改 Excel 文件等操作。 IronXL.Excel 提供了一个可靠的解决方案,可以提高 Excel 相关开发项目的效率和适应性,无论您是创建报表、处理数据,还是自动处理电子表格杂务。

A免费试用 IronXL我们还提供了包括广泛功能和支持在内的".NET "和 "Python "版本。 访问IronXL 许可信息以获得全面、最新的许可信息。 访问Iron 软件网站了解有关 Iron Software 产品的更多信息。

< 前一页
如何将PDF旋转180度(初学者教程)
下一步 >
如何使用 C# 创建 PowerPoint 演示文稿

准备开始了吗? 版本: 2024.12 刚刚发布

免费NuGet下载 总下载量: 11,781,565 查看许可证 >