iTextsharp HTML do PDF z stylami CSS C# Przykład vs IronPDF
Full Comparison
Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.
Konwersja HTML do PDF jest kluczowym zadaniem w wielu nowoczesnych procesach tworzenia oprogramowania, niezależnie od tego, czy chodzi o generowanie raportów, faktur czy tworzenie dokumentacji. Jako programista C# masz do dyspozycji kilka bibliotek, które usprawniają ten proces.
W tym artykule porównamy dwie najpopularniejsze biblioteki w ekosystemie .NET: IronPDF i iTextSharp. Obie biblioteki oferują solidną funkcjonalność, ale różnią się w kluczowych obszarach, takich jak łatwość użytkowania, narzędzia do tworzenia plików PDF, obsługa stylów CSS oraz licencjonowanie. Niezależnie od tego, czy jesteś początkującym, czy doświadczonym programistą, ten przewodnik pomoże Ci zrozumieć ich podstawowe funkcje i zdecydować, które z nich najlepiej pasują do Ciebie, w oparciu o Twoje potrzeby i wymagania projektowe.
Chcesz śledzić postępy? Pobierz bezpłatną wersję próbną IronPDF, aby samodzielnie poznać zaawansowane funkcje IronPDF.
Porównanie najlepszych bibliotek: iTextSharp i IronPDF
Zarówno iTextSharp, jak i IronPDF zapewniają programistom narzędzia potrzebne do konwersji HTML na PDF w języku C#. Każde z nich ma jednak swoje mocne i słabe strony.
-
iTextSharp to biblioteka open source, która istnieje już od dawna. Oferuje elastyczność i szerokie możliwości dostosowania, ale jej konfiguracja i obsługa mogą być nieco skomplikowane, zwłaszcza w przypadku zaawansowanego renderowania HTML i CSS. Należy jednak zauważyć, że iTextSharp jest produktem starszej generacji i obecnie otrzymuje wyłącznie aktualizacje związane z bezpieczeństwem.
- Z kolei IronPDF to produkt komercyjny opracowany przez firmę Iron Software. Jest znany z przyjaznego dla użytkownika interfejsu, solidnej obsługi CSS i łatwości użytkowania. Integruje się płynnie z aplikacjami C#, co czyni go doskonałym wyborem dla programistów, którzy potrzebują szybkiego i wydajnego generowania plików PDF bez utraty jakości.
Zanim zagłębimy się w sposób konwersji formatu HTML do PDF przy użyciu tych dwóch bibliotek, przyjrzyjmy się najpierw podstawowemu przykładowi porównawczemu, który pokazuje różnicę w sposobie, w jaki te dwie biblioteki radzą sobie z konwersją treści stron internetowych/HTML zawierających dużo kodu CSS i JavaScript do dokumentu PDF.

Jak widać na przykładowych dokumentach PDF, iTextSharp przetwarza jedynie surową zawartość HTML z podanego adresu URL, podczas gdy IronPDF zachowuje oryginalny układ i styl CSS, dzięki czemu wygenerowany dokument PDF jest bardzo zbliżony do oryginalnej strony internetowej.
Przewodnik instalacji krok po kroku
Konfiguracja iTextSharp
- Instalacja za pomocą konsoli NuGet: Aby rozpocząć korzystanie z iTextSharp, można zainstalować go bezpośrednio z NuGet. Otwórz projekt Visual Studio, przejdź do Menedżera pakietów NuGet i uruchom następujące polecenie:
Install-Package iTextSharp

- Zainstaluj za pomocą menedżera pakietów NuGet: Alternatywnie możesz zainstalować go za pomocą menedżera pakietów NuGet na ekranie Solution. Aby to zrobić, przejdź do "Narzędzia > Menedżer pakietów NuGet > Zarządzaj pakietami NuGet dla rozwiązania".

Następnie wyszukaj bibliotekę iTextSharp i kliknij "Zainstaluj".

- Dodaj odwołania: Po zainstalowaniu dodaj do projektu niezbędne odwołania, zwłaszcza te związane z konwersją HTML do PDF.
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;
Imports iTextSharp.text.pdf
Imports iTextSharp.text.html.simpleparser
Konfiguracja IronPDF
- Instalacja za pomocą konsoli NuGet: Aby rozpocząć korzystanie z IronPDF, można zainstalować go bezpośrednio z NuGet. Otwórz projekt Visual Studio, przejdź do Menedżera pakietów NuGet i uruchom następujące polecenie:
Install-Package IronPdf
-
Instalacja za pomocą menedżera pakietów NuGet: Alternatywnie można zainstalować go za pomocą menedżera pakietów NuGet na ekranie Solution, tak jak zrobiliśmy to w powyższych krokach dla iTextSharp. Tym razem jednak przed kliknięciem "Install" należy wyszukać IronPDF.

- Dodaj referencje: Po zainstalowaniu zaimportuj IronPDF do swojego projektu:
using IronPdf;
using IronPdf;
Imports IronPdf
Należy pamiętać, że IronPDF wymaga klucza licencyjnego do użytku komercyjnego/poza środowiskiem programistycznym.
Wdrażanie konwersji HTML do PDF
Korzystanie z iTextSharp
Po skonfigurowaniu iTextSharp upewnij się, że w projekcie zainstalowano pakiet itextsharp.xmlworker, zanim zaczniesz tworzyć pliki PDF z treści HTML. Jednakże napotkasz trudności związane z bardziej złożonym kodem HTML, zwłaszcza gdy w grę wchodzą style CSS. W porównaniu z IronPDF, iTextSharp zazwyczaj wymaga dodatkowego wysiłku, aby uzyskać idealny styl. Należy pamiętać, że iTextSharp obsługuje tylko podstawowy HTML/CSS2 (bez flexboxu, bez siatki, ograniczony CSS).
using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;
// Register provider for specific code pages
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
// Define HTML content with CSS styling
string html = @"
<html>
<head>
<style>
body { font-family: Arial; color: #333; }
h1 { background: #3498db; color: #fff; padding: 10px; }
table { width: 100%; border-collapse: collapse; margin-top: 15px; }
th, td { border: 1px solid #ccc; padding: 6px; }
th { background: #2980b9; color: #fff; }
.footer { margin-top: 20px; font-size: 12px; color: #777; text-align: center; }
</style>
</head>
<body>
<h1>April Report</h1>
<p>Here’s a quick overview of this month’s performance metrics.</p>
<table>
<tr><th>Metric</th><th>Value</th></tr>
<tr><td>Features</td><td>12</td></tr>
<tr><td>Bugs Fixed</td><td>89</td></tr>
</table>
<p class='footer'>Generated by iTextSharp</p>
</body>
</html>";
// Create PDF from HTML content
using (FileStream stream = new FileStream("report.pdf", FileMode.Create))
{
Document pdfDoc = new Document(PageSize.A4, 25, 25, 30, 30);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
pdfDoc.Open();
using (StringReader sr = new StringReader(html))
{
// Use XMLWorkerHelper to parse and add HTML content to the PDF document
XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
}
pdfDoc.Close();
writer.Close();
}
Console.WriteLine("PDF generation completed successfully.");
using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;
// Register provider for specific code pages
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
// Define HTML content with CSS styling
string html = @"
<html>
<head>
<style>
body { font-family: Arial; color: #333; }
h1 { background: #3498db; color: #fff; padding: 10px; }
table { width: 100%; border-collapse: collapse; margin-top: 15px; }
th, td { border: 1px solid #ccc; padding: 6px; }
th { background: #2980b9; color: #fff; }
.footer { margin-top: 20px; font-size: 12px; color: #777; text-align: center; }
</style>
</head>
<body>
<h1>April Report</h1>
<p>Here’s a quick overview of this month’s performance metrics.</p>
<table>
<tr><th>Metric</th><th>Value</th></tr>
<tr><td>Features</td><td>12</td></tr>
<tr><td>Bugs Fixed</td><td>89</td></tr>
</table>
<p class='footer'>Generated by iTextSharp</p>
</body>
</html>";
// Create PDF from HTML content
using (FileStream stream = new FileStream("report.pdf", FileMode.Create))
{
Document pdfDoc = new Document(PageSize.A4, 25, 25, 30, 30);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
pdfDoc.Open();
using (StringReader sr = new StringReader(html))
{
// Use XMLWorkerHelper to parse and add HTML content to the PDF document
XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
}
pdfDoc.Close();
writer.Close();
}
Console.WriteLine("PDF generation completed successfully.");
Imports System
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports iTextSharp.tool.xml
' Register provider for specific code pages
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)
' Define HTML content with CSS styling
Dim html As String = "
<html>
<head>
<style>
body { font-family: Arial; color: #333; }
h1 { background: #3498db; color: #fff; padding: 10px; }
table { width: 100%; border-collapse: collapse; margin-top: 15px; }
th, td { border: 1px solid #ccc; padding: 6px; }
th { background: #2980b9; color: #fff; }
.footer { margin-top: 20px; font-size: 12px; color: #777; text-align: center; }
</style>
</head>
<body>
<h1>April Report</h1>
<p>Here’s a quick overview of this month’s performance metrics.</p>
<table>
<tr><th>Metric</th><th>Value</th></tr>
<tr><td>Features</td><td>12</td></tr>
<tr><td>Bugs Fixed</td><td>89</td></tr>
</table>
<p class='footer'>Generated by iTextSharp</p>
</body>
</html>"
' Create PDF from HTML content
Using stream As New FileStream("report.pdf", FileMode.Create)
Dim pdfDoc As New Document(PageSize.A4, 25, 25, 30, 30)
Dim writer As PdfWriter = PdfWriter.GetInstance(pdfDoc, stream)
pdfDoc.Open()
Using sr As New StringReader(html)
' Use XMLWorkerHelper to parse and add HTML content to the PDF document
XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr)
End Using
pdfDoc.Close()
writer.Close()
End Using
Console.WriteLine("PDF generation completed successfully.")
Plik PDF wyjściowy

Korzystanie z IronPDF
IronPDF upraszcza proces generowania plików PDF, umożliwiając łatwą konwersję treści HTML na nowe dokumenty PDF za pomocą zaledwie kilku wierszy kodu, jak pokazano w poniższym przykładzie kodu. Obsługuje zaawansowane dokumenty HTML z plikami CSS używanymi do stylizacji, ciągi HTML oraz treści internetowe bogate w CSS i JavaScript.
Oto prosty przykład zawierający wbudowany kod CSS:
using IronPdf;
class Program
{
static void Main()
{
// Define HTML content with inline CSS styling
var content = @"
<html>
<head>
<style>
body {
font-family: 'Segoe UI', sans-serif;
margin: 40px;
background-color: #f8f9fa;
}
h1 {
color: #2c3e50;
border-bottom: 2px solid #2980b9;
padding-bottom: 10px;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
}
table, th, td {
border: 1px solid #ccc;
}
th {
background-color: #2980b9;
color: white;
padding: 10px;
}
td {
padding: 10px;
background-color: #ecf0f1;
}
.footer {
margin-top: 40px;
text-align: center;
font-size: 0.9em;
color: #7f8c8d;
}
img {
width: 120px;
float: right;
}
</style>
</head>
<body>
<img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg' alt='Company Logo' />
<h1>Monthly Report - April 2025</h1>
<p>This report outlines performance statistics and key updates for the development team.</p>
<table>
<tr>
<th>Metric</th>
<th>Value</th>
<th>Change</th>
</tr>
<tr>
<td>Feature Releases</td>
<td>12</td>
<td style='color: green;'>+20%</td>
</tr>
<tr>
<td>Bugs Resolved</td>
<td>89</td>
<td style='color: green;'>+45%</td>
</tr>
<tr>
<td>Downtime</td>
<td>2 hrs</td>
<td style='color: red;'>+15%</td>
</tr>
</table>
<div class='footer'>
Generated with IronPDF | © 2025 DevCorp
</div>
</body>
</html>";
// Use ChromePdfRenderer to render the HTML content as a PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(content);
pdf.SaveAs("AdvancedStyledReport.pdf");
}
}
using IronPdf;
class Program
{
static void Main()
{
// Define HTML content with inline CSS styling
var content = @"
<html>
<head>
<style>
body {
font-family: 'Segoe UI', sans-serif;
margin: 40px;
background-color: #f8f9fa;
}
h1 {
color: #2c3e50;
border-bottom: 2px solid #2980b9;
padding-bottom: 10px;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
}
table, th, td {
border: 1px solid #ccc;
}
th {
background-color: #2980b9;
color: white;
padding: 10px;
}
td {
padding: 10px;
background-color: #ecf0f1;
}
.footer {
margin-top: 40px;
text-align: center;
font-size: 0.9em;
color: #7f8c8d;
}
img {
width: 120px;
float: right;
}
</style>
</head>
<body>
<img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg' alt='Company Logo' />
<h1>Monthly Report - April 2025</h1>
<p>This report outlines performance statistics and key updates for the development team.</p>
<table>
<tr>
<th>Metric</th>
<th>Value</th>
<th>Change</th>
</tr>
<tr>
<td>Feature Releases</td>
<td>12</td>
<td style='color: green;'>+20%</td>
</tr>
<tr>
<td>Bugs Resolved</td>
<td>89</td>
<td style='color: green;'>+45%</td>
</tr>
<tr>
<td>Downtime</td>
<td>2 hrs</td>
<td style='color: red;'>+15%</td>
</tr>
</table>
<div class='footer'>
Generated with IronPDF | © 2025 DevCorp
</div>
</body>
</html>";
// Use ChromePdfRenderer to render the HTML content as a PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(content);
pdf.SaveAs("AdvancedStyledReport.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main()
' Define HTML content with inline CSS styling
Dim content = "
<html>
<head>
<style>
body {
font-family: 'Segoe UI', sans-serif;
margin: 40px;
background-color: #f8f9fa;
}
h1 {
color: #2c3e50;
border-bottom: 2px solid #2980b9;
padding-bottom: 10px;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
}
table, th, td {
border: 1px solid #ccc;
}
th {
background-color: #2980b9;
color: white;
padding: 10px;
}
td {
padding: 10px;
background-color: #ecf0f1;
}
.footer {
margin-top: 40px;
text-align: center;
font-size: 0.9em;
color: #7f8c8d;
}
img {
width: 120px;
float: right;
}
</style>
</head>
<body>
<img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg' alt='Company Logo' />
<h1>Monthly Report - April 2025</h1>
<p>This report outlines performance statistics and key updates for the development team.</p>
<table>
<tr>
<th>Metric</th>
<th>Value</th>
<th>Change</th>
</tr>
<tr>
<td>Feature Releases</td>
<td>12</td>
<td style='color: green;'>+20%</td>
</tr>
<tr>
<td>Bugs Resolved</td>
<td>89</td>
<td style='color: green;'>+45%</td>
</tr>
<tr>
<td>Downtime</td>
<td>2 hrs</td>
<td style='color: red;'>+15%</td>
</tr>
</table>
<div class='footer'>
Generated with IronPDF | © 2025 DevCorp
</div>
</body>
</html>"
' Use ChromePdfRenderer to render the HTML content as a PDF
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(content)
pdf.SaveAs("AdvancedStyledReport.pdf")
End Sub
End Class
Plik PDF wyjściowy

Dzięki IronPDF możesz oczekiwać dopracowanego pliku PDF z dokładnym stylizowaniem CSS, jak widać na powyższym przykładzie kodu, co sprawia, że jest to narzędzie wybierane przez wielu programistów pracujących ze złożonymi plikami HTML, ciągami znaków i nie tylko. Oprócz prostych zadań związanych z konwersją dokumentów z HTML do PDF, IronPDF umożliwia zaawansowaną edycję plików PDF oraz zapewnia ich bezpieczeństwo. To sprawia, że jest to doskonała biblioteka PDF typu "wszystko w jednym".
Kluczowe różnice i otoczenie konkurencyjne
Oceniając iTextSharp i IronPDF, należy wziąć pod uwagę nie tylko ich funkcje, ale także otoczenie konkurencyjne. Inni konkurenci, tacy jak Apryse i Aspose.PDF, oferują podobne rozwiązania do konwersji HTML na PDF, ale mają swoje wady i zalety pod względem cen i funkcjonalności.
| Funkcja | IronPDF | iTextSharp | Apryse | Aspose.PDF |
|---|---|---|---|---|
| Łatwość użytkowania | High | Medium | High | Medium |
| Obsługa CSS | Full | Częściowe | Full | Pełna |
| Licencjonowanie | Commercial | Open Source | Commercial | Komercjalne |
| Wsparcie | Doskonałe | Społeczność | Premium | Premium |
| Ceny | Z $799 | Licencja bezpłatna/komercyjna | Na podstawie wyceny | Od 1679 USD rocznie |
IronPDF wyróżnia się dzięki kompleksowej obsłudze nowoczesnych standardów HTML5 i CSS3, co ma kluczowe znaczenie dla większości dzisiejszych programistów. Rozszerzona obsługa manipulacji dokumentami PDF, kontrola nad tworzeniem dokumentów PDF, łatwość procesu konwersji i wiele innych funkcji sprawiają, że IronPDF jest popularną biblioteką do obsługi plików PDF.
Wnioski i zalecenia
Podsumowując, zarówno IronPDF, jak i iTextSharp oferują rozbudowane możliwości konwersji HTML do PDF w języku C#, ale są skierowane do różnych typów programistów. Jeśli szukasz rozwiązania open source z silnym wsparciem społeczności, iTextSharp może być właściwym wyborem. Jednak dla programistów, którzy potrzebują łatwości użytkowania, solidnej obsługi CSS i rozwiązania komercyjnego, IronPDF oferuje znacznie bardziej usprawnione i bogate w funkcje doświadczenie. Niezależnie od tego, czy szukasz narzędzia do automatycznego generowania faktur, tworzenia dokumentów PDF z brandingiem, czy konwersji całych stron internetowych do plików PDF, IronPDF spełni Twoje oczekiwania.
Wypróbuj przyjazne dla użytkownika funkcje IronPDF już dziś – pobierz bezpłatną wersję próbną, aby przekonać się na własnej skórze, jak łatwa może być konwersja HTML do PDF.
Często Zadawane Pytania
Jak mogę przekonwertować HTML na PDF w języku C#?
Możesz użyć IronPDF do konwersji HTML na PDF, korzystając z metody RenderHtmlAsPdf dla ciągów HTML lub RenderHtmlFileAsPdf dla plików HTML. Ta biblioteka obsługuje nowoczesne HTML5 i CSS3, zapewniając dokładne stylizowanie i renderowanie.
Jakie są główne zalety korzystania z IronPDF do konwersji HTML na PDF?
IronPDF oferuje solidną obsługę nowoczesnych standardów HTML5 i CSS3, dzięki czemu idealnie nadaje się do obsługi złożonych treści internetowych. Jego przyjazny dla użytkownika interfejs API pozwala na płynną integrację z językiem C#, a także obsługuje treści oparte w dużej mierze na JavaScript, zapewniając dokładną konwersję dynamicznych stron internetowych.
Dlaczego programista miałby wybrać iTextSharp zamiast IronPDF?
Programista może wybrać iTextSharp, jeśli preferuje rozwiązanie open source z elastycznymi opcjami dostosowywania. iTextSharp, znany obecnie jako iText7, jest odpowiedni dla osób posiadających wiedzę niezbędną do radzenia sobie z jego złożonością, zwłaszcza w przypadku zaawansowanego HTML i CSS.
Czy IronPDF obsługuje JavaScript w treści HTML?
Tak, IronPDF może przetwarzać JavaScript w treści HTML dzięki zaawansowanym możliwościom renderowania, co czyni go odpowiednim wyborem do konwersji dynamicznych i interaktywnych stron internetowych do formatu PDF.
Jak zainstalować IronPDF w projekcie C#?
IronPDF można zainstalować za pomocą menedżera pakietów NuGet w Visual Studio. Użyj polecenia Install-Package IronPdf w konsoli menedżera pakietów lub wyszukaj IronPDF w interfejsie użytkownika menedżera pakietów NuGet.
Co należy wziąć pod uwagę przy wyborze między IronPDF a iTextSharp?
Wybierając między tymi dwoma rozwiązaniami, weź pod uwagę swoje potrzeby w zakresie łatwości użytkowania, obsługi CSS i JavaScript, wymagań licencyjnych oraz złożoności treści HTML. IronPDF wyróżnia się nowoczesnymi technologiami internetowymi i płynną integracją, podczas gdy iTextSharp jest dobrym wyborem dla osób preferujących rozwiązanie open source.
Czy istnieją wymagania licencyjne dotyczące IronPDF?
Tak, IronPDF wymaga licencji komercyjnej do użytku poza środowiskami programistycznymi. Licencje można nabyć w zależności od poziomu wsparcia i potrzebnych funkcji.
Jakie są typowe problemy związane z konwersją HTML do PDF za pomocą iTextSharp?
Typowe problemy związane z iTextSharp obejmują obsługę złożonego kodu HTML i CSS, ponieważ może to wymagać dodatkowych konfiguracji i dostosowań. Programiści często muszą dostosowywać swój kod, aby zapewnić prawidłowe stylizowanie i renderowanie zaawansowanych treści internetowych.
Jak IronPDF wypada na tle innych bibliotek PDF, takich jak Aspose.PDF?
IronPDF oferuje łatwość użytkowania i kompleksową obsługę nowoczesnych standardów internetowych, podobnie jak Aspose.PDF. Konkurencyjne ceny i zestaw funkcji sprawiają, że jest to doskonały wybór dla programistów potrzebujących niezawodnej konwersji HTML do PDF przy zachowaniu jakości i wydajności.



