Przejdź do treści stopki
KORZYSTANIE Z IRONPDF

Jak zapisać plik PDF w C# (Przewodnik dla początkujących)

W tym artykule omówimy, jak używać IronPDF do zapisywania plików PDF z aplikacji Windows Forms lub dowolnej aplikacji .NET.

Biblioteka IronPDF to biblioteka .NET, która udostępnia łatwe w użyciu klasy i metody do generowania plików PDF oraz pracy z nimi w aplikacjach napisanych w języku C#. Pozwala programistom tworzyć, modyfikować i zapisywać pliki PDF za pomocą zaledwie kilku linii kodu, co czyni go doskonałym wyborem dla aplikacji Windows Forms.

Krok 1: Utwórz nową aplikację Windows Forms

Najpierw utwórz nowy projekt w Visual Studio. Oto kroki, które należy wykonać, aby utworzyć nową aplikację C# Windows Forms w programie Visual Studio 2022

  1. Otwórz program Visual Studio 2022, jak pokazano poniżej.

    Jak zapisać plik PDF w języku C# (samouczek dla początkujących), rysunek 1: Visual Studio 2022 Visual Studio 2022

  2. Kliknij "Utwórz nowy projekt" na stronie startowej lub przejdź do "Plik" > "Nowy" > "Projekt".
  3. W oknie dialogowym "Utwórz nowy projekt" wybierz opcję "Aplikacja Windows Forms" lub "Aplikacja Windows Forms (.NET Framework)" w sekcji "Utwórz nowy projekt", jak pokazano poniżej.

    Jak zapisać plik PDF w języku C# (samouczek dla początkujących), rysunek 2: Nowa aplikacja Forms Nowa aplikacja Forms

  4. Wpisz nazwę projektu i wybierz miejsce, w którym chcesz go zapisać.

    Jak zapisać plik PDF w języku C# (samouczek dla początkujących), rysunek 3: Lokalizacja projektu Lokalizacja projektu

  5. Wybierz .NET Framework. Wybierz .NET 7.0 z menu rozwijanego.
  6. Kliknij przycisk Utwórz.

    Jak zapisać plik PDF w języku C# (samouczek dla początkujących), rysunek 4: Dodatkowe informacje Dodatkowe informacje

  7. Visual Studio utworzy dla Ciebie nowy projekt aplikacji C# Windows Forms, z domyślnym formularzem o nazwie "Form1" dodanym do projektu, jak pokazano poniżej.

    Jak zapisać plik PDF w języku C# (samouczek dla początkujących), rysunek 5: Projekt Form1 Projekt Form1

To wszystko! Teraz zaczniemy tworzyć aplikację Windows Forms za pomocą projektanta, dodając kontrolki i funkcje do tworzenia i zapisywania plików PDF.

Krok 2: Zaprojektuj formularz

Możesz zaprojektować formularz zgodnie ze swoimi preferencjami. W tym samouczku stworzymy minimalistyczny projekt, dodając dwie etykiety, jedno pole tekstowe z obsługą formatowania oraz dwa przyciski.

Jak zapisać plik PDF w języku C# (samouczek dla początkujących), rysunek 6: Dodawanie przycisków do formularza Dodawanie przycisków do formularza

Krok 3: Zainstaluj IronPDF

Kolejnym krokiem jest zainstalowanie IronPDF w tym projekcie, aby móc korzystać z jego bogatych funkcji.

IronPDF można zainstalować za pomocą menedżera pakietów NuGet w Visual Studio. Możesz przejść do konsoli menedżera pakietów NuGet, wybierając opcję Narzędzia > Menedżer pakietów NuGet > Konsola menedżera pakietów.

Wpisz następujące polecenie i naciśnij Enter:

Install-Package IronPdf

To polecenie spowoduje pobranie i zainstalowanie pakietu IronPDF w Twoim projekcie. Po zainstalowaniu możemy zacząć korzystać z IronPDF.

Napisz kod do tworzenia i zapisywania plików PDF

Aby rozpocząć realizację, napisz dwie metody: Save_Click i getFilePath w klasie Form1.cs. Metody te są używane razem w celu zapisania zawartości pola tekstowego jako pliku PDF przy użyciu biblioteki klasy ChromePdfRenderer. Przejrzyjmy każdą metodę, aby zrozumieć, jak działa.

Metoda Save_Click (utwórz dokument PDF)

Poniższa metoda jest procedurą obsługi zdarzenia kliknięcia przycisku. Celem tej metody jest zapisanie zawartości pola tekstowego jako pliku PDF.

private void Save_Click(object sender, EventArgs e)
{
    // Get the file path to save the PDF file.
    string filename = getFilePath();

    // If the file path is not empty or null, proceed with saving the PDF file.
    if (!String.IsNullOrEmpty(filename))
    {
        // Create a new instance of the ChromePdfRenderer class.
        var renderer = new ChromePdfRenderer();

        // Render the file contents of the text box as a PDF document using the ChromePdfRenderer.
        var pdfDocument = renderer.RenderHtmlAsPdf(pdfContent.Text);

        // Save the PDF document to the specified file path using the SaveAs method.
        pdfDocument.SaveAs(filename);

        // Show a message box to indicate that the PDF file has been saved successfully.
        MessageBox.Show("PDF has been saved Successfully!");
    }
}
private void Save_Click(object sender, EventArgs e)
{
    // Get the file path to save the PDF file.
    string filename = getFilePath();

    // If the file path is not empty or null, proceed with saving the PDF file.
    if (!String.IsNullOrEmpty(filename))
    {
        // Create a new instance of the ChromePdfRenderer class.
        var renderer = new ChromePdfRenderer();

        // Render the file contents of the text box as a PDF document using the ChromePdfRenderer.
        var pdfDocument = renderer.RenderHtmlAsPdf(pdfContent.Text);

        // Save the PDF document to the specified file path using the SaveAs method.
        pdfDocument.SaveAs(filename);

        // Show a message box to indicate that the PDF file has been saved successfully.
        MessageBox.Show("PDF has been saved Successfully!");
    }
}
Private Sub Save_Click(ByVal sender As Object, ByVal e As EventArgs)
	' Get the file path to save the PDF file.
	Dim filename As String = getFilePath()

	' If the file path is not empty or null, proceed with saving the PDF file.
	If Not String.IsNullOrEmpty(filename) Then
		' Create a new instance of the ChromePdfRenderer class.
		Dim renderer = New ChromePdfRenderer()

		' Render the file contents of the text box as a PDF document using the ChromePdfRenderer.
		Dim pdfDocument = renderer.RenderHtmlAsPdf(pdfContent.Text)

		' Save the PDF document to the specified file path using the SaveAs method.
		pdfDocument.SaveAs(filename)

		' Show a message box to indicate that the PDF file has been saved successfully.
		MessageBox.Show("PDF has been saved Successfully!")
	End If
End Sub
$vbLabelText   $csharpLabel

Oto szczegółowy opis działania tej metody:

  1. Metoda wywołuje metodę getFilePath w celu uzyskania ścieżki do pliku, w którym zostanie zapisany plik PDF.
  2. Jeśli ścieżka do pliku nie jest pusta ani nie ma wartości null, metoda przechodzi do zapisywania pliku PDF.
  3. Metoda tworzy nową instancję klasy ChromePdfRenderer. Jest to biblioteka, która umożliwia konwersję treści HTML na dokumenty PDF przy użyciu silnika przeglądarki Google Chrome.
  4. Następnie metoda wykorzystuje metodę RenderHtmlAsPdf klasy ChromePdfRenderer do konwersji zawartości HTML pola tekstowego pdfContent na dokument PDF. Ten dokument PDF jest przypisany do zmiennej PdfDocument.
  5. Metoda ta zapisuje dokument PDF w określonej ścieżce pliku przy użyciu metody SaveAs klasy PdfDocument.
  6. Na koniec metoda wyświetla okno komunikatu informujące o pomyślnym zapisaniu pliku PDF.

Metoda getFilePath (zapisywanie plików PDF)

Ta metoda służy do wyświetlenia użytkownikowi SaveFileDialog w celu wybrania ścieżki, w której zostanie zapisany plik PDF.

public string getFilePath()
{
    // Create a new instance of the SaveFileDialog class.
    SaveFileDialog saveFileDialog1 = new SaveFileDialog();

    // Set the initial directory where the SaveFileDialog will open.
    saveFileDialog1.InitialDirectory = @"D:\";

    // Set the title of the SaveFileDialog.
    saveFileDialog1.Title = "Save the PDF Files";

    // Set the SaveFileDialog to check if the specified path exists.
    saveFileDialog1.CheckPathExists = true;

    // Set the default extension for the file type.
    saveFileDialog1.DefaultExt = ".pdf";

    // Set the filter to display only PDF files or all files.
    saveFileDialog1.Filter = "PDF files (*.pdf)|*.pdf|All files (*.*)|*.*";

    // Set the filter index to display the PDF filter as the default.
    saveFileDialog1.FilterIndex = 2;

    // Set the RestoreDirectory property to true so that the SaveFileDialog
    // restores the current directory before closing.
    saveFileDialog1.RestoreDirectory = true;

    // Show the SaveFileDialog and get the result.
    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        // If the user clicked the OK button in the SaveFileDialog, return the selected file path.
        return saveFileDialog1.FileName;
    }
    // If the user did not click the OK button, return an empty string.
    return String.Empty;
}
public string getFilePath()
{
    // Create a new instance of the SaveFileDialog class.
    SaveFileDialog saveFileDialog1 = new SaveFileDialog();

    // Set the initial directory where the SaveFileDialog will open.
    saveFileDialog1.InitialDirectory = @"D:\";

    // Set the title of the SaveFileDialog.
    saveFileDialog1.Title = "Save the PDF Files";

    // Set the SaveFileDialog to check if the specified path exists.
    saveFileDialog1.CheckPathExists = true;

    // Set the default extension for the file type.
    saveFileDialog1.DefaultExt = ".pdf";

    // Set the filter to display only PDF files or all files.
    saveFileDialog1.Filter = "PDF files (*.pdf)|*.pdf|All files (*.*)|*.*";

    // Set the filter index to display the PDF filter as the default.
    saveFileDialog1.FilterIndex = 2;

    // Set the RestoreDirectory property to true so that the SaveFileDialog
    // restores the current directory before closing.
    saveFileDialog1.RestoreDirectory = true;

    // Show the SaveFileDialog and get the result.
    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        // If the user clicked the OK button in the SaveFileDialog, return the selected file path.
        return saveFileDialog1.FileName;
    }
    // If the user did not click the OK button, return an empty string.
    return String.Empty;
}
Public Function getFilePath() As String
	' Create a new instance of the SaveFileDialog class.
	Dim saveFileDialog1 As New SaveFileDialog()

	' Set the initial directory where the SaveFileDialog will open.
	saveFileDialog1.InitialDirectory = "D:\"

	' Set the title of the SaveFileDialog.
	saveFileDialog1.Title = "Save the PDF Files"

	' Set the SaveFileDialog to check if the specified path exists.
	saveFileDialog1.CheckPathExists = True

	' Set the default extension for the file type.
	saveFileDialog1.DefaultExt = ".pdf"

	' Set the filter to display only PDF files or all files.
	saveFileDialog1.Filter = "PDF files (*.pdf)|*.pdf|All files (*.*)|*.*"

	' Set the filter index to display the PDF filter as the default.
	saveFileDialog1.FilterIndex = 2

	' Set the RestoreDirectory property to true so that the SaveFileDialog
	' restores the current directory before closing.
	saveFileDialog1.RestoreDirectory = True

	' Show the SaveFileDialog and get the result.
	If saveFileDialog1.ShowDialog() = DialogResult.OK Then
		' If the user clicked the OK button in the SaveFileDialog, return the selected file path.
		Return saveFileDialog1.FileName
	End If
	' If the user did not click the OK button, return an empty string.
	Return String.Empty
End Function
$vbLabelText   $csharpLabel

Oto szczegółowy opis działania tej metody:

  1. Metoda tworzy nową instancję klasy SaveFileDialog. Ta klasa jest częścią biblioteki Windows Forms i udostępnia okno dialogowe, które pozwala użytkownikowi wybrać ścieżkę, w której zostanie zapisany plik PDF.
  2. Metoda ustawia kilka właściwości obiektu SaveFileDialog w celu dostosowania jego zachowania. Właściwość InitialDirectory określa katalog, w którym okno dialogowe zostanie otwarte jako pierwsze. Właściwość Title określa tytuł okna dialogowego. Właściwość CheckPathExists określa, czy okno dialogowe powinno sprawdzić, czy podana ścieżka istnieje. Właściwość DefaultExt ustawia domyślne rozszerzenie pliku dla danego typu pliku. Właściwość Filter określa filtry typów plików wyświetlane w oknie dialogowym. Właściwość FilterIndex ustawia domyślny filtr do wyświetlenia. Wreszcie, właściwość RestoreDirectory określa, czy okno dialogowe powinno przywrócić bieżący katalog przed zamknięciem.
  3. Metoda wywołuje SaveFileDialog poprzez wywołanie jej metody ShowDialog. Ta metoda wyświetla okno dialogowe i zwraca wartość DialogResult, która wskazuje, czy użytkownik kliknął przycisk "OK", czy przycisk Anuluj.
  4. Jeśli użytkownik kliknie przycisk "OK", metoda zwraca ścieżkę do pliku wybranego przez użytkownika poprzez dostęp do właściwości FileName obiektu SaveFileDialog.
  5. Jeśli użytkownik kliknie przycisk "Anuluj" lub zamknie okno dialogowe, metoda zwraca pusty ciąg znaków.

Uruchommy projekt i zobaczmy wynik. Uruchom projekt, a otworzy się poniższy formularz.

Jak zapisać plik PDF w języku C# (samouczek dla początkujących), rysunek 7: Uruchamianie projektu Windows Forms Uruchamianie projektu Windows Forms

Wprowadź treść pliku PDF i kliknij przycisk "Zapisz", jak pokazano poniżej.

Jak zapisać plik PDF w języku C# (samouczek dla początkujących), rysunek 8: Okno dialogowe zapisu Okno dialogowe Zapisz

Powstaje następujący plik PDF.

Jak zapisać plik PDF w języku C# (samouczek dla początkujących), rysunek 9: Utworzony plik PDF Utworzono plik PDF

IronPDF zapewnia prosty sposób konwersji treści HTML na dokumenty PDF i zapisywania ich w wybranej przez użytkownika ścieżce plików przy użyciu klasy ChromePdfRenderer oraz okna dialogowego SaveFileDialog.

Wnioski

Zapisywanie plików PDF z aplikacji Windows Forms jest częstym wymaganiem, a IronPDF zapewnia łatwą w użyciu i elastyczną metodę realizacji tego zadania. W tym artykule pokazano, jak używać IronPDF do tworzenia, dodawania treści i zapisywania plików w aplikacji C# Windows Forms. Dzięki IronPDF programiści mogą generować wysokiej jakości pliki PDF ze swoich aplikacji za pomocą zaledwie kilku linii kodu.

IronPDF oferuje szereg funkcji, takich jak samouczek konwersji HTML do PDF, przykładowy kod scalania plików PDF, przewodnik po dzieleniu stron PDF, instrukcja wyodrębniania tekstu i obrazów oraz wiele innych. IronPDF jest bezpłatny do celów programistycznych i dostępny na licencji komercyjnej z bezpłatną wersją próbną, która pozwala programistom na wykorzystanie go w projektach komercyjnych i obejmuje dedykowane wsparcie techniczne oraz aktualizacje.

Ponadto IronPDF jest częścią pakietu Iron Suite, który jest zestawem komponentów oprogramowania .NET zawierającym biblioteki do:

Zakup kompletnego pakietu Iron Suite to opłacalne rozwiązanie, ponieważ można otrzymać wszystkie pięć produktów w cenie dwóch.

Często Zadawane Pytania

Jak zapisać plik PDF w aplikacji C# Windows Forms?

Możesz zapisać plik PDF w aplikacji C# Windows Forms za pomocą IronPDF, konfigurując formularz z kontrolkami, takimi jak pola tekstowe i przyciski, oraz implementując metodę Save_Click w celu renderowania i zapisania treści jako pliku PDF przy użyciu klasy ChromePdfRenderer.

Jakie kroki trzeba wykonać, żeby skonfigurować aplikację Windows Forms do zapisywania plików PDF przy użyciu języka C#?

Aby skonfigurować aplikację Windows Forms do zapisywania plików PDF, należy utworzyć nowy projekt w Visual Studio, dodać niezbędne kontrolki, takie jak etykiety i pole tekstowe z obsługą formatowania, a następnie zainstalować bibliotekę IronPDF za pomocą menedżera pakietów NuGet, aby móc korzystać z jej funkcji renderowania plików PDF.

Jak mogę przekonwertować zawartość HTML do formatu PDF w języku C#?

W języku C# można przekonwertować zawartość HTML do formatu PDF za pomocą metody RenderHtmlAsPdf biblioteki IronPDF, która pozwala pobierać ciągi znaków HTML i renderować je bezpośrednio do dokumentów PDF.

Jaka jest rola metody Save_Click w kontekście generowania plików PDF?

Metoda Save_Click działa jako procedurka obsługi zdarzeń w aplikacji, odpowiedzialna za przechwytywanie zdarzenia kliknięcia przycisku w celu zainicjowania procesu renderowania zawartości pola tekstowego do pliku PDF przy użyciu klas renderujących IronPDF.

Jak poprosić użytkowników o wybranie ścieżki do zapisania pliku PDF w aplikacji napisanej w języku C#?

W aplikacji napisanej w języku C# można poprosić użytkowników o wybranie ścieżki do zapisania pliku PDF za pomocą klasy SaveFileDialog, która pozwala skonfigurować interfejs do wyboru pliku i zwrócić wybraną ścieżkę do zapisania wyrenderowanego pliku PDF.

Jakie zaawansowane funkcje oferuje IronPDF do edycji plików PDF?

IronPDF oferuje zaawansowane funkcje, takie jak konwersja HTML do PDF, łączenie plików PDF, dzielenie stron PDF oraz wyodrębnianie tekstu i obrazów, zapewniając kompleksową Suite narzędzi do obróbki plików PDF w aplikacjach .NET.

Czy korzystanie z IronPDF do generowania plików PDF w projektach komercyjnych wiąże się z jakimikolwiek kosztami?

IronPDF jest bezpłatny do celów programistycznych w ramach licencji Trial. Jednak w przypadku projektów komercyjnych wymagana jest licencja komercyjna, która obejmuje takie korzyści, jak dedykowane wsparcie techniczne i regularne aktualizacje.

Czym jest pakiet Iron Suite i jakie korzyści zapewnia programistom?

Iron Suite to zbiór bibliotek .NET, zawierający narzędzia do generowania kodów kreskowych, manipulacji dokumentami Excel oraz obsługi plików PDF. Stanowi ekonomiczne rozwiązanie dla programistów, którzy potrzebują wielu funkcji w swoich aplikacjach.

Czy IronPDF jest kompatybilny z .NET 10 i jakie korzyści przynosi to dla zapisywania plików PDF w języku C#?

Tak — IronPDF w pełni obsługuje .NET 10, w tym projekty typu desktop, web i cross-platform. Tworzenie aplikacji przy użyciu .NET 10 zapewnia takie ulepszenia, jak szybsze działanie w czasie wykonywania, dostęp do nowoczesnych ulepszeń języka C# oraz ściślejszą integrację z funkcjami platformy, co pomaga zwiększyć wydajność tworzenia i zapisywania plików PDF za pomocą metod RenderHtmlAsPdf i SaveAs w IronPDF.

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

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie