Tworzenie plików PDF w ASP.NET: iTextSharp 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.
Pytanie: Czy można tworzyć pliki PDF w ASP.NET za pomocą iTextSharp i czy istnieje lepsza alternatywa? Tak — iTextSharp to biblioteka .NET do obsługi plików PDF o ugruntowanej pozycji, ale IronPDF oferuje nowoczesne podejście do konwersji HTML na PDF, które eliminuje konieczność poznawania niskopoziomowych struktur dokumentów PDF. W niniejszym przewodniku porównano obie biblioteki, podając działające przykłady kodu, aby umożliwić wybór odpowiedniego narzędzia do danego projektu.
Jakie są kluczowe różnice między iTextSharp a IronPDF?
iTextSharp to port biblioteki Java iText na platformę .NET, oferujący programowe tworzenie plików PDF za pośrednictwem klasy dokumentu oraz niskopoziomową manipulację treścią plików PDF. Chociaż iTextSharp jest potężnym narzędziem, jego użycie wymaga zrozumienia struktury dokumentów PDF, pracy z obiektami dokumentu oraz ręcznego pozycjonowania elementów przy użyciu współrzędnych i specyfikacji rozmiaru strony. API jest z konieczności rozbudowane — biblioteka ujawnia pełną złożoność specyfikacji PDF, co oznacza, że przed uzyskaniem dopracowanego wyniku trzeba się wiele nauczyć.
IronPDF stosuje inne podejście, skupiając się na konwersji HTML do PDF przy użyciu silnika renderującego Chrome. Programiści mogą generować pliki PDF przy użyciu znanego HTML i CSS, dzięki czemu tworzenie plików PDF jest tak proste, jak projektowanie strony internetowej. IronPDF obsługuje logikę generowania plików PDF w tle, umożliwiając tworzenie dokumentów o nowoczesnym wyglądzie i obsługujących JavaScript. Ponieważ proces renderowania oparty jest na silniku Chromium, każdy układ działający w nowoczesnej przeglądarce zostanie wiernie odwzorowany w pliku PDF — w tym flexbox, grid, czcionki internetowe i treści generowane przez JavaScript.
Praktyczną konsekwencją tej różnicy architektonicznej jest to, że iTextSharp jest rozwiązaniem dla programistów, którzy chcą mieć precyzyjną kontrolę na poziomie współrzędnych nad każdym bajtem w pliku PDF, podczas gdy IronPDF jest rozwiązaniem dla programistów, którzy chcą szybko tworzyć wizualnie dopracowane dokumenty, wykorzystując umiejętności, które już posiadają. W przypadku większości scenariuszy aplikacji internetowych — faktur, raportów, potwierdzeń zamówień i eksportu danych — podejście oparte na HTML jest szybsze w tworzeniu i łatwiejsze w utrzymaniu.
| Funkcja | iTextSharp | IronPDF |
|---|---|---|
| HTML do PDF | Ograniczone (poprzez dodatek XMLWorker) | Pełne renderowanie silnikiem Chrome |
| Obsługa CSS | Częściowe | Pełna obsługa CSS3 |
| Obsługa JavaScript | None | Tak (za pośrednictwem silnika Chrome) |
| Licencjonowanie | AGPL (wymagana licencja komercyjna) | Komercjalne, bez opłat licencyjnych |
| Krzywa uczenia się | Steep (wymagana znajomość API PDF) | Niski (wystarczy znajomość HTML/CSS) |
| Instalacja NuGet | Install-Package iTextSharp |
Install-Package IronPdf |
| Zgodność z platformą .NET | .NET Framework, .NET Core | .NET 8, .NET 9, .NET 10, .NET Framework |
Jak zainstalować te biblioteki w projekcie .NET?
Instalacja każdej z bibliotek rozpoczyna się od uruchomienia menedżera pakietów NuGet. W przypadku iTextSharp należy pamiętać, że nowsze wersje iText działają na licencji AGPL, która wymaga albo udostępnienia aplikacji na zasadach open source, albo zakupu licencji komercyjnej:
# Install iTextSharp via Package Manager Console
Install-Package iTextSharp
# Install iTextSharp via Package Manager Console
Install-Package iTextSharp
W przypadku IronPDF można zainstalować go za pomocą konsoli NuGet Package Manager Console, interfejsu CLI .NET lub poprzez bezpośrednie wyszukiwanie w interfejsie użytkownika NuGet w Visual Studio:
Install-Package IronPdf
Po instalacji IronPDF jest gotowy do użycia za pomocą pojedynczego instrukcji using. Do podstawowego generowania plików PDF nie jest wymagana żadna dodatkowa konfiguracja. W przypadku zaawansowanych scenariuszy — takich jak ustawianie klucza licencyjnego, konfigurowanie opcji renderowania lub generowanie plików PDF w środowisku chmury — zapoznaj się z dokumentacją IronPDF. IronPDF obsługuje wdrożenia w systemach Linux, macOS i Windows, w tym środowiska kontenerowe działające w Dockerze lub Kubernetesie, co sprawia, że doskonale nadaje się do nowoczesnych aplikacji ASP.NET natywnych dla chmury.
Jak utworzyć podstawowy dokument PDF za pomocą każdej z bibliotek?
Najprostszym sposobem na zrozumienie różnicy w API jest stworzenie prostego pliku PDF "Hello World" z wykorzystaniem obu bibliotek obok siebie.
Generowanie pliku PDF za pomocą iTextSharp
Dzięki iTextSharp pracujesz bezpośrednio z klasą Document i PdfWriter:
using iTextSharp.text;
using iTextSharp.text.pdf;
var memoryStream = new MemoryStream();
Document pdfDoc = new Document(PageSize.A4, 25, 25, 25, 15);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, memoryStream);
pdfDoc.Open();
var paragraph = new Paragraph("Hello World - PDF Document");
paragraph.Font = FontFactory.GetFont(FontFactory.HELVETICA, 16);
pdfDoc.Add(paragraph);
pdfDoc.Add(new Paragraph("Creating PDF documents with iTextSharp"));
pdfDoc.Close();
// Return as a downloadable file
var pdfBytes = memoryStream.ToArray();
using iTextSharp.text;
using iTextSharp.text.pdf;
var memoryStream = new MemoryStream();
Document pdfDoc = new Document(PageSize.A4, 25, 25, 25, 15);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, memoryStream);
pdfDoc.Open();
var paragraph = new Paragraph("Hello World - PDF Document");
paragraph.Font = FontFactory.GetFont(FontFactory.HELVETICA, 16);
pdfDoc.Add(paragraph);
pdfDoc.Add(new Paragraph("Creating PDF documents with iTextSharp"));
pdfDoc.Close();
// Return as a downloadable file
var pdfBytes = memoryStream.ToArray();
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Dim memoryStream As New MemoryStream()
Dim pdfDoc As New Document(PageSize.A4, 25, 25, 25, 15)
Dim writer As PdfWriter = PdfWriter.GetInstance(pdfDoc, memoryStream)
pdfDoc.Open()
Dim paragraph As New Paragraph("Hello World - PDF Document")
paragraph.Font = FontFactory.GetFont(FontFactory.HELVETICA, 16)
pdfDoc.Add(paragraph)
pdfDoc.Add(New Paragraph("Creating PDF documents with iTextSharp"))
pdfDoc.Close()
' Return as a downloadable file
Dim pdfBytes As Byte() = memoryStream.ToArray()
Wymaga to wiedzy na temat interakcji między Document, PdfWriter, Paragraph i FontFactory — co stanowi niemałą inwestycję w naukę dla programistów, którzy dopiero zaczynają przygodę z generowaniem plików PDF.
Generowanie pliku PDF za pomocą IronPDF
W przypadku IronPDF równoważne zadanie wykorzystuje znany kod HTML:
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(@"
<h1>Hello World - PDF Document</h1>
<p>Creating PDFs with IronPDF is straightforward!</p>
");
var pdfBytes = pdf.BinaryData;
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(@"
<h1>Hello World - PDF Document</h1>
<p>Creating PDFs with IronPDF is straightforward!</p>
");
var pdfBytes = pdf.BinaryData;
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("
<h1>Hello World - PDF Document</h1>
<p>Creating PDFs with IronPDF is straightforward!</p>
")
Dim pdfBytes = pdf.BinaryData
Podejście IronPDF pozwala na bezpośrednie pisanie kodu HTML, eliminując konieczność pracy z niskopoziomowymi elementami PDF. Klasa ChromePdfRenderer obsługuje całe renderowanie wewnętrznie przy użyciu silnika opartego na Chromium, zapewniając wynik z dokładnością co do piksela.
Jak tworzyć stylizowane pliki PDF z obrazami i CSS?
Dokumenty sformatowane ujawniają największą różnicę między tymi dwiema bibliotekami. Podczas generowania faktur, raportów lub dokumentów firmowych stylizacja oparta na CSS w IronPDF znacznie zmniejsza ilość wymaganego kodu.
Generowanie faktur za pomocą IronPDF
using IronPdf;
var html = @"
<style>
body { font-family: Arial, sans-serif; margin: 0; }
.invoice-header { background: #4CAF50; color: white; padding: 20px; }
.invoice-table { width: 100%; border-collapse: collapse; margin-top: 20px; }
.invoice-table th, .invoice-table td {
border: 1px solid #ddd; padding: 8px; text-align: left;
}
.invoice-table th { background-color: #f2f2f2; }
.total { font-size: 18px; font-weight: bold; margin-top: 16px; }
</style>
<div class='invoice-header'>
<h1>Invoice #2024-001</h1>
<p>Due: March 15, 2024</p>
</div>
<table class='invoice-table'>
<tr><th>Item</th><th>Quantity</th><th>Unit Price</th><th>Total</th></tr>
<tr><td>PDF License</td><td>1</td><td>$599</td><td>$599</td></tr>
<tr><td>Support Package</td><td>1</td><td>$199</td><td>$199</td></tr>
</table>
<p class='total'>Grand Total: $798</p>
";
var renderer = new ChromePdfRenderer();
var pdfDocument = renderer.RenderHtmlAsPdf(html);
var pdfBytes = pdfDocument.BinaryData;
using IronPdf;
var html = @"
<style>
body { font-family: Arial, sans-serif; margin: 0; }
.invoice-header { background: #4CAF50; color: white; padding: 20px; }
.invoice-table { width: 100%; border-collapse: collapse; margin-top: 20px; }
.invoice-table th, .invoice-table td {
border: 1px solid #ddd; padding: 8px; text-align: left;
}
.invoice-table th { background-color: #f2f2f2; }
.total { font-size: 18px; font-weight: bold; margin-top: 16px; }
</style>
<div class='invoice-header'>
<h1>Invoice #2024-001</h1>
<p>Due: March 15, 2024</p>
</div>
<table class='invoice-table'>
<tr><th>Item</th><th>Quantity</th><th>Unit Price</th><th>Total</th></tr>
<tr><td>PDF License</td><td>1</td><td>$599</td><td>$599</td></tr>
<tr><td>Support Package</td><td>1</td><td>$199</td><td>$199</td></tr>
</table>
<p class='total'>Grand Total: $798</p>
";
var renderer = new ChromePdfRenderer();
var pdfDocument = renderer.RenderHtmlAsPdf(html);
var pdfBytes = pdfDocument.BinaryData;
Imports IronPdf
Dim html As String = "
<style>
body { font-family: Arial, sans-serif; margin: 0; }
.invoice-header { background: #4CAF50; color: white; padding: 20px; }
.invoice-table { width: 100%; border-collapse: collapse; margin-top: 20px; }
.invoice-table th, .invoice-table td {
border: 1px solid #ddd; padding: 8px; text-align: left;
}
.invoice-table th { background-color: #f2f2f2; }
.total { font-size: 18px; font-weight: bold; margin-top: 16px; }
</style>
<div class='invoice-header'>
<h1>Invoice #2024-001</h1>
<p>Due: March 15, 2024</p>
</div>
<table class='invoice-table'>
<tr><th>Item</th><th>Quantity</th><th>Unit Price</th><th>Total</th></tr>
<tr><td>PDF License</td><td>1</td><td>$599</td><td>$599</td></tr>
<tr><td>Support Package</td><td>1</td><td>$199</td><td>$199</td></tr>
</table>
<p class='total'>Grand Total: $798</p>
"
Dim renderer As New ChromePdfRenderer()
Dim pdfDocument = renderer.RenderHtmlAsPdf(html)
Dim pdfBytes = pdfDocument.BinaryData
Generowanie faktur za pomocą iTextSharp
Osiągnięcie podobnego efektu w iTextSharp wymaga programowego skonstruowania każdego elementu wizualnego:
using iTextSharp.text;
using iTextSharp.text.pdf;
var output = new MemoryStream();
var document = new Document(PageSize.A4);
PdfWriter.GetInstance(document, output);
document.Open();
// Header -- manual font and color setup
var titleFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 20,
new BaseColor(255, 255, 255));
var headerParagraph = new Paragraph("Invoice #2024-001", titleFont);
document.Add(headerParagraph);
// Table -- each cell must be created individually
PdfPTable table = new PdfPTable(4);
table.WidthPercentage = 100;
string[] headers = { "Item", "Quantity", "Unit Price", "Total" };
foreach (var h in headers)
{
var cell = new PdfPCell(new Phrase(h,
FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10)));
cell.BackgroundColor = new BaseColor(242, 242, 242);
table.AddCell(cell);
}
table.AddCell("PDF License");
table.AddCell("1");
table.AddCell("$599");
table.AddCell("$599");
document.Add(table);
var totalFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 14);
document.Add(new Paragraph("Grand Total: $798", totalFont));
document.Close();
using iTextSharp.text;
using iTextSharp.text.pdf;
var output = new MemoryStream();
var document = new Document(PageSize.A4);
PdfWriter.GetInstance(document, output);
document.Open();
// Header -- manual font and color setup
var titleFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 20,
new BaseColor(255, 255, 255));
var headerParagraph = new Paragraph("Invoice #2024-001", titleFont);
document.Add(headerParagraph);
// Table -- each cell must be created individually
PdfPTable table = new PdfPTable(4);
table.WidthPercentage = 100;
string[] headers = { "Item", "Quantity", "Unit Price", "Total" };
foreach (var h in headers)
{
var cell = new PdfPCell(new Phrase(h,
FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10)));
cell.BackgroundColor = new BaseColor(242, 242, 242);
table.AddCell(cell);
}
table.AddCell("PDF License");
table.AddCell("1");
table.AddCell("$599");
table.AddCell("$599");
document.Add(table);
var totalFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 14);
document.Add(new Paragraph("Grand Total: $798", totalFont));
document.Close();
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Dim output As New MemoryStream()
Dim document As New Document(PageSize.A4)
PdfWriter.GetInstance(document, output)
document.Open()
' Header -- manual font and color setup
Dim titleFont As Font = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 20, New BaseColor(255, 255, 255))
Dim headerParagraph As New Paragraph("Invoice #2024-001", titleFont)
document.Add(headerParagraph)
' Table -- each cell must be created individually
Dim table As New PdfPTable(4)
table.WidthPercentage = 100
Dim headers As String() = {"Item", "Quantity", "Unit Price", "Total"}
For Each h As String In headers
Dim cell As New PdfPCell(New Phrase(h, FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10)))
cell.BackgroundColor = New BaseColor(242, 242, 242)
table.AddCell(cell)
Next
table.AddCell("PDF License")
table.AddCell("1")
table.AddCell("$599")
table.AddCell("$599")
document.Add(table)
Dim totalFont As Font = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 14)
document.Add(New Paragraph("Grand Total: $798", totalFont))
document.Close()
Różnica jest oczywista: IronPDF obsługuje CSS, nowoczesny HTML i JavaScript, podczas gdy iTextSharp wymaga ręcznego tworzenia każdego elementu, specyfikacji czcionki oraz konstruowania tabeli komórka po komórce. W przypadku aplikacji generujących duże ilości dokumentów i dziesiątki różnych szablonów różnica w objętości kodu z czasem znacznie się kumuluje.
Jak radzisz sobie z generowaniem plików PDF po stronie serwera w ASP.NET?
Obie biblioteki obsługują generowanie plików PDF po stronie serwera dla aplikacji ASP.NET. Schemat zwracania pliku PDF jako odpowiedzi w postaci pliku do pobrania jest podobny niezależnie od tego, która biblioteka generuje dane. Kluczowe kwestie, które należy wziąć pod uwagę przy wdrażaniu, to zarządzanie pamięcią, bezpieczeństwo wątków oraz konfiguracja odpowiedzi. Obie biblioteki wykorzystują strumienie w pamięci, dlatego należy upewnić się, że duże pliki PDF nie są przechowywane w pamięci dłużej niż to konieczne. ChromePdfRenderer firmy IronPDF jest zaprojektowany tak, aby był instancjonowany na żądanie, więc nie ma wspólnego stanu, o który trzeba się martwić między równoczesnymi żądaniami.
Akcja kontrolera ASP.NET Core z wykorzystaniem IronPDF
using IronPdf;
using Microsoft.AspNetCore.Mvc;
[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
[HttpGet("invoice/{id}")]
public IActionResult GenerateInvoice(int id)
{
var html = BuildInvoiceHtml(id); // your HTML template
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
var pdf = renderer.RenderHtmlAsPdf(html);
return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf");
}
private static string BuildInvoiceHtml(int id)
{
return $"<h1>Invoice #{id}</h1><p>Generated on {DateTime.UtcNow:yyyy-MM-dd}</p>";
}
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
[HttpGet("invoice/{id}")]
public IActionResult GenerateInvoice(int id)
{
var html = BuildInvoiceHtml(id); // your HTML template
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
var pdf = renderer.RenderHtmlAsPdf(html);
return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf");
}
private static string BuildInvoiceHtml(int id)
{
return $"<h1>Invoice #{id}</h1><p>Generated on {DateTime.UtcNow:yyyy-MM-dd}</p>";
}
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
<ApiController>
<Route("api/[controller]")>
Public Class PdfController
Inherits ControllerBase
<HttpGet("invoice/{id}")>
Public Function GenerateInvoice(id As Integer) As IActionResult
Dim html As String = BuildInvoiceHtml(id) ' your HTML template
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
Dim pdf = renderer.RenderHtmlAsPdf(html)
Return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf")
End Function
Private Shared Function BuildInvoiceHtml(id As Integer) As String
Return $"<h1>Invoice #{id}</h1><p>Generated on {DateTime.UtcNow:yyyy-MM-dd}</p>"
End Function
End Class
W przypadku projektów ASP.NET MVC (nie-Core) należy zwrócić FileResult w ten sam sposób. IronPDF obsługuje również generowanie plików PDF z adresów URL, co jest pomocne podczas konwersji istniejących stron internetowych zamiast tworzenia ciągów HTML.
Możesz również dodawać nagłówki i stopki, stosować podpisy cyfrowe, ustawiać ochronę hasłem lub łączyć wiele plików PDF za pomocą interfejsów API do edycji dokumentów IronPDF — wszystko to w ramach tego samego pakietu.
Jak przeprowadzić migrację z iTextSharp do IronPDF?
Migracja istniejącego projektu iTextSharp do IronPDF przebiega według prostego schematu:
- Zastąp kod modelu dokumentu szablonami HTML. Zamiast tworzyć obiekty
Paragraph,PdfPTableiPdfPCell, zbuduj ciąg znaków HTML lub załaduj plik HTML. Istniejące arkusze stylów CSS i częściowe widoki Razor można wykorzystać bezpośrednio. - Zamień wywołanie renderowania. Zastąp
PdfWriter.GetInstance(doc, stream)przeznew ChromePdfRenderer().RenderHtmlAsPdf(html). - Zaktualizuj wyodrębnianie bajtów. Zastąp
memoryStream.ToArray()przezpdf.BinaryData. - Przenieś zaawansowane ustawienia. Funkcje iTextSharp, takie jak marginesy stron, szyfrowanie i metadane dokumentów, mają bezpośrednie odpowiedniki w interfejsach API IronPDF
RenderingOptionsiPdfDocument. - Sprawdź wierność tłumaczenia. Uruchom oba tłumaczenia obok siebie na reprezentatywnych dokumentach. IronPDF zazwyczaj zapewnia lepsze efekty wizualne, ponieważ wykorzystuje pełny silnik renderujący przeglądarki zamiast silnika układu natywnego dla formatu PDF.
W przypadku zespołów posiadających już szablony HTML (pochodzące z generatorów wiadomości e-mail, widoków Razor lub Builderów raportów) migracja często może zostać zakończona w ciągu kilku godzin, a nie dni. IronPDF może renderować widoki Razor bezpośrednio do formatu PDF w ramach ASP.NET Core, co dodatkowo przyspiesza migrację. Zespoły, które zainwestowały w projektowanie dokumentów oparte na CSS — na przykład wykorzystując arkusze stylów drukowania do kontrolowania podziałów stron i marginesów — przekonają się, że te umiejętności można bezpośrednio przenieść do IronPDF.
Zapoznaj się z przewodnikiem migracji IronPDF, aby uzyskać szczegółowe wzorce dotyczące szyfrowania, stemplowania i innych zaawansowanych funkcji iTextSharp.
Którą bibliotekę wybrać?
W przypadku programistów rozpoczynających nowe projekty lub migrujących z iTextSharp należy wziąć pod uwagę następujące czynniki:
Licencjonowanie: iTextSharp stosuje licencję AGPL w swoich nowszych wersjach, co wymaga udostępnienia aplikacji na zasadach open source lub zakupu licencji komercyjnej od iText Group. IronPDF oferuje proste licencjonowanie komercyjne bez zobowiązań związanych z open source. Jeśli Twój projekt jest zamknięty lub komercyjny, samo to rozróżnienie może zadecydować o Twoim wyborze.
Krzywa uczenia się: Podejście IronPDF oparte na HTML oznacza mniej czasu poświęconego na naukę interfejsów API specyficznych dla formatu PDF. Jeśli Twój zespół zna HTML i CSS, generowanie plików PDF za pomocą IronPDF można rozpocząć natychmiast. Nie ma potrzeby zgłębiania systemów współrzędnych PDF, kodowania glifów ani osadzania czcionek — IronPDF zajmuje się tym wszystkim w sposób przejrzysty.
Zakres funkcji: IronPDF obsługuje zgodność z PDF/A, wypełnianie formularzy, znakowanie wodne i wiele innych funkcji — wszystko to w jednym pakiecie NuGet. Zaawansowane funkcje, takie jak podpisy cyfrowe i scalanie plików PDF, są również dostępne bez dodatkowych zależności.
Ścieżka migracji: Przejście z iTextSharp na IronPDF wiąże się z zastąpieniem kodu do manipulacji dokumentami szablonami HTML oraz aktualizacją wywołania renderowania. Jakość wyników jest zazwyczaj wyższa, ponieważ IronPDF wykorzystuje pełny silnik przeglądarki, a wynikowy kod jest znacznie krótszy i łatwiejszy w utrzymaniu.
Aby zapoznać się z informacjami na temat działania silników renderujących pliki PDF oraz tego, co je odróżnia, warto zapoznać się z dokumentacją Mozilli dotyczącą plików PDF oraz zasobami Adobe dotyczącymi specyfikacji plików PDF. Oficjalna strona iText Group zawiera szczegółowy opis warunków licencji AGPL.
Jakie są Twoje kolejne kroki?
Aby rozpocząć korzystanie z IronPDF w projekcie ASP.NET:
- Zainstaluj pakiet NuGet:
Install-Package IronPdf - Dodaj
using IronPdf;do swojego pliku - Utwórz
ChromePdfRendereri wywołajRenderHtmlAsPdf()z kodem HTML - Zwróć
pdf.BinaryDatajakoFileResultz kontrolera
Zapoznaj się z poniższymi zasobami, aby dowiedzieć się więcej:
- Dokumentacja IronPDF HTML do PDF — pełne opcje renderowania i przykłady
- Przewodnik po generowaniu plików PDF w ASP.NET Core — renderowanie widoków Razor i wzorce kontrolerów
- Zabezpieczenia i szyfrowanie plików PDF — ochrona hasłem i uprawnienia
- Łączenie i dzielenie plików PDF — łączenie wielu dokumentów
- Bezpłatna wersja próbna IronPDF — przetestuj wszystkie funkcje bez znaku wodnego podczas tworzenia oprogramowania
Często Zadawane Pytania
Jakie są główne różnice między iTextSharp a IronPDF w zakresie generowania plików PDF w ASP.NET?
Główne różnice obejmują łatwość użytkowania, modele licencyjne i podejście do renderowania. IronPDF wykorzystuje model HTML-do-PDF oparty na silniku Chrome, co ułatwia tworzenie dokumentów z formatowaniem. iTextSharp wykorzystuje niskopoziomowy interfejs API dokumentów PDF, który wymaga nauki konstrukcji specyficznych dla formatu PDF. IronPDF stosuje również licencję komercyjną bez zobowiązań związanych z oprogramowaniem open source, podczas gdy nowsze wersje iTextSharp wykorzystują licencję AGPL.
Czy IronPDF może konwertować HTML na PDF w aplikacjach ASP.NET?
Tak, IronPDF może konwertować HTML na PDF w aplikacjach ASP.NET. Pozwala to programistom na renderowanie stron internetowych, ciągów HTML lub plików HTML bezpośrednio do formatu PDF z wysoką wiernością przy użyciu silnika renderującego opartego na Chromium.
Czy można przejść z iTextSharp na IronPDF?
Tak, przejście z iTextSharp na IronPDF jest proste. Migracja polega na zastąpieniu kodu modelu dokumentu szablonami HTML i aktualizacji wywołania renderowania. Zespoły posiadające już szablony HTML lub Razor często mogą przeprowadzić migrację w ciągu kilku godzin.
Czy IronPDF obsługuje generowanie plików PDF z aplikacji internetowych ASP.NET?
IronPDF w pełni obsługuje generowanie plików PDF z aplikacji internetowych ASP.NET i ASP.NET Core. Integruje się z istniejącymi projektami za pośrednictwem NuGet i obsługuje wzorce akcji kontrolera do zwracania plików PDF.
Jakie rodzaje dokumentów można tworzyć za pomocą IronPDF?
Za pomocą IronPDF można tworzyć faktury, raporty, eksporty danych oraz wszelkie dokumenty, które można przedstawić w formacie HTML. Obsługuje zgodność z PDF/A, wypełnianie formularzy, podpisy cyfrowe, znakowanie wodne oraz generowanie BARCODE-ów.
Jak IronPDF radzi sobie z licencjonowaniem w porównaniu z iTextSharp?
IronPDF oferuje licencje komercyjne bez zobowiązań wynikających z licencji AGPL, dzięki czemu nadaje się do aplikacji typu closed-source. Nowsze wersje iTextSharp korzystają z licencji AGPL, która wymaga licencji komercyjnych w przypadku oprogramowania własnościowego.
Czy dostępne są przykłady kodu dotyczące użycia IronPDF w ASP.NET?
Tak, IronPDF udostępnia obszerne przykłady kodu i dokumentację obejmującą konwersję HTML do PDF, renderowanie adresów URL, wzorce kontrolerów ASP.NET Core oraz zaawansowane funkcje, takie jak nagłówki, stopki i podpisy cyfrowe.
Dlaczego warto rozważyć użycie IronPDF zamiast iTextSharp?
Warto rozważyć IronPDF, jeśli chcesz tworzyć dokumenty z formatowaniem przy użyciu HTML i CSS, uniknąć wymagań licencyjnych AGPL w nowszych wersjach iTextSharp lub zmniejszyć ilość kodu związanego z PDF, który Twój zespół musi utrzymywać.
Czy IronPDF działa w środowiskach chmurowych i kontenerowych?
Tak, IronPDF obsługuje wdrożenia w systemach Linux, macOS i Windows, w tym środowiska kontenerowe Docker i Kubernetes, dzięki czemu nadaje się do nowoczesnych aplikacji ASP.NET natywnych dla chmury.
Czy IronPDF nadaje się do projektów ASP.NET na poziomie Enterprise?
Tak, IronPDF nadaje się do korporacyjnych projektów ASP.NET. Zapewnia niezawodną wydajność, zgodność z PDF/A, obsługę podpisów cyfrowych oraz skalowalność w scenariuszach generowania dużych ilości dokumentów.



