IRONSOFTWAREHOME
NARZĘDZIA PDF

Jak edytować PDF bez Adobe Pro (Samouczek dla początkujących)

Curtis Chau
Curtis Chau
Updated: 19 lipca 2026

Pytanie: Czy można tworzyć PDF-y w ASP.NET z iText, i czy istnieje lepsza alternatywa? Tak -- iText to długo działająca biblioteka PDF .NET, ale IronPDF oferuje nowoczesne podejście HTML do PDF, które eliminuje potrzebę 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 iText a IronPDF?

iText to port .NET biblioteki Java iText, oferujący programistyczne tworzenie PDF-ów przez swoją klasę dokumentu i manipulację niskopoziomową zawartością PDF. Chociaż potężny, używanie iText wymaga zrozumienia struktury dokumentu PDF, pracy z obiektami dokumentu i 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.

Praktycznym skutkiem tej różnicy architektonicznej jest to, że iText wynagradza deweloperów, którzy chcą mieć drobiazgową, współrzędną kontrolę nad każdym bajtem w pliku PDF, podczas gdy IronPDF wynagradza deweloperów, którzy chcą szybko produkować wizualnie eleganckie dokumenty, używają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.

iText vs IronPDF: Porównanie funkcji
FunkcjaiTextIronPDF
HTML do PDFOgraniczone (poprzez dodatek XMLWorker)Pełne renderowanie silnikiem Chrome
Obsługa CSSCzęściowePełna obsługa CSS3
Obsługa JavaScriptNoneTak (za pośrednictwem silnika Chrome)
LicencjonowanieAGPL (wymagana licencja komercyjna)Komercjalne, bez opłat licencyjnych
Krzywa uczenia sięSteep (wymagana znajomość API PDF)Niski (wystarczy znajomość HTML/CSS)
Instalacja NuGetInstall-Package iTextSharpInstall-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. Dla iText zauważ, że nowsze wersje iText działają pod licencją AGPL, która wymaga albo open-source'owania twojej aplikacji, albo zakupu licencji komercyjnej:

# Install iTextSharp via Package Manager Console
Install-Package iTextSharp
SHELL

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:

PM > 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 PDF z iText

Z iText 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();

To wymaga znajomości, jak Document, PdfWriter, Paragraph i FontFactory współdziałają -- niebłaha inwestycja w naukę dla deweloperów nowych w generacji 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;

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;

Generowanie faktur z iText

Osiągnięcie podobnego wyniku z iText wymaga programistycznego 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();

Różnica jest wyraźna: IronPDF obsługuje CSS, nowoczesny HTML i JavaScript, podczas gdy iText wymaga ręcznego tworzenia każdego elementu, specyfikacji czcionek i budowy 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 w IronPDF jest projektowany do tworzenia na żądanie, więc nie ma potrzeby martwić się o wspólny stan 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>";
    }
}

Dla projektów ASP.NET MVC (bez Core), zwróć 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 migrować z iText do IronPDF?

Migracja istniejącego projektu iText do IronPDF przebiega według prostego schematu:

  1. Zastąp kod modelu dokumentu szablonami HTML. Zamiast konstruować obiekty Paragraph, PdfPTable i PdfPCell, zbuduj ciąg HTML lub załaduj plik HTML. Twoje istniejące arkusze stylów CSS i widoki częściowe Razor mogą być bezpośrednio wykorzystywane.
  2. Podmień wywołanie renderowania. Zamień PdfWriter.GetInstance(doc, stream) na new ChromePdfRenderer().RenderHtmlAsPdf(html).
  3. Zaktualizuj ekstrakcję bajtów. Zamień memoryStream.ToArray() na pdf.BinaryData.
  4. Przenieś ustawienia zaawansowane. Funkcje iText takie jak marginesy stron, szyfrowanie i metadane dokumentów mają bezpośrednie odpowiedniki w API RenderingOptions i PdfDocument IronPDF.
  5. 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.

Przejrzyj przewodnik migracyjny IronPDF dla szczegółowych wzorców obejmujących szyfrowanie, stemplowanie i inne zaawansowane funkcje iText.

Którą bibliotekę wybrać?

Dla deweloperów rozpoczynających nowe projekty lub migrujących z iText, dotyczą następujące czynniki:

Licencjonowanie: iText używa licencji AGPL dla swoich nowszych wersji, co wymaga albo open-source'owania twojej aplikacji, albo zakupu komercyjnej licencji od iText Group. IronPDF oferuje proste licencjonowanie komercyjne bez zobowiązań 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 wspiera zgodność z PDF/A, wypełnianie formularzy, nakładanie znaków wodnych i więcej -- wszystko z jednej paczki NuGet. Zaawansowane funkcje, takie jak podpisy cyfrowe i scałanie plików PDF, są również dostępne bez dodatkowych zależności.

Ścieżka migracji: Przejście z iText do IronPDF polega na zastąpieniu kodu manipulacji dokumentami szablonami HTML i aktualizacji 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:

  1. Zainstaluj pakiet NuGet: Install-Package IronPdf
  2. Dodaj using IronPdf; do swojego pliku
  3. Utwórz ChromePdfRenderer i wywołaj RenderHtmlAsPdf() z twoim HTML
  4. Zwróć pdf.BinaryData jako FileResult z twojego kontrolera

Zapoznaj się z poniższymi zasobami, aby dowiedzieć się więcej:

Zwróć uwagę: iText jest zarejestrowanym znakiem towarowym jego właściciela. Ta strona nie jest powiązana, wspierana ani sponsorowana przez iText. Wszystkie nazwy produktów, logo i marki są własnością ich odpowiednich właścicieli. Porównania mają charakter wyłącznie informacyjny i odzwierciedlają informacje dostępne publicznie w momencie pisania.
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

Powiązane artykuły

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