PDF 工具

如何使用 C# 將 PowerPoint 轉換為圖像

Kannaopat Udonpant
坎納帕特·烏頓潘
2024年3月12日
分享:

介紹

轉換的必要性PowerPoint在軟體開發領域中,將簡報轉換為圖片格式是經常發生的事。 許多開發者發現,能夠以程式化的方式將 PowerPoint 文件轉換為照片非常有用,無論是用於生成預覽、創建縮圖,還是系統整合。 本文將說明如何使用 C# 進行 ppt 到圖像的轉換,並包括一些示例代碼來協助您完成。

介紹IronPPT:來自Iron Software的.NET PowerPoint庫

IronPPT 無縫加載和保存 PPTX 文件 - 不需要 Microsoft Office。 非常適合在任何 .NET 應用程式中自動化幻燈片、文本、形狀和圖像。 立即開始使用 IronPPT!

如何使用 C# 將 PowerPoint 轉換為圖片

  1. 創建 PowerPoint 應用程式實例。

  2. 使用實例打開簡報。

  3. 檢查並建立輸出資料夾。

  4. 逐步浏览幻灯片并將幻灯片导出为图像。

  5. 關閉簡報並退出應用程式。

將 PowerPoint 簡報轉換為圖像格式?

在深入探討細節之前,讓我們快速看看將 PowerPoint 幻燈片轉換為照片的重要性。 即使 PowerPoint 是製作動態簡報的絕佳工具,但並不總是能以其原始格式分享這些文件。 有時,只需要從簡報中提取特定的幻燈片或照片,而其他時候,不同的系統和設置可能無法直接渲染PowerPoint文件。 將 PowerPoint 簡報轉換為圖片,提供一個易於在各種設備和應用程式上共享和查看的全方位解決方案。

使用 PowerPoint Interop 庫

有幾種方法可以在 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)「從可用的專案模板列表中選擇模板。」

請完成「名稱」部分以為您的專案命名。

如何使用 C# 將 PowerPoint 轉換為圖像:圖 2 - 在「創建新項目」對話框中,選擇 C# 程式語言和主控台應用程式。設定專案名稱和位置,然後點擊「下一步」按鈕。

選擇專案的儲存位置。

點擊「Create」以開始創建新的主控臺應用程式專案。

如何使用C#將PowerPoint轉換為圖像:圖3 - 選擇適當的.NET Framework並點擊“Create”按鈕。

將 PowerPoint 幻燈片轉換為 C# 中的圖像

讓我們開始看看如何使用 Microsoft.Office.Interop.PowerPoint 命名空間將 PowerPoint 幻燈片轉換為圖片。 首先,確保所需的程序集已安裝並添加到您的 C# 專案中作為引用。這些程序集通常可以通過直接參考 InterOp 程序集或安裝 Microsoft Office 主互操作程序集來找到。(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();
    }
}

使用 Microsoft.Office.Interop.PowerPoint; 聲明可以導入處理 PowerPoint 應用程序所需的 C# 命名空間。 程式的入口點是 Main 方法。 它指定了輸出資料夾(outputFolder), 這是保存創建的照片的位置,還有 PowerPoint 文件的路徑(pptFilePath). 此方法負責將 PowerPoint 簡報實際轉換成照片。

PowerPoint 簡報檔案

如何使用 C# 將 PowerPoint 轉換為圖像:圖 4 - 用於代碼示例的 PowerPoint ppt。

Application pptApplication = new Application(); 用於啟動 PowerPoint 程式的新實例。 這使與 PowerPoint 的程式交互成為可能。 使用 pptApplication.Presentations,我們打開由 pptFilePath 指定的 PowerPoint 簡報文件。()函式。 此函數返回一個 Presentation 物件,代表打開的簡報。 我們判斷是否存在輸出資料夾 "outputFolder"。 如果沒有,我們使用方法 Directory.CreateDirectory()`來創建它。

控制台輸出

如何使用 C# 將 PowerPoint 轉換為圖像:圖 5 - 主控台輸出。

我們使用 for 迴圈來遍歷簡報中的每一張幻燈片。 pptPresentation 使用屬性 Slides.Count 提供總幻燈片數量。 我們使用輸出資料夾路徑和幻燈片索引來創建每個幻燈片圖片的輸出路徑。(作為 Slides{我}.png). 接下來,我們使用 pptPresentation 將 PowerPoint 投影片匯出為圖片(在此範例中,以 JPG 影像、PNG 影像格式)使用 Export()函式。 參數是圖片格式(“png” 格式)和大小(寬度:1024,高度:768). 最後,我們使用pptPresentation來結束簡報。 關閉()並使用pptApplication結束 PowerPoint 會話。 為了適當釋放系統資源,使用Quit().

輸出 - 將PowerPoint轉換為PNG圖像

如何使用C#將PowerPoint轉換為圖像:圖6 - 導出的PowerPoint幻燈片以PNG圖像輸出。

IronXL

一個受歡迎的 .NET 框架叫做IronXL使在 C# 中更容易操作 Excel 文件。 憑藉其廣泛的讀取、創建和編輯 Excel 文件的功能集,這是一款適用於廣泛用途的靈活工具。 以下是 IronXL 的一些主要功能:

  • 開發人員可以使用 IronXL 快速將數據寫入新的或現有的 Excel 文件,並從現有的 Excel 文件中讀取數據。IronXL. 這涵蓋訪問工作表和工作簿屬性,例如格式、公式和單元格值。
  • 使用 IronXL,開發人員可以將資料從各種來源(包括資料庫和 CSV 文件)匯入 Excel 試算表。 同樣地,Excel 文件中的資訊可以匯出為 CSV、HTML、XML 和 PDF 等其他檔案格式。
  • 開發人員可以使用IronXL動態添加、編輯和移除Excel電子表格中的工作表。 這根據應用需求提供數據組織和結構的靈活性。
  • IronXL 能夠精確地操作 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();
        }
    }
}

首先,我們包含所需的命名空間。 IronXL 庫提供的類別和方法包含在 IronXL 命名空間中。 我們希望讀取的 Excel 文件的路徑(sample.xlsx)是指定的。 WorkBook 用於載入 Excel 檔案。Excel 活頁簿由 WorkBook 物件表示,該物件由 Load() function. 使用工作簿,我們可以使用 workbook.WorkSheets 存取第一個工作表。[0]`. 使用嵌套的 foreach 循環,我們遍歷工作表的行和列。 我們將每個單元格的值輸出到控制台。

如何使用 C# 將 PowerPoint 轉換為圖片:圖 7 - 控制台輸出。

要了解更多關於代碼的信息,請參考IronXL 讀取 Excel 示例.

結論

在許多軟體應用中,需要使用C#將PowerPoint簡報轉換為照片。 使用或不使用 Microsoft.Office.Interop.PowerPoint 命名空間,該過程可能很快就能完成。 本文章的程式碼範例將幫助您輕鬆將 PowerPoint 轉換為圖片的功能納入 C# 應用程式中,創造大量資訊分發和修改的機會。

不需要在目標機器上安裝 Excel,也不依賴於 Interop 庫,IronXL提供了一種快速且有效的方法在 C# 中執行 Excel 操作。 使用 IronXL 在 C# 應用程式中處理 Excel 資料的開發人員會發現它很有用,因為它通過其用戶友好的 API 和豐富的功能集簡化了讀取、寫入和更改 Excel 文件的操作。 IronXL 提供可靠的解決方案,可提高與 Excel 相關開發項目中的效率和適應性,無論您是在創建報告、處理數據,還是自動化電子表格作業。

AIronXL 免費試用提供包含廣泛功能和支援的版本。 訪問IronXL 授權資訊有關授權的全面和最新資訊。 訪問Iron Software 網站了解更多關於 Iron Software 產品的資訊。

Kannaopat Udonpant
坎納帕特·烏頓潘
軟體工程師
在成為軟體工程師之前,Kannapat 在日本北海道大學完成了環境資源博士學位。在攻讀學位期間,Kannapat 也成為了車輛機器人實驗室的成員,該實驗室隸屬於生物生產工程學系。2022 年,他利用自己的 C# 技能,加入了 Iron Software 的工程團隊,專注於 IronPDF 的開發。Kannapat 珍視這份工作,因為他可以直接向負責撰寫大部分 IronPDF 程式碼的開發人員學習。除了同儕學習外,Kannapat 還享受在 Iron Software 工作的社交方面。當他不在撰寫程式碼或文件時,Kannapat 通常會在 PS5 上玩遊戲或重看《最後生還者》。
< 上一頁
如何將 PDF 旋轉 180 度(初學者教程)
下一個 >
如何使用 C# 創建 PowerPoint 演示文稿