IRONSOFTWAREHOME

Jak exportować i zapisywać PDF-y w IronPDF C#

Curtis Chau
Curtis Chau
Updated: 29 czerwca 2026

IronPDF eksportuje renderowany PdfDocument do PDF w C# poprzez SaveAs na dysk, właściwości Stream i BinaryData dla pamięci oraz SaveAsPdfA, SaveAsPdfUA i SaveAsRevision w formacie do archiwizacji, dostępności i wersjonowania. Każda metoda przyjmuje dokument, który już renderowałeś, i zapisuje go w miejscu przeznaczenia, które potrzebuje twoja aplikacja, niezależnie od tego, czy jest to ścieżka pliku, bufor w pamięci, czy odpowiedź HTTP.

Ten przewodnik przeprowadza przez każdy cel eksportu, od jednoliniowego zapisu pliku po bezpośrednie serwowanie PDF w przeglądarce oraz metody, które produkują wyjście oznaczone pod kątem zgodności.

Szybki start: Eksportuj HTML do PDF w C#

Renderuj HTML i zapisz wynik na dysku jednym stwierdzeniem. Wywołanie RenderHtmlAsPdf zwraca PdfDocument, a SaveAs zapisuje go.

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2Skopiuj i uruchom ten fragment kodu.

    new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>HelloPDF</h1>").SaveAs("myExportedFile.pdf");
    C#
  3. 3Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną
    arrow pointer

Jakie są opcje zapisywania PDF-ów?

IronPDF zapisuje PdfDocument na cztery rodzaje miejsc docelowych: plik na dysku, w pamięci MemoryStream, surowy byte[] oraz plik zgodny z tagowaniem do archiwizacji, dostępności lub wersji przyrostowej. Sekcje poniżej obejmują każdy cel z przetestowanego przykładu, zaczynając od najprostszego zapisu pliku i kończąc na specjalistycznych metodach eksportu.

Jak zapisać PDF na dysku

Użyj metody SaveAs, aby zapisać PdfDocument do ścieżki pliku. To bezpośrednia droga dla aplikacji desktopowych lub dowolnego procesu serwerowego, który utrzymuje PDF-y w systemie plików.

// Complete example for saving PDF to disk
using IronPdf;

// Initialize the Chrome PDF renderer
var renderer = new ChromePdfRenderer();

// Create HTML content with styling
string htmlContent = @"
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #333; }
        .content { line-height: 1.6; }
    </style>
</head>
<body>
    <h1>Invoice #12345</h1>
    <div class='content'>
        <p>Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>
        <p>Thank you for your business!</p>
    </div>
</body>
</html>";

// Render HTML to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Save to disk with standard method
pdf.SaveAs("invoice_12345.pdf");

// Save with password protection for sensitive documents
pdf.Password = "secure123";
pdf.SaveAs("protected_invoice_12345.pdf");

To samo przykład również ustawia właściwość Password przed drugą operacją zapisu, co szyfruje plik tak, że nie można go otworzyć bez tego hasła. Dla lepszej kontroli nad tym, co odbiorca może zrobić z plikiem, zobacz przewodnik po uprawnieniach do PDF-ów i hasłach.

Wynik

Jak zapisać PDF do strumienia pamięci

Właściwość Stream zwraca dokument jako System.IO.MemoryStream. Sięgaj po to, kiedy musisz przekazać PDF do innej metody, załadować, lub wysłać e-mailem bez uprzedniego zapisywania tymczasowego pliku. Przeczytaj więcej o pracy ze strumieniami pamięci dla PDF.

// Example: Save PDF to MemoryStream
using IronPdf;
using System.IO;

var renderer = new ChromePdfRenderer();

// Render HTML content
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Monthly Report</h1><p>Sales figures...</p>");

// Get the PDF as a MemoryStream
MemoryStream stream = pdf.Stream;

// Example: Upload to cloud storage or database
// UploadToCloudStorage(stream);

// Example: Email as attachment without saving to disk
// EmailService.SendWithAttachment(stream, "report.pdf");

// Remember to dispose of the stream when done
stream.Dispose();

Wynik

Jak zapisać dane w formacie binarnym

Właściwość BinaryData zwraca dokument jako byte[]. Tablica bajtów odpowiada kolumnom bazy danych, wpisom do pamięci podręcznej i interfejsom API, które akceptują surowe bajty zamiast strumienia.

// Example: Convert PDF to binary data
using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure rendering options for better quality
renderer.RenderingOptions = new ChromePdfRenderOptions()
{
    MarginTop = 20,
    MarginBottom = 20,
    MarginLeft = 10,
    MarginRight = 10,
    PaperSize = IronPdf.Rendering.PdfPaperSize.A4
};

// Render content to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Contract Document</h1>");

// Get binary data
byte[] binaryData = pdf.BinaryData;

// Example: Store in database
// database.StorePdfDocument(documentId, binaryData);

// Example: Send via API
// apiClient.UploadDocument(binaryData);

Kiedy potrzebujesz odwrotnego kierunku, ładowanie bajtów z powrotem do edytowalnego dokumentu, przewodnik po konwersji PDF na strumień pamięci to obejmuje.

Wynik

Jak serwować PDF z serwera WWW do przeglądarki?

Aby zwrócić PDF przez HTTP, wyślij bajty jako odpowiedź plikową, nie jako HTML. Zarówno Stream jak i BinaryData podłączają się bezpośrednio do typów wyników plików, które ASP.NET dostarcza, więc kontroler renderuje dokument i zwraca go, nigdy nie dotykając dysku.

Jak eksportować PDF w MVC?

W ASP.NET Core MVC, opakuj Stream w FileStreamResult, aby wywołać pobieranie, lub przekaż BinaryData do File, aby wyświetlić PDF online. Dwie poniższe operacje pokazują obie. To naturalnie pasuje do renderowania widoków CSHTML na PDF.

// MVC controller methods for PDF export
public IActionResult DownloadInvoice(int invoiceId)
{
    // Generate your HTML content
    string htmlContent = GenerateInvoiceHtml(invoiceId);

    // Render the PDF with IronPDF
    var renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);

    // Take the PDF stream and rewind it
    MemoryStream stream = pdf.Stream;
    stream.Position = 0;

    // Returning a FileStreamResult prompts a download in the browser
    return new FileStreamResult(stream, "application/pdf")
    {
        FileDownloadName = $"invoice_{invoiceId}.pdf"
    };
}

public IActionResult ViewInvoice(int invoiceId)
{
    var renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf(GenerateInvoiceHtml(invoiceId));

    // Returning BinaryData with no filename displays the PDF inline
    return File(pdf.BinaryData, "application/pdf");
}
C#

Jak eksportować PDF w ASP.NET WebForms?

Tradycyjne aplikacje ASP.NET WebForms zapisują bajty poprzez obiekt Response. Skonfiguruj opcje renderowania raz, pobierz BinaryData i przesyłaj go do klienta.

// ASP.NET WebForms PDF export
protected void ExportButton_Click(object sender, EventArgs e)
{
    var renderer = new ChromePdfRenderer();

    // Configure rendering options
    renderer.RenderingOptions = new ChromePdfRenderOptions()
    {
        PaperSize = IronPdf.Rendering.PdfPaperSize.Letter,
        PrintHtmlBackgrounds = true,
        CreatePdfFormsFromHtml = true
    };

    // Render from custom HTML
    PdfDocument MyPdfDocument = renderer.RenderHtmlAsPdf(GetReportHtml());

    // Retrieve the PDF bytes
    byte[] Binary = MyPdfDocument.BinaryData;

    // Write the bytes to the response as a download
    Response.Clear();
    Response.ContentType = "application/octet-stream";
    Response.AddHeader("Content-Disposition",
        "attachment; filename=report_" + DateTime.Now.ToString("yyyyMMdd") + ".pdf");
    Context.Response.OutputStream.Write(Binary, 0, Binary.Length);
    Response.Flush();
    Response.End();
}
C#

Moją ulubioną biblioteką tego typu jest IronPDF. Umożliwia ona szybkie i efektywne manipulowanie plikami PDF. Posiada także wiele cennych funkcji, takich jak eksport do formatu PDF/A i cyfrowe podpisywanie dokumentów PDF.

Milan Jovanovic

Microsoft MVP

Zobacz studium przypadku

IronOCR pozwala nam oszczędzić 40 000 USD rocznie na ręcznym przetwarzaniu, jednocześnie zwiększając produktywność i uwalniając zasoby do zadań o wysokim wpływie. Gorąco polecam.

Brent Matzelle

Dyrektor technologiczny, OPYN

Zobacz studium przypadku

IronSuite odgrywa kluczową rolę w naszej działalności. Są to narzędzia zwiększające wydajność w całej firmie, w tym tworzenie planów pięter i poprawa zarządzania zapasami.

David Jones

Główny inżynier oprogramowania, Agorus Build

Zobacz studium przypadku

Jak eksportować PDF/A, PDF/UA i rewizje?

Poza ogólnymi celami zapisu, IronPDF zapisuje trzy formaty określające zgodność. SaveAsPdfA produkuje plik archwizacyjny, SaveAsPdfUA produkuje oznaczony plik dostępności, a SaveAsRevision dodaje przyrostową rewizję do istniejącego dokumentu.

Jak zapisać archiwum PDF/A

SaveAsPdfA zapisuje samodzielny plik, który spełnia standard ISO PDF/A dla długoterminowego przechowywania, osadzając czcionki i dane kolorystyczne, które czytnik będzie potrzebować w przyszłości. Argument PdfAVersions wybiera poziom zgodności, taki jak PdfA3b.

using IronPdf;

var renderer = new ChromePdfRenderer();

// Render the document you want to archive
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Archived Document</h1>");

// Save as a PDF/A-3b file for long-term archiving.
// PdfAVersions controls the conformance level (PdfA1b, PdfA2b, PdfA3b, PdfA4, and others).
pdf.SaveAsPdfA("archive-pdfa.pdf", IronPdf.PdfAVersions.PdfA3b);
C#

Wynik

Jak zapisać dostępny plik PDF/UA

SaveAsPdfUA zapisuje oznakowany PDF, który spełnia standard dostępności PDF/UA, na którym czytniki ekranu polegają, aby nawigować po dokumencie. Trzeci argument ustawia język dokumentu, aby technologia wspomagająca czytała go odpowiednim głosem.

using IronPdf;

var renderer = new ChromePdfRenderer();

// Render content that should be tagged for assistive technology
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Accessible Document</h1><p>Tagged for screen readers.</p>");

// Save as a PDF/UA-1 file. The last argument sets the document's primary
// language, which screen readers use to choose the correct voice.
pdf.SaveAsPdfUA("accessible-pdfua.pdf", IronPdf.PdfUAVersions.PdfUA1, IronPdf.NaturalLanguages.English_UnitedKingdom);
C#

Wynik

Jak zapisać inkrementalną rewizję

SaveAsRevision dodaje zmiany do pliku zamiast go nadpisywać, więc wcześniejsze wersje, w tym wszelkie podpisy cyfrowe, pozostają nienaruszone. Dokument musi być otwarty z ChangeTrackingModes.EnableChangeTracking, aby zapis przyrostowy działał.

using IronPdf;
using IronPdf.Rendering;

var renderer = new ChromePdfRenderer();

// Create and save the original revision of the document
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Versioned Document</h1>");
pdf.SaveAs("revision-base.pdf");

// Re-open with change tracking enabled so the next save appends a revision
// instead of rewriting the file. This preserves earlier signed revisions.
PdfDocument loaded = PdfDocument.FromFile("revision-base.pdf", null, null, ChangeTrackingModes.EnableChangeTracking);

// Write an incremental revision on top of the existing bytes
loaded.SaveAsRevision("revision-v2.pdf");
C#

Wynik

Jak eksportować PDF asynchronicznie?

Renderowanie blokuje wywołujący wątek do zakończenia pracy przez silnik Chromium. W żądaniu sieciowym lub interfejsie desktopowym, zamiast tego wywołaj RenderHtmlAsPdfAsync i poczekaj na niego, a następnie zapisz zwrócony dokument przy użyciu tej samej metody SaveAs. To utrzymuje wątek wolny, gdy renderizacja jest uruchomiona.

using IronPdf;
using System.Threading.Tasks;

var renderer = new ChromePdfRenderer();

// Render off the calling thread so a web request or UI stays responsive
PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Async Generated PDF</h1>");

// SaveAs writes the finished document to disk once the render completes
pdf.SaveAs("async-render.pdf");
C#

Wynik

Wnioski

IronPDF eksportuje renderowany PdfDocument na dysk, do pamięci, odpowiedzi HTTP lub pliku oznakowanego zgodnego z normami, każdy przez jedną metodę na już zbudowanym dokumencie. Wybierz miejsce docelowe, które odpowiada miejscu, do którego muszą trafić bajty, i zastosuj SaveAsPdfA, SaveAsPdfUA lub SaveAsRevision, gdy wynik musi spełniać standardy archiwizacji, dostępności lub wersjonowania.

Stąd, trzymaj bajty z dala od dysku całkowicie, używając przepływu strumienia pamięci PDF, lub zabezpiecz zapisany plik używając uprawnienia i hasła do PDF.

Często Zadawane Pytania

Jak wyeksportować zawartość HTML do PDF w C#?

Możesz eksportować HTML do PDF w C# używając klasy ChromePdfRenderer z IronPDF. Utwórz instancję renderera, użyj metody RenderHtmlAsPdf(), aby skonwertować zawartość HTML, a następnie zapisz ją za pomocą metody SaveAs(). IronPDF pozwala na łatwą konwersję ciągów HTML, plików lub adresów URL bezpośrednio do dokumentów PDF.

Jakie są różne metody zapisywania PDF przy użyciu C#?

IronPDF dostarcza różnych metod zapisywania PDF: SaveAs() do zapisywania na dysku, Stream do serwowania PDF w aplikacjach internetowych bez tworzenia tymczasowych plików i BinaryData do uzyskiwania PDF w postaci tablicy bajtów. Każda metoda w IronPDF obsługuje różne przypadki użycia, od prostego przechowywania plików po dynamiczne dostarczanie internetowe.

Czy mogę zapisać PDF w pamięci zamiast na dysku?

Tak, IronPDF pozwala zapisywać PDF-y w pamięci używając System.IO.MemoryStream. Jest to przydatne w aplikacjach webowych, gdzie chcesz serwować PDF-y bezpośrednio użytkownikom, bez tworzenia tymczasowych plików na serwerze. Możesz użyć właściwości Stream lub skonwertować PDF na dane binarne.

Jak dodać ochronę hasłem podczas zapisywania PDF?

IronPDF umożliwia ochronę hasłem przez ustawienie właściwości Password w obiekcie PdfDocument przed zapisaniem. Przypisz po prostu łańcuch hasła do pdf.Password, a następnie użyj SaveAs(), by utworzyć chroniony hasłem plik PDF, który wymaga hasła do otwarcia.

Czy mogę serwować PDF-y bezpośrednio do przeglądarek internetowych bez zapisywania na dysku?

Tak, IronPDF pozwala serwować PDF-y bezpośrednio do przeglądarek internetowych jako dane binarne. Możesz użyć właściwości BinaryData, aby uzyskać PDF jako tablicę bajtów i serwować go przez strumień odpowiedzi aplikacji webowej, eliminując potrzebę przechowywania tymczasowych plików.

Jaki jest najprostszym sposobem konwersji i zapisu HTML jako PDF w jednej linii?

IronPDF dostarcza rozwiązania w jednej linii: new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("Your HTML").SaveAs("output.pdf"). Tworzy to renderera, konwertuje HTML do PDF i zapisuje go na dysku w jednym poleceniu.

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ęczników.

...
Czytaj więcej

Gotowy, aby rozpocząć?

Nuget Downloads 20,667,543Wersja:2026.7właśnie wydany

Odbierz swój BEZPŁATNY

30-dniowy klucz próbny natychmiast.

bullet_checkedNie wymaga karty kredytowej ani tworzenia konta
test_punktorówTestuj w produkcji
bez znaków wodnych
kalendarz_punktorów30 dni w pełni
funkcjonalny produkt
wsparcie_punktorów24/5 wsparcie techniczne
w trakcie okresu próbnego
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.7

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz opcję Przeglądaj i wyszukaj „IronPdf”
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.7

Pobierz teraz

lub pobierz instalator Windows tutaj.

  1. Pobierz i rozpakuj IronPDF do lokalizacji takiej jak ~/Libs w katalogu Solution
  2. W Eksploratorze rozwiązań programu Visual Studio kliknij prawym przyciskiem myszy opcję Odwołania. Wybierz opcję Przeglądaj, „IronPdf.dll”

Licencje od 749 USD

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta