PORóWNANIE

iText vs IronPDF: Przewodnik po porównaniu technicznym

W niniejszym porównaniu przeanalizowano obie biblioteki pod kątem istotnych aspektów technicznych, aby pomóc programistom i architektom w podejmowaniu świadomych decyzji dotyczących ich potrzeb w zakresie obsługi plików PDF w środowisku .NET.

PrzeglądiText/ iText

iText to biblioteka PDF z podwójną licencją, która umożliwia tworzenie plików PDF od podstaw, modyfikowanie istniejących dokumentów oraz wykonywanie zadań, takich jak dodawanie tekstu, obrazów i funkcji zabezpieczeń. Biblioteka wykorzystuje podejście API programistycznego, w którym programiści tworzą zawartość PDF, korzystając z klas takich jak PdfWriter, PdfDocument, Document, Paragraph, Table i Cell.

iText wykorzystuje przestrzenie nazw takie jak iText.Kernel.Pdf, iText.Layout, iText.Layout.Element i iText.Html2pdf. Tworzenie PDF wymaga utworzenia PdfWriter, opakowania go w PdfDocument, a następnie stworzenia Document dla układu zawartości. Tekst jest dodawany za pomocą obiektów Paragraph, tabele za pomocą obiektów Table i Cell, a obrazy za pomocą klasy Image z ImageDataFactory.

Do konwersji HTML na PDF,iTextwymaga osobnego dodatku pdfHTML, dostępnego przez przestrzeń nazw iText.Html2pdf z metodą HtmlConverter.ConvertToPdf(). Ten dodatek jest sprzedawany osobno za dodatkową opłatą.

iText jest dostępny na licencji AGPL, która wymaga, aby każde oprogramowanie zawierające kod AGPL w aplikacji internetowej było również udostępniane jako oprogramowanie open source, w przeciwnym razie programista musi zakupić licencję komercyjną. FirmaiTextzrezygnowała z licencji wieczystych, wprowadzając wymóg corocznego odnawiania subskrypcji w przypadku użytkowania komercyjnego.

Przegląd IronPDF

IronPDF to komercyjna biblioteka PDF przeznaczona dla programistów .NET, którzy wolą pracować z HTML i CSS zamiast programowo tworzyć pliki PDF. Biblioteka wykorzystuje nowoczesny silnik renderujący Chromium, zapewniający dokładne renderowanie HTML5, CSS3, JavaScript oraz nowoczesnych systemów układów, takich jak Flexbox i Grid.

IronPDF używa klasy ChromePdfRenderer jako głównego mechanizmu generowania PDF z metodami takimi jak RenderHtmlAsPdf(), RenderUrlAsPdf() i RenderHtmlFileAsPdf(). Biblioteka zwraca obiekty PdfDocument, które można zapisać za pomocą SaveAs() lub uzyskać do nich dostęp jako BinaryData. Konfiguracja korzysta z właściwości RenderingOptions dla rozmiaru papieru, marginesów, nagłówków i stopek.

IronPDF oferuje zarówno licencje wieczyste, jak i subskrypcyjne, bez wymagań dotyczących licencji wirusowych. Konwersja HTML do PDF jest wbudowana w podstawowy produkt i nie wymaga oddzielnych dodatków.

Porównanie licencji i modeli biznesowych

Najważniejsza różnica między tymi bibliotekami dotyczy licencji i konsekwencji biznesowych.

FunkcjaiText / iTextIronPDF
LicencjaAGPL (wirusowa) lub kosztowna subskrypcjaOpcja komercyjna, bezterminowa
HTML do PDFOddzielny dodatek pdfHTML (dodatkowy koszt)Wbudowany renderer Chromium
Ryzyko związane z oprogramowaniem open sourceAplikacje internetowe typu open source muszą być objęte licencją AGPLBrak wymagań dotyczących wirusowości
Model cenowyTylko w ramach subskrypcjiLicencja wieczysta lub subskrypcja
Opcja wieczystaWyeliminowanoDostępne

Pułapka licencji AGPL jest szczególnie problematyczna w przypadku komercyjnych aplikacji internetowych. Jeśli używasziTextw aplikacji internetowej bez zakupu licencji komercyjnej, licencja AGPL wymaga, abyś udostępnił całą aplikację na licencji open source — nie tylko kod PDF, ale całą bazę kodu.

Porównanie paradygmatów API

Podstawowa filozofia projektowania API znacznie różni się w poszczególnych bibliotekach.

AspektiTextIronPDF
Paradygmat APIProgramowo (akapit, tabela, komórka)Najpierw HTML, potem CSS
Obsługa CSSPodstawowy CSS (poprzez dodatek pdfHTML)Pełna obsługa CSS3, Flexbox, Grid
JavaScriptNonePełna realizacja
Krzywa uczenia sięSteep (układ współrzędnych PDF)Przyjazne dla programistów stron internetowych
Budowa treściRęczne obiekty niskiego poziomuSzablony HTML

iText tworzy pliki PDF programowo z wykorzystaniem jawnej konstrukcji obiektów.IronPDFwykorzystuje HTML/CSS, co pozwala programistom stron internetowych na bezpośrednie wykorzystanie posiadanych umiejętności.

Porównanie kodu: typowe operacje na plikach PDF

Konwersja HTML do PDF

Najbardziej podstawowa operacja ilustruje różne podejścia i wymagania dotyczące dodatków.

iText (wymaga dodatku pdfHTML):

// NuGet: Install-Package itext7
using iText.Html2pdf;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>";
        string outputPath = "output.pdf";

        using (FileStream fs = new FileStream(outputPath, FileMode.Create))
        {
            HtmlConverter.ConvertToPdf(html, fs);
        }
    }
}
// NuGet: Install-Package itext7
using iText.Html2pdf;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>";
        string outputPath = "output.pdf";

        using (FileStream fs = new FileStream(outputPath, FileMode.Create))
        {
            HtmlConverter.ConvertToPdf(html, fs);
        }
    }
}
Imports iText.Html2pdf
Imports System.IO

Class Program
    Shared Sub Main()
        Dim html As String = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>"
        Dim outputPath As String = "output.pdf"

        Using fs As FileStream = New FileStream(outputPath, FileMode.Create)
            HtmlConverter.ConvertToPdf(html, fs)
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim html As String = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>"

        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

iText wymaga osobnej przestrzeni nazw iText.Html2pdf (z dodatku pdfHTML), tworzy FileStream ręcznie i wywołuje HtmlConverter.ConvertToPdf(), aby pisać bezpośrednio do strumienia.

IronPDF tworzy ChromePdfRenderer, wywołuje RenderHtmlAsPdf() z ciągiem HTML i zapisuje za pomocą SaveAs(). Silnik Chromium zapewnia pełną obsługę CSS3 i JavaScript bez dodatkowych wtyczek.

Aby uzyskać informacje na temat zaawansowanych opcji renderowania HTML, zapoznaj się z przewodnikiem dotyczącym konwersji HTML do PDF.

Tworzenie plików PDF z tekstem i obrazami

Programowe tworzenie plików PDF najlepiej ilustruje tę różnicę paradygmatów.

iText:

// NuGet: Install-Package itext7
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.IO.Image;

class Program
{
    static void Main()
    {
        string outputPath = "document.pdf";

        using (PdfWriter writer = new PdfWriter(outputPath))
        using (PdfDocument pdf = new PdfDocument(writer))
        using (Document document = new Document(pdf))
        {
            document.Add(new Paragraph("Sample PDF Document"));
            document.Add(new Paragraph("This document contains text and an image."));

            Image img = new Image(ImageDataFactory.Create("image.jpg"));
            img.SetWidth(200);
            document.Add(img);
        }
    }
}
// NuGet: Install-Package itext7
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.IO.Image;

class Program
{
    static void Main()
    {
        string outputPath = "document.pdf";

        using (PdfWriter writer = new PdfWriter(outputPath))
        using (PdfDocument pdf = new PdfDocument(writer))
        using (Document document = new Document(pdf))
        {
            document.Add(new Paragraph("Sample PDF Document"));
            document.Add(new Paragraph("This document contains text and an image."));

            Image img = new Image(ImageDataFactory.Create("image.jpg"));
            img.SetWidth(200);
            document.Add(img);
        }
    }
}
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element
Imports iText.IO.Image

Class Program
    Shared Sub Main()
        Dim outputPath As String = "document.pdf"

        Using writer As New PdfWriter(outputPath),
              pdf As New PdfDocument(writer),
              document As New Document(pdf)

            document.Add(New Paragraph("Sample PDF Document"))
            document.Add(New Paragraph("This document contains text and an image."))

            Dim img As New Image(ImageDataFactory.Create("image.jpg"))
            img.SetWidth(200)
            document.Add(img)
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = @"
            <h1>Sample PDF Document</h1>
            <p>This document contains text and an image.</p>
            <img src='image.jpg' width='200' />";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("document.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = @"
            <h1>Sample PDF Document</h1>
            <p>This document contains text and an image.</p>
            <img src='image.jpg' width='200' />";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("document.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()

        Dim html As String = "
            <h1>Sample PDF Document</h1>
            <p>This document contains text and an image.</p>
            <img src='image.jpg' width='200' />"

        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("document.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

iText wymaga utworzenia PdfWriter, opakowania go w PdfDocument, stworzenia Document dla układu, a następnie dodania obiektów Paragraph i obiektów Image utworzonych za pomocą ImageDataFactory. Każdy element wymaga wyraźnej konstrukcji i konfiguracji.

IronPDF używa standardowego HTML—nagłówków, akapitów i tagów <img>—wszystkie stylizowane za pomocą znanych atrybutów HTML lub CSS. Silnik Chromium zajmuje się renderowaniem, dając ten sam efekt przy znacznie mniejszej ilości kodu.

Łączenie wielu plików PDF

Łączenie dokumentów pokazuje różnice w złożoności API.

iText:

// NuGet: Install-Package itext7
using iText.Kernel.Pdf;
using iText.Kernel.Utils;
using System.IO;

class Program
{
    static void Main()
    {
        string outputPath = "merged.pdf";
        string[] inputFiles = { "document1.pdf", "document2.pdf", "document3.pdf" };

        using (PdfWriter writer = new PdfWriter(outputPath))
        using (PdfDocument pdfDoc = new PdfDocument(writer))
        {
            PdfMerger merger = new PdfMerger(pdfDoc);

            foreach (string file in inputFiles)
            {
                using (PdfDocument sourcePdf = new PdfDocument(new PdfReader(file)))
                {
                    merger.Merge(sourcePdf, 1, sourcePdf.GetNumberOfPages());
                }
            }
        }
    }
}
// NuGet: Install-Package itext7
using iText.Kernel.Pdf;
using iText.Kernel.Utils;
using System.IO;

class Program
{
    static void Main()
    {
        string outputPath = "merged.pdf";
        string[] inputFiles = { "document1.pdf", "document2.pdf", "document3.pdf" };

        using (PdfWriter writer = new PdfWriter(outputPath))
        using (PdfDocument pdfDoc = new PdfDocument(writer))
        {
            PdfMerger merger = new PdfMerger(pdfDoc);

            foreach (string file in inputFiles)
            {
                using (PdfDocument sourcePdf = new PdfDocument(new PdfReader(file)))
                {
                    merger.Merge(sourcePdf, 1, sourcePdf.GetNumberOfPages());
                }
            }
        }
    }
}
Imports iText.Kernel.Pdf
Imports iText.Kernel.Utils
Imports System.IO

Class Program
    Shared Sub Main()
        Dim outputPath As String = "merged.pdf"
        Dim inputFiles As String() = {"document1.pdf", "document2.pdf", "document3.pdf"}

        Using writer As New PdfWriter(outputPath)
            Using pdfDoc As New PdfDocument(writer)
                Dim merger As New PdfMerger(pdfDoc)

                For Each file As String In inputFiles
                    Using sourcePdf As New PdfDocument(New PdfReader(file))
                        merger.Merge(sourcePdf, 1, sourcePdf.GetNumberOfPages())
                    End Using
                Next
            End Using
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdfDocuments = new List<PdfDocument>
        {
            PdfDocument.FromFile("document1.pdf"),
            PdfDocument.FromFile("document2.pdf"),
            PdfDocument.FromFile("document3.pdf")
        };

        var merged = PdfDocument.Merge(pdfDocuments);
        merged.SaveAs("merged.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdfDocuments = new List<PdfDocument>
        {
            PdfDocument.FromFile("document1.pdf"),
            PdfDocument.FromFile("document2.pdf"),
            PdfDocument.FromFile("document3.pdf")
        };

        var merged = PdfDocument.Merge(pdfDocuments);
        merged.SaveAs("merged.pdf");
    }
}
Imports IronPdf
Imports System.Collections.Generic

Class Program
    Shared Sub Main()
        Dim pdfDocuments As New List(Of PdfDocument) From {
            PdfDocument.FromFile("document1.pdf"),
            PdfDocument.FromFile("document2.pdf"),
            PdfDocument.FromFile("document3.pdf")
        }

        Dim merged = PdfDocument.Merge(pdfDocuments)
        merged.SaveAs("merged.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

iText wymaga utworzenia PdfWriter dla wyjścia, stworzenia destynacyjnej PdfDocument, stworzenia PdfMerger, a następnie iteracji przez pliki źródłowe, aby stworzyć instancje PdfReader i PdfDocument, wywołując merger.Merge() z zakresami stron i zarządzając usuwaniem wszystkich obiektów.

IronPDF ładuje dokumenty za pomocą PdfDocument.FromFile(), tworzy listę i wywołuje statyczną metodę PdfDocument.Merge(). Operacja jest znacznie bardziej zwięzła.

Dowiedz się więcej o obróbce plików PDF w samouczkach IronPDF.

Przewodnik po mapowaniu API

Dla programistów rozważających migrację ziTextlub porównujących możliwości, poniższe zestawienie przedstawia równoważne operacje:

Mapowanie klas

Klasa iTextKlasa iTextOdpowiednikIronPDF
PdfWriterPdfWriterChromePdfRenderer
PdfDocumentDocumentPdfDocument
DocumentDocumentChromePdfRenderer.RenderHtmlAsPdf()
ParagraphParagraphHTML <p>, <h1>, itp.
TablePdfPTableHTML <table>
CellPdfPCellHTML <td>, <th>
ImageImageHTML <img>
ListListHTML <ul>, <ol>
ListItemListItemHTML <li>
PdfReaderPdfReaderPdfDocument.FromFile()
PdfMergerNie dotyczyPdfDocument.Merge()
PdfTextExtractorPdfTextExtractorpdf.ExtractAllText()

Mapowanie metod

ZadanieiTextIronPDF
Utwórz plik PDF z HTMLHtmlConverter.ConvertToPdf()renderer.RenderHtmlAsPdf()
Utwórz plik PDF z adresu URLPobierz HTML + konwertujrenderer.RenderUrlAsPdf()
Utwórz plik PDF z plikuHtmlConverter.ConvertToPdf(File.ReadAllText())renderer.RenderHtmlFileAsPdf()
Zapisz do plikudocument.Close() (przez strumień)pdf.SaveAs()
Zapisz w bajtachmemoryStream.ToArray()pdf.BinaryData
Otwórz istniejący plik PDFnew PdfDocument(new PdfReader(path))PdfDocument.FromFile()
Łączenie plików PDFPdfMerger.Merge()PdfDocument.Merge()
Wyodrębnij tekstPdfTextExtractor.GetTextFromPage()pdf.ExtractAllText()

Mapowanie stylów

Metoda iTextOdpowiednikIronPDF
SetTextAlignment(TextAlignment.CENTER)CSS text-align: center
SetFontSize(12)CSS font-size: 12px
SetBold()CSS font-weight: bold
SetBackgroundColor()CSS background-color
SetBorder()CSS border

Podsumowanie porównania funkcji

FunkcjaiTextIronPDF
Programowe tworzenie plików PDFTak (Główne podejście)Ograniczone (Przez HTML)
HTML do PDFOgraniczone (Wymaga dodatku pdfHTML)Tak (Wbudowane)
Obsługa CSS3Tak (za pomocą dodatku pdfHTML)Tak (Pełne)
Flexbox/GridTak (za pomocą pdfHTML)Tak
Wykonanie kodu JavaScriptNieTak
Łączenie plików PDFTak (PdfMerger)Tak (PdfDocument.Merge())
Ekstrakcja tekstuTak (PdfTextExtractor)Tak (ExtractAllText())
Licencja wieczystaNie (Wyeliminowane)Tak
Brak ryzyka związanego z licencją AGPLNie (AGPL lub subskrypcja)Tak
Wsparcie społecznościTak (Rozległe)Tak

Kiedy zespoły rozważają przejście ziTextna IronPDF

Zespoły programistów rozważają przejście ziTextnaIronPDFz kilku powodów:

Pułapka licencji AGPL: Licencja AGPL jest bardzo restrykcyjna w przypadku komercyjnych aplikacji internetowych. Jeśli używasziTextw aplikacji internetowej bez zakupu licencji komercyjnej, licencja AGPL wymaga, abyś udostępnił całą aplikację na licencji open source — nie tylko kod PDF, ale całą bazę kodu. Zespoły tworzące oprogramowanie własnościowe często nie mogą zaakceptować tego wirusowego wymogu licencyjnego.

Licencjonowanie komercyjne wyłącznie w ramach subskrypcji: firmaiTextzrezygnowała z licencji wieczystych, wymagając corocznego odnawiania subskrypcji w przypadku użytkowania komercyjnego. Zespoły preferujące zakupy jednorazowe uważają, że opcja Licencji wieczystejIronPDFjest bardziej odpowiednia dla ich budżetu.

Koszt dodatku pdfHTML: Aby konwertować HTML na PDF za pomocą iText, programiści muszą zainwestować w oddzielny dodatek pdfHTML, co zwiększa koszty i złożoność.IronPDFzawiera w podstawowej wersji produktu funkcję konwersji HTML do PDF z nowoczesnym silnikiem renderującym Chromium.

Programistyczna złożoność API:iTextwymaga ręcznego, niskopoziomowego tworzenia PDF z Paragraph, Table, Cell i innymi obiektami. Zespoły z doświadczeniem w tworzeniu stron internetowych uważają podejścieIronPDFdo HTML/CSS za bardziej intuicyjne i wydajne.

Nowoczesne standardy internetowe: Nawet w przypadku pdfHTML bibliotekaiTextma ograniczoną obsługę złożonych arkuszy CSS i kodu JavaScript. Silnik Chromium firmyIronPDFzapewnia pełną obsługę CSS3, Flexbox, Grid oraz wykonywanie kodu JavaScript dla nowoczesnych treści internetowych.

Uproszczona baza kodu: Przejście z podejścia programowegoiTextna paradygmat "HTML-first"IronPDFczęsto skutkuje znacznie mniejszą ilością kodu. Raporty tabel, które wymagają dziesiątek linii z Table, Cell i Paragraph obiektów, stają się prostymi tabelami HTML z stylizacją CSS.

Mocne strony i kwestie do rozważenia

Zalety iText

  • Kompleksowy zestaw funkcji: Rozbudowane możliwości manipulacji plikami PDF
  • Powszechne stosowanie: duża społeczność i obszerna dokumentacja
  • Wielopłatformowość: Działa na różnych platformach .NET
  • Precyzyjna kontrola: bezpośrednia manipulacja obiektami PDF w celu zaspokojenia specjalistycznych potrzeb

Uwagi dotyczące iText

  • Licencja AGPL: Licencja typu viral wymaga udostępnienia aplikacji internetowych na zasadach open source lub komercyjnej subskrypcji
  • Tylko subskrypcja: zniesiono Licencje wieczyste
  • Dodatek pdfHTML: Konwersja HTML na PDF wymaga osobnego zakupu
  • Złożoność programistyczna: Stroma krzywa uczenia się w związku z układem współrzędnych PDF
  • Ograniczony nowoczesny CSS: Podstawowa obsługa CSS nawet w przypadku pdfHTML
  • Brak JavaScript: Nie można wykonywać kodu JavaScript w treści HTML

Atuty IronPDF

  • Licencja wieczysta: opcja jednorazowego zakupu
  • Brak ryzyka związanego z licencją AGPL: zachowaj zamknięty charakter kodu zastrzeżonego
  • Wbudowana funkcja konwersji HTML do PDF: nie jest wymagany żaden oddzielny dodatek
  • Silnik Chromium: Pełna obsługa CSS3, Flexbox, Grid i JavaScript
  • Przyjazny dla programistów stron internetowych: Wykorzystuje znane umiejętności w zakresie HTML/CSS
  • Prostsze API: zwięzłe metody dla typowych operacji
  • Kompleksowe zasoby: obszerne samouczki i dokumentacja

Uwagi dotyczące IronPDF

  • Licencja komercyjna: Wymagana do użytku produkcyjnego
  • Paradygmat HTML-First: Podejście odmienne od konstrukcji programistycznej

Wnioski

iText iIronPDFreprezentują zasadniczo różne podejścia do generowania plików PDF w aplikacjach .NET.iTextoferuje kompleksową programistyczną konstrukcję PDF, korzystając z klas takich jak Paragraph, Table i Cell, ale wiąże się to z istotnymi problemami licencyjnymi—AGPL wymaga otwarcia kodu aplikacji webowych, licencjonowanie wieczyste zostało wyeliminowane, a konwersja HTML na PDF wymaga osobnego zakupu dodatku pdfHTML.

IronPDF stanowi nowoczesną alternatywę dzięki wbudowanej funkcji konwersji HTML do PDF wykorzystującej silnik Chromium, opcjom Licencji wieczystych oraz braku wymagań dotyczących licencji wirusowych. Podejście "HTML-first" pozwala programistom stron internetowych bezpośrednio wykorzystać posiadane umiejętności, co często skutkuje prostszym i łatwiejszym w utrzymaniu kodem.

W miarę jak organizacje planują wdrożenie .NET 10, C# 14 oraz tworzenie aplikacji do 2026 r., wybór między programowym tworzeniem plików PDF na licencji AGPL a renderowaniem opartym na HTML na licencji komercyjnej ma znaczący wpływ zarówno na zgodność z przepisami, jak i na wydajność programistów. Zespoły, które chcą wyeliminować ryzyko związane z licencją AGPL, zmniejszyć złożoność licencjonowania lub wykorzystać umiejętności tworzenia stron internetowych do generowania plików PDF, przekonają się, żeIronPDFskutecznie spełnia te wymagania.

Zacznij testować IronPDF, korzystając z bezpłatnej wersji próbnej, i zapoznaj się z obszerną dokumentacją, aby ocenić, czy rozwiązanie to spełnia Twoje konkretne wymagania.

Zwróć uwagęiText jest zarejestrowanym znakiem towarowym jego właściciela. Ta witryna nie jest powiązana, zatwierdzona ani sponsorowana przeziTextGroup. 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.