Jak przeksztalcic ciag HTML w PDF w C# | IronPDF

How to Convert HTML String to PDF in C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF konwertuje ciągi HTML na dokumenty PDF w C# przy użyciu silnika renderowania Chrome, wspierając cały HTML5, CSS3 i JavaScript w pojedynczej linii kodu dla podstawowej konwersji. Biblioteka oferuje potężne funkcje do tworzenia PDF-ów, zachowując doskonałą wierność renderowania.

IronPDF pozwala deweloperom na łatwe tworzenie dokumentów PDF w C#, F# i VB.NET dla .NET Core i .NET Framework. IronPDF wspiera renderowanie dowolnego ciągu HTML do PDF, a proces renderowania wykorzystuje w pełni funkcjonalną wersję silnika Google Chromium. To zapewnia, że zawartość HTML wygląda dokładnie tak samo, jak w nowoczesnej przeglądarce internetowej, co jest idealne do generowania raportów, faktur i dokumentów z dynamicznej zawartości HTML.

Szybki start: Przekonwertuj ciąg HTML na PDF w kilka sekund

Przekształć ciągi HTML na pliki PDF za pomocą IronPDF. Ten przewodnik pokazuje, jak przekonwertować ciąg HTML na dokument PDF w C# przy minimalnym kodzie. Idealne dla deweloperów, którzy muszą zintegrować możliwości renderowania PDF w swoich projektach.

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf
  2. Skopiuj i uruchom ten fragment kodu.

    IronPdf.ChromePdfRenderer.StaticRenderHtmlAsPdf("<p>Hello World</p>").SaveAs("string-to-pdf.pdf");
  3. Wdrożenie do testowania w środowisku produkcyjnym

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

    arrow pointer


Jak przekonwertować prosty ciąg HTML na PDF?

Oto przykład renderowania ciągu HTML do formatu PDF przez IronPDF przy użyciu metody RenderHtmlAsPdf. Parametr to ciąg HTML do renderowania jako PDF. Ta metoda jest częścią klasy ChromePdfRenderer, która zapewnia szerokie możliwości kontroli nad opcjami renderowania dostosowanymi do potrzeb generowania plików PDF.

:path=/static-assets/pdf/content-code-examples/how-to/html-string-to-pdf.cs
using IronPdf;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer = New ChromePdfRenderer()

' Create a PDF from a HTML string using C#
Private pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")

' Export to a file or Stream
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Metoda RenderHtmlAsPdf zwraca obiekt PdfDocument, który zawiera informacje o pliku PDF i udostępnia metody do manipulowania plikiem PDF, w tym scalanie plików PDF, dodawanie znaków wodnych i ustawianie opcji zabezpieczeń.

PoradyW ASP.NET Core, Blazorze lub usługach działających w tle zaleca się stosowanie wariantu asynchronicznego RenderHtmlAsPdfAsync, aby uniknąć blokowania wątków. Zwracana wartość PdfDocument implementuje IDisposable, więc należy ją umieścić w bloku using w scenariuszach wymagających dużej przepustowości. ChromePdfRenderer jest bezpieczny dla wątków i może być instancjonowany jednokrotnie, a następnie ponownie wykorzystywany w różnych żądaniach w celu uzyskania lepszej wydajności.

Gdy ciąg HTML jest pobierany ze źródła zewnętrznego i konieczne jest wyłączenie dostępu do dysku lokalnego lub żądań międzydomenowych, przed renderowaniem należy ustawić IronPdf.Installation.EnableWebSecurity na true. To jest globalne ustawienie statyczne, a nie właściwość instancji na rendererze.

// Enable web security before rendering untrusted HTML
IronPdf.Installation.EnableWebSecurity = true;
// Enable web security before rendering untrusted HTML
IronPdf.Installation.EnableWebSecurity = true;
' Enable web security before rendering untrusted HTML
IronPdf.Installation.EnableWebSecurity = True
$vbLabelText   $csharpLabel

Dla skomplikówanej zawartości HTML zawierającej stylizację CSS, wzbogacaj swoje ciągi HTML stylem w linii lub odnośnikiem do zewnętrznych arkuszy stylów przy użyciu funkcji Base URLs & Asset Encoding:

// Example with inline CSS
var styledHtml = @"
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #333; border-bottom: 2px solid #0066cc; }
        p { line-height: 1.6; }
    </style>
</head>
<body>
    <h1>Professional Report</h1>
    <p>This PDF was generated from HTML with custom styling.</p>
</body>
</html>";

using var styledPdf = renderer.RenderHtmlAsPdf(styledHtml);
styledPdf.SaveAs("styled-output.pdf");
// Example with inline CSS
var styledHtml = @"
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #333; border-bottom: 2px solid #0066cc; }
        p { line-height: 1.6; }
    </style>
</head>
<body>
    <h1>Professional Report</h1>
    <p>This PDF was generated from HTML with custom styling.</p>
</body>
</html>";

using var styledPdf = renderer.RenderHtmlAsPdf(styledHtml);
styledPdf.SaveAs("styled-output.pdf");
Dim styledHtml As String = "
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #333; border-bottom: 2px solid #0066cc; }
        p { line-height: 1.6; }
    </style>
</head>
<body>
    <h1>Professional Report</h1>
    <p>This PDF was generated from HTML with custom styling.</p>
</body>
</html>"

Using styledPdf = renderer.RenderHtmlAsPdf(styledHtml)
    styledPdf.SaveAs("styled-output.pdf")
End Using
$vbLabelText   $csharpLabel

Jak wygląda wygenerowany plik PDF?

To jest plik wygenerowany przez kod:

Generowany PDF zachowuje dokładne formatowanie i stylizację z twojego HTML, co czyni go idealnym do generowania raportów PDF lub konwersji zawartości webowej na dokumenty gotowe do druku.

Jak mogę uwzględnić zewnętrzne zasoby przy konwersji HTML do PDF?

Ten przykład pokazuje, jak IronPDF ładuje zewnętrzne zasoby obrazu z opcjonalnego BasePath. Ustawienie właściwości BaseUrlOrPath zapewnia względną ścieżkę pliku lub kontekst adresu URL dla hiperłączy, obrazów, plików CSS i JavaScript. Jest to niezbędne przy pracy z obrazami w PDF lub gdy potrzebujesz odwołać się do zewnętrznych zasobów.

:path=/static-assets/pdf/content-code-examples/how-to/html-string-to-pdf-2.cs
using IronPdf;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer = New ChromePdfRenderer()

' Advanced Example with HTML Assets
' Load external html assets: Images, CSS and JavaScript.
' An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
Private myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
$vbLabelText   $csharpLabel

Dla zaawansowanych scenariuszy obejmujących skomplikówane układy lub dynamiczną zawartość, wykorzystaj wsparcie IronPDF dla renderowania JavaScript:

// Example with JavaScript-generated content
var jsHtml = @"
<html>
<head>
    <script>
        window.onload = function() {
            document.getElementById('dynamic').innerHTML = 
                'Generated on: ' + new Date().toLocaleString();
        };
    </script>
</head>
<body>
    <h1>Dynamic Content Example</h1>
    <div id='dynamic'></div>
</body>
</html>";

// Configure rendering to wait for JavaScript execution
renderer.RenderingOptions.WaitFor.RenderDelay(500); // milliseconds
using var dynamicPdf = renderer.RenderHtmlAsPdf(jsHtml, @"C:\site\");
dynamicPdf.SaveAs("dynamic-content.pdf");
// Example with JavaScript-generated content
var jsHtml = @"
<html>
<head>
    <script>
        window.onload = function() {
            document.getElementById('dynamic').innerHTML = 
                'Generated on: ' + new Date().toLocaleString();
        };
    </script>
</head>
<body>
    <h1>Dynamic Content Example</h1>
    <div id='dynamic'></div>
</body>
</html>";

// Configure rendering to wait for JavaScript execution
renderer.RenderingOptions.WaitFor.RenderDelay(500); // milliseconds
using var dynamicPdf = renderer.RenderHtmlAsPdf(jsHtml, @"C:\site\");
dynamicPdf.SaveAs("dynamic-content.pdf");
Imports System

' Example with JavaScript-generated content
Dim jsHtml As String = "
<html>
<head>
    <script>
        window.onload = function() {
            document.getElementById('dynamic').innerHTML = 
                'Generated on: ' + new Date().toLocaleString();
        };
    </script>
</head>
<body>
    <h1>Dynamic Content Example</h1>
    <div id='dynamic'></div>
</body>
</html>"

' Configure rendering to wait for JavaScript execution
renderer.RenderingOptions.WaitFor.RenderDelay(500) ' milliseconds
Using dynamicPdf = renderer.RenderHtmlAsPdf(jsHtml, "C:\site\")
    dynamicPdf.SaveAs("dynamic-content.pdf")
End Using
$vbLabelText   $csharpLabel

Pracując z zewnętrznymi zasobami, możesz potrzebować obsługiwać uwierzytelnianie lub specjalne nagłówki. IronPDF wspiera to poprzez funkcjonalność HTTP Request Header, pozwalając na dołączenie tokenów autoryzacji lub niestandardowych nagłówków przy pobieraniu zasobów.

Dłączego ustawienie BasePath jest ważne dla zasobów zewnętrznych?

To jest plik wygenerowany przez kod:

Prawidłowe ustawienie BasePath gwarantuje, że wszystkie odnośniki względne w kodzie HTML zostaną poprawnie rozpoznane. Bez tego IronPDF nie jest w stanie zlokalizować zewnętrznych zasobów takich jak obrazy, arkusze stylów czy skrypty. Jest to szczególnie ważne gdy:

  1. Konwertowanie HTML, który odwołuje się do zasobów lokalnego systemu plików
  2. Praca z systemami zarządzania treścią używającymi względnych URL
  3. Migracja istniejącej zawartości webowej do formatu PDF
  4. Tworzenie szablonów korzystających ze wspólnych zasobów

Dla zasobów webowych, użyj pełnego URL jako ścieżki bazowej:

// Using a web URL as base path
var webBasedPdf = renderer.RenderHtmlAsPdf(
    "<link rel='stylesheet' href='/styles/main.css'><h1>Web Content</h1>", 
    "https://mywebsite.com"
);
// Using a web URL as base path
var webBasedPdf = renderer.RenderHtmlAsPdf(
    "<link rel='stylesheet' href='/styles/main.css'><h1>Web Content</h1>", 
    "https://mywebsite.com"
);
' Using a web URL as base path
Dim webBasedPdf = renderer.RenderHtmlAsPdf(
    "<link rel='stylesheet' href='/styles/main.css'><h1>Web Content</h1>", 
    "https://mywebsite.com"
)
$vbLabelText   $csharpLabel

Dla większej kontrola nad procesem generacji PDF, zapoznaj się z obszerną dokumentacją IronPDF na temat niestandardowych marginesów, orientacji strony oraz kompresji PDF, aby zoptymalizować swoje pliki wyjściowe dla różnych przypadków użycia.

Często Zadawane Pytania

Jak przekonwertowac prosty ciag HTML na PDF w C#?

Mozesz przekonwertowac ciag HTML na PDF za pomoca klasy ChromePdfRenderer IronPDF z metoda RenderHtmlAsPdf. Po prostu instancjuj renderer, podaj swoj ciag HTML do metody i zapisz wynikowy obiekt PdfDocument. IronPDF uzywa silnika renderowania opartego na Chrome, aby zapewnic idealna zgodnosc.

Jaki silnik renderujący jest używany do konwersji HTML na PDF?

IronPDF uzywa w pelni funkcjonalnej wersji silnika Google Chromium do renderowania HTML na PDF. To zapewnia, ze twoje tresci HTML, w tym HTML5, CSS3 i JavaScript, pojawia sie dokladnie tak, jak w nowoczesnej przegladarce internetowej.

Czy moge przekonwertowac HTML z CSS do PDF?

Tak, IronPDF wspiera konwersje HTML z CSS do PDF. Mozesz uzywac stylow inline bezposrednio w swoim ciagu HTML lub odnosc sie do zewnetrznych arkuszy stylow za pomoca funkcji Bazowe URL i Kodowanie Zasobow, aby zapewnic wlasciwe renderowanie stylizowanej tresci.

Jaki jest najszybszy sposob konwersji HTML na PDF?

Najszybszy sposob to uzycie statycznej metody IronPDF: IronPdf.ChromePdfRenderer.StaticRenderHtmlAsPdf('Twoj HTML').SaveAs('output.pdf'). Ta pojedyncza linia kodu konwertuje twoj ciag HTML i zapisuje go jako plik PDF.

Jak zarzadzac zewnetrznymi zasobami przy konwersji ciagow HTML?

IronPDF pozwala ci skonfigurowac BasePath dla zewnetrznych zasobow w twoim PDF. To zapewnia, ze obrazy, arkusze stylow i inne zasoby, do ktorych odnosi sie twoj HTML, sa poprawnie ładowane w trakcie procesu konwersji.

Czy moge dostosowac wyjscie PDF przy konwersji z HTML?

Tak, IronPDF dostarcza rozbudowane opcje RenderingOptions do fine-tuning twojego wyjscia PDF. Mozesz kontrolowac rozmiar strony, marginesy, naglowki, stopki i wiele innych aspektow generowanego PDF za pomoca klasy ChromePdfRenderer.

Co moge zrobic z wygenerowanym PDF po konwersji?

Obiekt PdfDocument IronPDF dostarcza wiele metod do manipulacji PDF, w tym laczenie PDF-ow, dodawanie znakow wodnych, ustalanie opcji bezpieczenstwa i wiecej. Przekonwertowany PDF moze byc zapisany na dysku, przeslany strumieniowo lub dalej przetwarzany w zaleznosci od potrzeb.

Jak zarzadzac bezpieczenstwem przy konwersji HTML z zewnetrznych zrodel?

Podczas konwersji HTML z zewnetrznych zrodel, IronPDF pozwala ci ustawic wlasciwosc EnableWebSecurity na true w ChromePdfRenderer. To wylacza dostep do lokalnego dysku i zadania cross-origin dla zwiekszenia bezpieczenstwa.

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
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 18,926,724 | Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.