Przejdź do treści stopki
NARZęDZIA PPT

Jak uzyć C# do konwersji PowerPoint na obraz

Potrzeba konwersji prezentacji PowerPoint do formatów obrazków często występuje w dziedzinie rozwoju oprogramowania. Wielu deweloperów uważa, że przydatne jest programowe konwertowanie plików PowerPoint na zdjęcia, niezależnie od tego, czy jest to do generowania podglądów, tworzenia miniatur, czy integracji z systemami. Ten artykuł wyjaśni, jak przeprowadzić tę operację przy użyciu C# ppt to image i zawiera kilka przykładowego kodu, aby pomóc Ci w tym procesie.

Jak użyć C# do konwersji PowerPoint na obraz

  1. Utwórz instancję aplikacji PowerPoint.
  2. Otwórz prezentację, używając tej instancji.
  3. Sprawdź i utwórz folder wyjściowy.
  4. Przejdź przez slajdy i wyeksportuj slajdy do obrazów.
  5. Zamknij prezentację i zakończ aplikację.

Konwertuj prezentację PowerPoint na formaty obrazów?

Przyjrzyjmy się szybko znaczeniu konwersji slajdów PowerPoint na zdjęcia, zanim zagłębimy się w szczegóły. Choć PowerPoint to świetne narzędzie do tworzenia dynamicznych prezentacji, nie zawsze jest możliwe udostępnienie tych plików w ich oryginalnym formacie. Czasami wymagane są tylko określone slajdy lub zdjęcia z prezentacji, a innym razem różne systemy i ustawienia mogą nie pozwalać na bezpośrednie renderowanie plików PowerPoint. Wszystko obejmujące rozwiązanie, które jest proste do udostępniania i przeglądania na różnych urządzeniach i aplikacjach, jest zapewniane przez przekształcanie prezentacji PowerPoint na obrazy.

Używanie biblioteki PowerPoint Interop

Istnieje kilka metod przekształcania prezentacji PowerPoint na zdjęcia w C#. Użycie przestrzeni nazw [Microsoft.Office.Interop.PowerPoint](https://learn.microsoft.com/en-us/previous-versions/office/office-12/ff761925(v=office.12), która oferuje klasy i metody do programowego interfejsowania się z aplikacjami PowerPoint, jest popularnym podejściem. Zapewnia to rozbudowane możliwości pracy z plikami PowerPoint.

Utwórz nowy projekt Visual Studio

Postępuj zgodnie z poniższymi krokami, aby utworzyć nowy projekt w Visual Studio:

Uruchom IDE Visual Studio. Upewnij się, że masz zainstalowane Visual Studio na swoim komputerze przed użyciem.

Uruchom nowy projekt:

Wybierz Plik, Nowy, a na końcu Projekt.

Jak używać C# do konwertowania PowerPoint do obrazu: Rysunek 1 - Otwórz Visual Studio i wybierz Plik - Nowy - Projekt.

Z okna "Utwórz nowy projekt" wybierz swój ulubiony język programowania (np. C#) z lewej strony.

Następnie wybierz szablon "Console App" lub "Console App (.NET Core)" z listy dostępnych szablonów projektów.

Wypełnij sekcję "Nazwa", aby nadać nazwę swojemu projektowi.

How to Use C# to Convert PowerPoint to Image: Figure 2 - From the Create New Project box, select the C# programming language and Console App. Configure the Project name and location, then click on the Next button.

Wybierz miejsce przechowywania projektu.

Kliknij "Utwórz", aby rozpocząć pracę nad nowym projektem aplikacji konsolowej.

How to Use C# to Convert PowerPoint to Image: Figure 3 - Select the appropriate .NET Framework and click on the Create button.

Convert PowerPoint Slides to Images in C

Zacznijmy od zapoznania się z używaniem przestrzeni nazw Microsoft.Office.Interop.PowerPoint, aby konwertować slajdy PowerPoint na zdjęcia. Upewnij się, że wymagane zestawy są zainstalowane i dodane do Twojego projektu C# jako odwołania. Zazwyczaj zestawy te znajdują się przez bezpośrednie odwołanie do zestawów InterOp lub przez instalację Microsoft Office Primary Interop Assemblies (PIA).

Przykład kodu

using System.IO; // Import System.IO namespace for file handling
using Microsoft.Office.Interop.PowerPoint; // Import Interop PowerPoint namespace

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); // Convert PowerPoint slides to images
    }

    static void ConvertPptToImages(string pptFilePath, string outputFolder)
    {
        Application pptApplication = new Application(); // Create a new PowerPoint application instance
        Presentation pptPresentation = pptApplication.Presentations.Open(pptFilePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse); // Open the PowerPoint presentation

        if (!Directory.Exists(outputFolder)) // Check if the output folder exists
            Directory.CreateDirectory(outputFolder); // Create the output folder if it doesn't exist

        int slidesCount = pptPresentation.Slides.Count; // Get the number of slides in the presentation

        for (int i = 1; i <= slidesCount; i++) // Iterate through all slides
        {
            string outputPath = Path.Combine(outputFolder, $"Slide{i}.png"); // Set the output path for the current slide
            pptPresentation.Slides[i].Export(outputPath, "png", 1024, 768); // Export slide to PNG format
        }

        pptPresentation.Close(); // Close the PowerPoint presentation
        pptApplication.Quit(); // Quit the PowerPoint application
    }
}
using System.IO; // Import System.IO namespace for file handling
using Microsoft.Office.Interop.PowerPoint; // Import Interop PowerPoint namespace

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); // Convert PowerPoint slides to images
    }

    static void ConvertPptToImages(string pptFilePath, string outputFolder)
    {
        Application pptApplication = new Application(); // Create a new PowerPoint application instance
        Presentation pptPresentation = pptApplication.Presentations.Open(pptFilePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse); // Open the PowerPoint presentation

        if (!Directory.Exists(outputFolder)) // Check if the output folder exists
            Directory.CreateDirectory(outputFolder); // Create the output folder if it doesn't exist

        int slidesCount = pptPresentation.Slides.Count; // Get the number of slides in the presentation

        for (int i = 1; i <= slidesCount; i++) // Iterate through all slides
        {
            string outputPath = Path.Combine(outputFolder, $"Slide{i}.png"); // Set the output path for the current slide
            pptPresentation.Slides[i].Export(outputPath, "png", 1024, 768); // Export slide to PNG format
        }

        pptPresentation.Close(); // Close the PowerPoint presentation
        pptApplication.Quit(); // Quit the PowerPoint application
    }
}
Imports System.IO ' Import System.IO namespace for file handling
Imports Microsoft.Office.Interop.PowerPoint ' Import Interop PowerPoint namespace

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) ' Convert PowerPoint slides to images
	End Sub

	Private Shared Sub ConvertPptToImages(ByVal pptFilePath As String, ByVal outputFolder As String)
		Dim pptApplication As New Application() ' Create a new PowerPoint application instance
		Dim pptPresentation As Presentation = pptApplication.Presentations.Open(pptFilePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse) ' Open the PowerPoint presentation

		If Not Directory.Exists(outputFolder) Then ' Check if the output folder exists
			Directory.CreateDirectory(outputFolder) ' Create the output folder if it doesn't exist
		End If

		Dim slidesCount As Integer = pptPresentation.Slides.Count ' Get the number of slides in the presentation

		For i As Integer = 1 To slidesCount ' Iterate through all slides
			Dim outputPath As String = Path.Combine(outputFolder, $"Slide{i}.png") ' Set the output path for the current slide
			pptPresentation.Slides(i).Export(outputPath, "png", 1024, 768) ' Export slide to PNG format
		Next i

		pptPresentation.Close() ' Close the PowerPoint presentation
		pptApplication.Quit() ' Quit the PowerPoint application
	End Sub
End Class
$vbLabelText   $csharpLabel

Przestrzeń nazw C# potrzebna do pracy z aplikacjami PowerPoint jest importowana za pomocą deklaracji Microsoft.Office.Interop.PowerPoint;. Punkt wejścia programu to metoda Main. Określa folder wyjściowy (outputFolder), w którym będą przechowywane utworzone zdjęcia, oraz ścieżkę do pliku PowerPoint (pptFilePath). Faktyczna transformacja prezentacji PowerPoint na zdjęcia jest obsługiwana przez tę metodę.

Plik prezentacji PowerPoint

Jak używać C# do konwertowania PowerPoint do obrazu: Rysunek 4 - PowerPoint ppt użyty w przykładowym kodzie.

Application pptApplication = new Application(); jest używany do uruchomienia nowej instancji programu PowerPoint. To umożliwia programową interakcję z PowerPoint. Użycie pptApplication.Presentations umożliwia otwarcie pliku prezentacji PowerPoint wskazanego przez funkcję pptFilePath.Open(). Funkcja ta zwraca obiekt Prezentacja, który reprezentuje otwartą prezentację. Ustalamy, czy obecny jest folder wyjściowy "outputFolder". Jeśli nie, używamy metody Directory.CreateDirectory(), aby go utworzyć.

Wynik konsoli

Jak używać C# do konwertowania PowerPoint do obrazu: Rysunek 5 - Wynik w konsoli.

Używamy pętli for, aby przejść przez każdy slajd w prezentacji. pptPresentation dostarcza całkowitą liczbę slajdów, używając właściwości Slides.Count. Używamy ścieżki folderu wyjściowego i indeksu slajdu, aby utworzyć ścieżkę wyjściową dla obrazu każdego slajdu (jako Slide{i}.png). Następnie używamy pptPresentation, aby wyeksportować slajd PowerPoint jako obraz (w tym przykładzie w formacie obrazu PNG), używając funkcji Export(). Parametry to format zdjęcia (format "png") oraz rozmiar (szerokość: 1024, wysokość: 768). Na koniec używamy pptPresentation.Close() do zakończenia prezentacji i pptApplication.Quit() do zakończenia sesji PowerPoint. Aby odpowiednio zwolnić zasoby systemowe, użyj Quit().

Wyjście - Konwertuj PowerPoint na obrazy PNG

Jak używać C# do konwertowania PowerPoint do obrazu: Rysunek 6 - Wynik eksportu slajdów PowerPoint do obrazów PNG.

IronPPT

IronPPT to dedykowana biblioteka .NET od Iron Software do pracy z plikami PowerPoint (PPT/PPTX) używając C# lub VB.NET—bez konieczności posiadania zainstalowanego Microsoft Office ani komponentów Office Interop.

Najważniejsze cechy

  • Przetwarzanie PowerPoint bez Office: Wczytuj, edytuj lub twórz pliki .pptx (i .ppt) na dowolnej platformie .NET—Windows, macOS, Linux, Docker, czy Azure—bez zainstalowanego PowerPoint.
  • Typy slajdów i kontrola układu: kontrola rozmiaru, orientacji, tła i układów głównych.
  • Wsparcie dla bogatej treści: dodawaj i stylizuj tekst (czcionkę, rozmiar, kolor, wyrównanie), rysuj kształty, wstawiaj obrazy, oraz konfiguruj wykresy lub tabele—wszystko za pomocą płynnego API.
  • Eksport obrazów wysokiej jakości: każdy Slide może być zapisany jako PNG lub JPEG w niestandardowych rozdzielczościach z użyciem metod Save() lub Export() (np. presentation.Save("Slide1.png", width:1200, height:800)).
  • Wsparcie dla wielu wersji .NET: .NET Framework 4.6.2+, .NET Core 3.1, .NET 5–9, oraz .NET 6/7/8 w środowiskach Azure lub kontenerowych.
  • Bezpieczeństwo serwera i przyjazne dla wątków: idealny dla usług w tle, web API lub zadań CI/CD.

Zainstaluj IronPPT

Dodaj pakiet NuGet do swojego projektu używając jednej z metod:

Install-Package IronPPT

lub za pomocą GUI Menedżera Pakietów NuGet Visual Studio (wyszukaj "IronPPT"). Po instalacji zaimportuj go, dodając:

using IronPPT;
using IronPPT;
Imports IronPPT
$vbLabelText   $csharpLabel

Aby odblokować pełne możliwości, ustaw swój klucz licencyjny lub użyj darmowego klucza testowego na 30 dni:

IronPPT.License.LicenseKey = "YOUR_LICENSE_KEY";
IronPPT.License.LicenseKey = "YOUR_LICENSE_KEY";
IronPPT.License.LicenseKey = "YOUR_LICENSE_KEY"
$vbLabelText   $csharpLabel

Konwertuj slajdy PowerPoint na obrazy z IronPPT

Za pomocą IronPPT, konwersja slajdów na obrazy jest czysta i zwięzła. Oto idomatyczny przykład C#, pokazujący jak:

using IronPPT;
using System.IO;

// Optional: apply the license key
// IronPPT.License.LicenseKey = "YOUR_LICENSE_KEY";

var presentation = PresentationDocument.Load("input.pptx");

if (!Directory.Exists("images"))
    Directory.CreateDirectory("images");

for (int i = 0; i < presentation.Slides.Count; i++)
{
    var slide = presentation.Slides[i];
    string filePath = Path.Combine("images", $"slide{i+1}.png");
    slide.SaveAsImage(filePath, width: 1024, height: 768);
}

presentation.Close();
using IronPPT;
using System.IO;

// Optional: apply the license key
// IronPPT.License.LicenseKey = "YOUR_LICENSE_KEY";

var presentation = PresentationDocument.Load("input.pptx");

if (!Directory.Exists("images"))
    Directory.CreateDirectory("images");

for (int i = 0; i < presentation.Slides.Count; i++)
{
    var slide = presentation.Slides[i];
    string filePath = Path.Combine("images", $"slide{i+1}.png");
    slide.SaveAsImage(filePath, width: 1024, height: 768);
}

presentation.Close();
Imports IronPPT
Imports System.IO

' Optional: apply the license key
' IronPPT.License.LicenseKey = "YOUR_LICENSE_KEY";

Private presentation = PresentationDocument.Load("input.pptx")

If Not Directory.Exists("images") Then
	Directory.CreateDirectory("images")
End If

For i As Integer = 0 To presentation.Slides.Count - 1
	Dim slide = presentation.Slides(i)
	Dim filePath As String = Path.Combine("images", $"slide{i+1}.png")
	slide.SaveAsImage(filePath, width:= 1024, height:= 768)
Next i

presentation.Close()
$vbLabelText   $csharpLabel

To podejście całkowicie unika używania COM. IronPPT obsługuje paginację, skalowanie wektorowe i renderowanie obrazów wewnętrznie—więc twoje obrazy przypominają wygląd i odczucia PowerPoint.

Dla bardziej zaawansowanego użycia możesz kontrolować kolejność slajdów, ponownie używać szablonów, dodawać tabele czy wykresy, lub wstawiać niestandardowe obrazy SVG/wektorowe (zobacz dogłębną dokumentację API dla pełnego rozbicia klas i metod).

Wnioski

W wielu nowoczesnych aplikacjach .NET, konwersja prezentacji PowerPoint do obrazów jest niezbędna—dla podglądów dokumentów, zautomatyzowanego raportowania, czy dalszego przetwarzania. Możesz używać komponentów Microsoft Office Interop do tego zadania, ale to niesie wiele ograniczeń—instalacja Office, problemy ze stabilnością, obawy dotyczące licencjonowania, i ograniczenia platformowe.

Zamiast tego, IronPPT oferuje pełnofunkcjonalne, wysokowydajne i międzypaltformowe API do konwersji plików .pptx na obrazy—od pojedynczych slajdów po całe zestawy. Niezależnie od tego, czy operujesz w środowisku klienckim, web API, czy na serwerze bezgłowym, IronPPT dostarcza tę samą jakość i kontrolę, nie potrzebując przy tym Office. Zamień powyższy kod oparty na Interop na IronPPT i zacznij generować podglądy PowerPoint szybciej, bardziej niezawodnie i z pełną kontrolą .NET.

Odwiedź Dokumentacja API IronPPT lub zobacz szczegółowe przykłady kodu (w tym ich llms.txt indeks), aby odkryć więcej możliwości. Dostępna jest darmowa wersja testowa—wypróbuj ją i dodaj konwersję PowerPoint na obrazy do swojego zestawu narzędzi .NET już dziś!

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie