Przejdź do treści stopki
PORóWNANIA PRODUKTóW
Badanie alternatyw dla DinkToPDF w konwersji HTML na PDF | IronPDF

Porównanie IronPDF i DinktoPdf

Podczas pracy z aplikacjami .NET zadania związane z PDF, takie jak konwersja HTML na PDF, edycja plików PDF i bezpieczeństwo PDF, są często wymagane, ale programiści często napotykają problemy, takie jak niespójne wyjście, ograniczone funkcje lub skomplikowane procesy integracji. Dla tych, którzy szukają sposobu na usprawnienie tych zadań, biblioteki PDF dla .NET, takie jak IronPDF, oferują zaawansowane rozwiązanie wykraczające poza podstawową konwersję HTML na PDF.

Porównanie obejmuje IronPDF oraz DinkToPdf pod względem możliwości renderowania, zakresu funkcji, struktur licencjonowania i cen — z przykładami kodu dla operacji, które je różnią.

Zrozumienie potrzeb dotyczących konwersji PDF

Dla programistów .NET konwersja HTML na PDF jest często wymagana przy obsłudze dokumentów, takich jak raporty, faktury i treści internetowe. Jednak złożoność zadania może się znacznie różnić w zależności od treści, która ma zostać przekonwertowana:

  • Proste strony: Statyczne treści, takie jak teksty i obrazy, są zazwyczaj łatwe do renderowania.
  • Dynamiczne strony: Złożone układy, media, skrypty i interaktywne elementy wymagają bardziej zaawansowanych rozwiązań.

Oprócz podstawowego generowania PDF nowoczesne aplikacje często potrzebują bardziej zaawansowanych możliwości PDF:

  • Podpisy cyfrowe: Zapewnienie autentyczności i integralności dokumentów.
  • Szyfrowanie: Ochrona poufnych danych poprzez ochronę hasłem.
  • Dodawanie znaków wodnych: Dodawanie niestandardowego brandingu lub znaków zabezpieczających do PDF.
  • Manipulacja treści: Możliwość wyodrębniania, edytowania lub dodawania treści do PDF.

Dla większości programistów ważne jest wybranie biblioteki PDF, która wykracza poza konwersję HTML na PDF. Kompleksowy zestaw narzędzi do zarządzania PDF może znacznie usprawnić i przyspieszyć przepływ pracy.

IronPDF dostarcza pełen zakres funkcji zdolnych do obsługi zarówno prostych, jak i złożonych zadań PDF.DinkToPdfto dobre rozwiązanie dla prostych konwersji HTML na PDF, ale zespoły mogą napotykać problemy przy zaawansowanej manipulacji PDF — podpisy cyfrowe, szyfrowanie, dodawanie znaków wodnych i edycja treści są poza aktualnym zakresem DinkToPdf. W tej sekcji porównamy, w jaki sposób każda biblioteka dystrybuuje te wyzwania, aby pomóc Ci określić, które rozwiązanie najlepiej pasuje do Twoich wymagań.

Przegląd narzędzi

Czym jest IronPDF?

IronPDF to .NET-owa biblioteka PDF stworzona dla programistów, którzy potrzebują więcej niż konwersji HTML na PDF. Jej API obejmuje szyfrowanie, podpisy cyfrowe, dodawanie znaków wodnych, obsługę formularzy oraz wyodrębnianie tekstu lub obrazów — wszystko w ramach jednej paczki NuGet, która działa w .NET Framework, .NET Core i .NET 5+.

Konwersja HTML na PDF jest zasilana osadzonym silnikiem Chromium z pełnym wsparciem dla HTML5, CSS3 i JavaScript. Szczegółowa dokumentacja, przykłady kodu dla ponad 100 operacji i dedykowany zespół wsparcia są wliczone w licencję komercyjną.

Czym jest DinkToPdf?

Z drugiej strony,DinkToPdfto open-source'owa biblioteka do konwersji HTML na PDF oparta na przestarzałym silniku renderującym Qt WebKit i jest warstwą .NET Core dla biblioteki WkHtmlToPdf. To lekkie rozwiązanie, które jest idealne dla prostszych, mniejszych projektów, gdzie zaawansowane funkcje nie są konieczne. IntegracjaDinkToPdfz projektami .NET jest stosunkowo łatwa, a generowanie PDF z podstawowego HTML i URLi wymaga minimalnej konfiguracji.

Mimo że bibliotekaDinkToPdfjest darmową alternatywą, jej bazowa technologia Qt WebKit nie jest już aktywnie utrzymywana i ma znane funkcjonalne i bezpieczeństwa ograniczenia. Ponieważ rozwój Qt WebKit zatrzymał się w 2016 roku, jego silnik renderujący nie w pełni wspiera nowoczesne funkcje HTML5, CSS3 i JavaScript. Manipulacja dokumentami, szyfrowanie i wypełnianie formularzy to funkcje poza zakresem DinkToPdf.DinkToPdfskupia się na renderowaniu HTML, więc zespoły, których wymagania sięgają dalej, zwykle muszą dodać dodatkowe biblioteki lub ocenić alternatywę.

Oto porównawcze zestawienie, gdzie każda biblioteka stoi pod względem możliwości omawianych w tym artykule:

Funkcja IronPDF DinkToPdf
Silnik renderujący Chromium (aktualne) Qt WebKit (zamrożony 2016)
HTML5 / CSS3 / JavaScript Pełne wsparcie Częściowe wsparcie
Bootstrap 5 i Flexbox Obsługiwane Nieobsługiwane
Podpisy cyfrowe Obsługiwane Nie obejmuje
Szyfrowanie i hasła Obsługiwane Nie obejmuje
Znak wodny Obsługiwane Nie obejmuje
Wypełnianie formularzy Obsługiwane Nie obejmuje
Licencjonowanie Komercyjna (darmowa wersja próbna) LGPL
Dedykowane wsparcie W zestawie Tylko dla społeczności

Zespoły oceniająceIronPDFw porównaniu doDinkToPdfmogą przetestować każdą funkcję w tym porównaniu z darmową 30-dniową wersją próbną.

Szczegółowy przegląd funkcji

Kluczowe funkcjeIronPDF(z przykładami kodu)

IronPDF dostarczana jest jako pojedyncza paczka NuGet, która obsługuje konwersję HTML na PDF, podpisy cyfrowe, szyfrowanie, dodawanie znaków wodnych, wypełnianie formularzy i wyodrębnianie treści — bez konieczności dodatkowych bibliotek renderujących. Działa w projektach .NET Framework, .NET Core i .NET 5+. Poniższe przykłady kodu ilustrują, jak kilka z tych funkcji działa w praktyce.

Konwersja HTML na PDF

Konwersja HTML na PDF wIronPDFjest zasilana nowoczesnym silnikiem renderującym Chromium (Blink) z pełnym wsparciem dla HTML5, CSS3 i JavaScript. Konwertuje strony HTML, zapewniając, że oryginalne style CSS, media i interaktywność JavaScript są zachowane. Czyni to doskonałą opcją dla programistów, którzy muszą konwertować dynamiczne treści i zapewniać doskonałe wizualnie wyniki.

using IronPdf;

public class Program
{
    public static void Main()
    {
        // Create a ChromePdfRenderer for rendering
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render an HTML file as a PDF
        PdfDocument pdf = renderer.RenderHtmlFileAsPdf("example.html");

        // Save the output PDF
        pdf.SaveAs("example.pdf");
    }
}
using IronPdf;

public class Program
{
    public static void Main()
    {
        // Create a ChromePdfRenderer for rendering
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render an HTML file as a PDF
        PdfDocument pdf = renderer.RenderHtmlFileAsPdf("example.html");

        // Save the output PDF
        pdf.SaveAs("example.pdf");
    }
}
Imports IronPdf

Public Class Program
	Public Shared Sub Main()
		' Create a ChromePdfRenderer for rendering
		Dim renderer As New ChromePdfRenderer()

		' Render an HTML file as a PDF
		Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("example.html")

		' Save the output PDF
		pdf.SaveAs("example.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Wynik: Ten przykład pokazuje, jak użycie ChromePdfRenderer jest wykorzystywane do konwersji pliku HTML (example.html) na wysokiej jakości PDF, zachowując wszystkie style i skrypty. PDF jest zapisany jako "example.pdf".

Wynik konwersji HTML na PDF przez IronPDF

Konwersja adresów URL do formatu PDF

IronPDF pozwala bezproblemowo konwertować adresy URL do PDF, zachowując oryginalny układ i styl strony internetowej. To idealne rozwiązanie dla programistów, którzy muszą uchwycić zawartość całych stron internetowych jako PDF.

using IronPdf;

public class Program
{
    public static void Main()
    {
        // Create a ChromePdfRenderer for rendering
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render a URL as a PDF
        PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");

        // Save the output PDF
        pdf.SaveAs("UrlToPdf.pdf");
    }
}
using IronPdf;

public class Program
{
    public static void Main()
    {
        // Create a ChromePdfRenderer for rendering
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render a URL as a PDF
        PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");

        // Save the output PDF
        pdf.SaveAs("UrlToPdf.pdf");
    }
}
Imports IronPdf

Public Class Program
	Public Shared Sub Main()
		' Create a ChromePdfRenderer for rendering
		Dim renderer As New ChromePdfRenderer()

		' Render a URL as a PDF
		Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://www.apple.com")

		' Save the output PDF
		pdf.SaveAs("UrlToPdf.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Wynik: Ten przykład ilustruje, jak przekonwertować stronę internetową na dokument PDF za pomocą metody RenderUrlAsPdf(). Metoda ta przechwytuje całe strony internetowe i przekształca je w wysokiej jakości dokumenty PDF.

Przykład URL do PDF przez IronPDF

Podpisy PDF

IronPDF pozwala programistom stosować podpisy cyfrowe do PDF. Ta funkcja jest kluczowa dla zapewnienia autentyczności i integralności dokumentów. Programiści mogą podpisywać PDF cyfrowo za pomocą certyfikatów lub dodawać wizualne podpisy, takie jak obraz podpisu odręcznego.

using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
using IronSoftware.Drawing;

public class Program
{
    public static void Main(string[] args)
    {
        // Load the certificate for signing
        X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);

        // Create a PdfSignature object using the certificate
        var sig = new PdfSignature(cert);

        // Specify a signature image
        sig.SignatureImage = new PdfSignatureImage("IronPdf.png", 0, new Rectangle(150, 100, 350, 250));

        // Sign and save the PDF document
        sig.SignPdfFile("product_report.pdf");
    }
}
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
using IronSoftware.Drawing;

public class Program
{
    public static void Main(string[] args)
    {
        // Load the certificate for signing
        X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);

        // Create a PdfSignature object using the certificate
        var sig = new PdfSignature(cert);

        // Specify a signature image
        sig.SignatureImage = new PdfSignatureImage("IronPdf.png", 0, new Rectangle(150, 100, 350, 250));

        // Sign and save the PDF document
        sig.SignPdfFile("product_report.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
Imports IronSoftware.Drawing

Public Class Program
	Public Shared Sub Main(ByVal args() As String)
		' Load the certificate for signing
		Dim cert As New X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable)

		' Create a PdfSignature object using the certificate
		Dim sig = New PdfSignature(cert)

		' Specify a signature image
		sig.SignatureImage = New PdfSignatureImage("IronPdf.png", 0, New Rectangle(150, 100, 350, 250))

		' Sign and save the PDF document
		sig.SignPdfFile("product_report.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Wynik: W tym przykładzie do PDF jest stosowany niewidoczny podpis cyfrowy z certyfikowanym certyfikatem cyfrowym, aby zapewnić autentyczność, co jest niezbędne w przypadku dokumentów ważnych lub poufnych.

Certyfikowany podpis cyfrowy na naszym PDF

Dodawanie niestandardowych znaków wodnych

MożliwościIronPDFrozciągają się na zaawansowaną manipulację PDF. Poza konwersją HTML na PDF pozwala programistom manipulować, wyodrębniać i edytować treść PDF — dodając znaki wodne, adnotacje i edytując tekst lub obrazy w dokumencie PDF. Tutaj pokazujemy, jak łatwo jest zastosować niestandardowe znaki wodne do swoich dokumentów PDF.

using IronPdf;

public class Program
{
    public static void Main()
    {
        // Define the watermark HTML content
        string watermarkHtml = @"
        <img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>
        <h1 style='Color: red'>CONFIDENTIAL</h1>";

        // Load an existing PDF document
        var pdf = PdfDocument.FromFile("ConfidentialDocument.pdf");

        // Apply the watermark with specific settings
        pdf.ApplyWatermark(watermarkHtml, opacity: 75, rotation: 45);

        // Save the resultant PDF
        pdf.SaveAs("ConfidentialDocumentWithWatermark.pdf");
    }
}
using IronPdf;

public class Program
{
    public static void Main()
    {
        // Define the watermark HTML content
        string watermarkHtml = @"
        <img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>
        <h1 style='Color: red'>CONFIDENTIAL</h1>";

        // Load an existing PDF document
        var pdf = PdfDocument.FromFile("ConfidentialDocument.pdf");

        // Apply the watermark with specific settings
        pdf.ApplyWatermark(watermarkHtml, opacity: 75, rotation: 45);

        // Save the resultant PDF
        pdf.SaveAs("ConfidentialDocumentWithWatermark.pdf");
    }
}
Imports IronPdf

Public Class Program
	Public Shared Sub Main()
		' Define the watermark HTML content
		Dim watermarkHtml As String = "
        <img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>
        <h1 style='Color: red'>CONFIDENTIAL</h1>"

		' Load an existing PDF document
		Dim pdf = PdfDocument.FromFile("ConfidentialDocument.pdf")

		' Apply the watermark with specific settings
		pdf.ApplyWatermark(watermarkHtml, opacity:= 75, rotation:= 45)

		' Save the resultant PDF
		pdf.SaveAs("ConfidentialDocumentWithWatermark.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Wynik: Przykład pokazuje, jak zastosować niestandardowe znaki wodne przy użyciu HTML i CSS. Metoda ApplyWatermark pozwala na niestandardowy obrót, umieszczenie i przezroczystość.

Przykład PDF z dodanym znakiem wodnym

Jeśli chcesz odkryć więcej funkcji oferowanych przez IronPDF, koniecznie sprawdź jego informacyjną stronę funkcji lub Przewodniki krok po kroku, które zawierają szczegółowe przykłady kodu dla każdej funkcji.

Kluczowen funkcjeDinkToPdf(z przykładami kodu)

DinkToPdf to lekka biblioteka umożliwiająca konwersję HTML na PDF przy użyciu przestarzałego silnika renderującego Qt WebKit. Warto zauważyć, że Qt WebKit nie jest już aktywnie utrzymywane, a jego silnik renderujący nie w pełni wspiera nowoczesne standardy sieciowe. To proste, otwarte rozwiązanie do generowania PDF z podstawowego HTML i URLi. Zaawansowane funkcje edycji PDF i wsparcie nowoczesnych standardów sieciowych są poza jego zakresem, ale może efektywnie renderować proste, ustrukturyzowane dokumenty, faktury i raporty. Przyjrzyjmy się niektórym z kluczowych funkcji za pomocą praktycznych przykładów.

Konwersja HTML do PDF

DinkToPdf pozwala programistom łatwo konwertować treści HTML na PDF, co czyni go przydatnym do generowania faktur, raportów i drukowalnych wersji stron internetowych.

using DinkToPdf;
using DinkToPdf.Contracts;

public class Program
{
    public static void Main()
    {
        // Create a converter with the basic PDF tools
        var converter = new BasicConverter(new PdfTools());

        // Define the document's global and object settings
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = new GlobalSettings()
            {
                ColorMode = ColorMode.Color,
                Orientation = Orientation.Portrait,
                PaperSize = PaperKind.A4,
                Out = "HtmlToPdf.pdf"
            },
            Objects =
            {
                new ObjectSettings()
                {
                    PagesCount = true,
                    HtmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated using DinkToPdf.</p>",
                    WebSettings = { DefaultEncoding = "utf-8" }
                }
            }
        };

        // Perform the conversion
        converter.Convert(doc);
    }
}
using DinkToPdf;
using DinkToPdf.Contracts;

public class Program
{
    public static void Main()
    {
        // Create a converter with the basic PDF tools
        var converter = new BasicConverter(new PdfTools());

        // Define the document's global and object settings
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = new GlobalSettings()
            {
                ColorMode = ColorMode.Color,
                Orientation = Orientation.Portrait,
                PaperSize = PaperKind.A4,
                Out = "HtmlToPdf.pdf"
            },
            Objects =
            {
                new ObjectSettings()
                {
                    PagesCount = true,
                    HtmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated using DinkToPdf.</p>",
                    WebSettings = { DefaultEncoding = "utf-8" }
                }
            }
        };

        // Perform the conversion
        converter.Convert(doc);
    }
}
Imports DinkToPdf
Imports DinkToPdf.Contracts

Public Class Program
	Public Shared Sub Main()
		' Create a converter with the basic PDF tools
		Dim converter = New BasicConverter(New PdfTools())

		' Define the document's global and object settings
		Dim doc = New HtmlToPdfDocument() With {
			.GlobalSettings = New GlobalSettings() With {
				.ColorMode = ColorMode.Color,
				.Orientation = Orientation.Portrait,
				.PaperSize = PaperKind.A4,
				.Out = "HtmlToPdf.pdf"
			},
			.Objects = {
				New ObjectSettings() With {
					.PagesCount = True, .HtmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated using DinkToPdf.</p>", .WebSettings = { DefaultEncoding = "utf-8" }
				}
			}
		}

		' Perform the conversion
		converter.Convert(doc)
	End Sub
End Class
$vbLabelText   $csharpLabel

Wynik: W tym przykładzie tworzona jest instancja BasicConverter, aby obsłużyć konwersję PDF. Obiekt HtmlToPdfDocument definiuje ustawienia PDF takie jak rozmiar papieru i plik wyjściowy. Treść HTML jest określona w ObjectSettings.

Przykład HTML do PDF przez DinkToPdf

Konwersja adresów URL do formatu PDF

DinkToPdf może również konwertować strony internetowe na żywo do formatu PDF, co czyni go doskonałym do przechwytywania raportów sieciowych, pulpitów nawigacyjnych lub jakiejkolwiek dynamicznej treści.

// Similar to HTML-to-PDF with the Page property set to a URL
// (Example code is unavailable in the original content and left as a description)
// Similar to HTML-to-PDF with the Page property set to a URL
// (Example code is unavailable in the original content and left as a description)
' Similar to HTML-to-PDF with the Page property set to a URL
' (Example code is unavailable in the original content and left as a description)
$vbLabelText   $csharpLabel

Wynik: Ten przykład podąża za podobnym podejściem do konwersji HTML na PDF, ale zamiast tego ustawia właściwość Strona na adres URL. Silnik Qt WebKit przechwytuje stronę internetową i konwertuje ją na PDF, choć może mieć ograniczenia dotyczące nowoczesnych funkcji CSS3 i JavaScript.

Przykład konwersji URL na PDF

Niestandardowe ustawienia strony (marginesy, nagłówki i stopki)

DinkToPdf zapewnia precyzyjną kontrolę nad ustawieniami strony, umożliwiając programistom ustawianie niestandardowych marginesów, nagłówków i stopek dla profesjonalnego formatowania dokumentów.

using DinkToPdf;
using DinkToPdf.Contracts;

public class Program
{
    public static void Main()
    {
        // Create a converter with the basic PDF tools
        var converter = new BasicConverter(new PdfTools());

        // Define the document's global and object settings
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = new GlobalSettings()
            {
                ColorMode = ColorMode.Color,
                Orientation = Orientation.Portrait,
                PaperSize = PaperKind.A4,
                Out = "FormattedPdf.pdf",
                Margins = new MarginSettings() { Top = 10, Bottom = 10, Left = 15, Right = 15 }
            },
            Objects =
            {
                new ObjectSettings()
                {
                    HtmlContent = "<h1>Formatted PDF</h1><p>With custom margins and headers.</p>",
                    WebSettings = { DefaultEncoding = "utf-8" },
                    HeaderSettings = { Center = "Custom Header", FontSize = 10 },
                    FooterSettings = { Right = "Page [page] of [toPage]", FontSize = 10 }
                }
            }
        };

        // Perform the conversion
        converter.Convert(doc);
    }
}
using DinkToPdf;
using DinkToPdf.Contracts;

public class Program
{
    public static void Main()
    {
        // Create a converter with the basic PDF tools
        var converter = new BasicConverter(new PdfTools());

        // Define the document's global and object settings
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = new GlobalSettings()
            {
                ColorMode = ColorMode.Color,
                Orientation = Orientation.Portrait,
                PaperSize = PaperKind.A4,
                Out = "FormattedPdf.pdf",
                Margins = new MarginSettings() { Top = 10, Bottom = 10, Left = 15, Right = 15 }
            },
            Objects =
            {
                new ObjectSettings()
                {
                    HtmlContent = "<h1>Formatted PDF</h1><p>With custom margins and headers.</p>",
                    WebSettings = { DefaultEncoding = "utf-8" },
                    HeaderSettings = { Center = "Custom Header", FontSize = 10 },
                    FooterSettings = { Right = "Page [page] of [toPage]", FontSize = 10 }
                }
            }
        };

        // Perform the conversion
        converter.Convert(doc);
    }
}
Imports DinkToPdf
Imports DinkToPdf.Contracts

Public Class Program
	Public Shared Sub Main()
		' Create a converter with the basic PDF tools
		Dim converter = New BasicConverter(New PdfTools())

		' Define the document's global and object settings
		Dim doc = New HtmlToPdfDocument() With {
			.GlobalSettings = New GlobalSettings() With {
				.ColorMode = ColorMode.Color,
				.Orientation = Orientation.Portrait,
				.PaperSize = PaperKind.A4,
				.Out = "FormattedPdf.pdf",
				.Margins = New MarginSettings() With {
					.Top = 10,
					.Bottom = 10,
					.Left = 15,
					.Right = 15
				}
			},
			.Objects = {
				New ObjectSettings() With {
					.HtmlContent = "<h1>Formatted PDF</h1><p>With custom margins and headers.</p>", .WebSettings = { DefaultEncoding = "utf-8" },
					.HeaderSettings = {
						Center = "Custom Header",
						FontSize = 10
					},
					.FooterSettings = {
						Right = "Page [page] of [toPage]",
						FontSize = 10
					}
				}
			}
		}

		' Perform the conversion
		converter.Convert(doc)
	End Sub
End Class
$vbLabelText   $csharpLabel

Wynik: Ten przykład dodaje niestandardowe formatowanie do PDF. MarginSettings specyfikują marginesy, podczas gdy HeaderSettings i FooterSettings definiują niestandardowe nagłówki i stopki wyświetlające numery stron dla profesjonalnego układu.

Przykład niestandardowych ustawień strony

Cennik i licencjonowanie

Przy wyborze biblioteki PDF dla projektu .NET, licencjonowanie i rozważania kosztowe są kluczowe.IronPDFiDinkToPdfprzestrzegają różnych modeli licencjonowania, a właściwy wybór zależy od budżetu projektu, wymagań i potrzeby wsparcia.

Licencjonowanie i koszty DinkToPdf

DinkToPdf to biblioteka open-source dostępna na licencji GNU Lesser General Public License (LGPL). Chociaż to powoduje, że jest ona darmowa w użyciu, zespoły wdrażając ją w zastosowaniach komercyjnych powinny dokładnie przejrzeć wymagania zgodności LGPL.

Licencjonowanie DinkToPdf

  • Licencja LGPL – Darmowa dla projektów open-source i osobistych.
  • Wymagania zgodności z LGPL – Firmy wykorzystujące ją w aplikacjach zastrzeżonych mogą potrzebować nawigować dodatkowe zobowiązania związane z licencjonowaniem.
  • Brak oficjalnego wsparcia – Napędzane społecznościowo, bez dedykowanej obsługi klienta.
  • Dodatkowy czas rozwoju – Zespoły mogą spędzić dodatkowe godziny na debugowaniu i dostosowywaniu bez dedykowanego wsparcia.

Podsumowanie: ChociażDinkToPdfnie ma kosztu początkowego, firmy używające jej w projektach komercyjnych mogą napotkać ograniczenia związane z licencjonowaniem i dodatkowe koszty utrzymania.

Licencjonowanie i koszty IronPDF

IronPDF przestrzega modelu licencjonowania komercyjnego, zaprojektowanego do użytku profesjonalnego i korporacyjnego. Oferuje darmową wersję próbną do celów rozwojowych i oceny, ale pełna licencja płatna jest wymagana do użytku produkcyjnego.

Licencjonowanie IronPDF

  • Licencja komercyjna bez ograniczeń open-source.
  • Proste ceny opierające się na licencjach dla programistów lub zespołów.
  • Zawiera wszystkie główne funkcje—bez dodatkowych kosztów za HTML na PDF, bezpieczeństwo PDF, lub inne główne narzędzia.
  • Dedykowana obsługa klienta i regularne aktualizacje.

Podsumowanie:IronPDFoferuje kosztowo efektywne, kompleksowe rozwiązanie PDF z zawodowym wsparciem, co czyni je idealnym dla zespołów i firm potrzebujących niezawodnej, skalowalnej biblioteki PDF.

Dla firm szukających długoterminowego rozwiązania z przewidywalnymi kosztami utrzymania, IronPDF jest warty rozważenia. Jego zorganizowane licencjonowanie, pełen zestaw funkcji i ciągłe wsparcie zapewnienia wyższy zwrot z inwestycji w porównaniu do pracy nad integracją i kompatybilnością, które może wymagać wąsko ukierunkowany zakresDinkToPdfz biegiem czasu.

Poza kosztem licencji, całkowity koszt projektu obejmuje godziny deweloperskie spędzone na obchodzeniu braku wsparcia nowoczesnego CSS w Qt WebKit, dodawaniu oddzielnych bibliotek do szyfrowania lub podpisów cyfrowych i nawigowanie zgodności LGPL w zastrzeżonych baz danych kodu. Dla zespołów oceniających koszty w perspektywie wieloletniego cyklu życia projektu koszty integracji i utrzymania często przewyższają różnicę między licencjami open source a komercyjnymi.

Wsparcie dla nowoczesnych frameworków CSS

Krytyczną różnicą międzyIronPDFaDinkToPdfjest ich wsparcie dla nowoczesnych frameworków CSS, takich jak Bootstrap, Tailwind CSS i Foundation.

IronPDF: Pełna obsługa Bootstrap

Silnik renderujący Chrome wIronPDFzapewnia pełne wsparcie dla nowoczesnych frameworków CSS:

  • Bootstrap 5: Pełne wsparcie dla flexbox i CSS Grid dla układów responsywnych
  • Złożone układy: renderuje stronę główną Bootstrap oraz szablony Bootstrap z idealną dokładnością pikselową
  • Nowoczesne funkcje: Animacje CSS3, transformacje, przejścia i zapytania medialne
  • Frameworki CSS: Bootstrap, Tailwind CSS, Foundation, Bulma działają bezproblemowo

Przykład kodu: Renderowanie układu faktury Bootstrap

using IronPdf;

// Render a Bootstrap 5 invoice layout
var renderer = new ChromePdfRenderer();

// Example: Bootstrap invoice with table and flexbox
string bootstrapInvoice = @"
<!DOCTYPE html>
<html>
<head>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
    <div class='container my-5'>
        <div class='d-flex justify-content-between align-items-start mb-4'>
            <div>
                <h1>Invoice</h1>
                <p class='text-muted'>#INV-2025-001</p>
            </div>
            <div class='text-end'>
                <h4>Your Company</h4>
                <p class='mb-0'>123 Business St</p>
                <p>City, State 12345</p>
            </div>
        </div>

        <table class='table table-bordered'>
            <thead class='table-light'>
                <tr>
                    <th>Description</th>
                    <th class='text-end'>Quantity</th>
                    <th class='text-end'>Price</th>
                    <th class='text-end'>Total</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>Professional Services</td>
                    <td class='text-end'>10</td>
                    <td class='text-end'>$150.00</td>
                    <td class='text-end'>$1,500.00</td>
                </tr>
                <tr>
                    <td>Software License</td>
                    <td class='text-end'>1</td>
                    <td class='text-end'>$500.00</td>
                    <td class='text-end'>$500.00</td>
                </tr>
            </tbody>
            <tfoot class='table-light fw-bold'>
                <tr>
                    <td colspan='3' class='text-end'>Total:</td>
                    <td class='text-end'>$2,000.00</td>
                </tr>
            </tfoot>
        </table>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapInvoice);
pdf.SaveAs("bootstrap-invoice.pdf");
using IronPdf;

// Render a Bootstrap 5 invoice layout
var renderer = new ChromePdfRenderer();

// Example: Bootstrap invoice with table and flexbox
string bootstrapInvoice = @"
<!DOCTYPE html>
<html>
<head>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
    <div class='container my-5'>
        <div class='d-flex justify-content-between align-items-start mb-4'>
            <div>
                <h1>Invoice</h1>
                <p class='text-muted'>#INV-2025-001</p>
            </div>
            <div class='text-end'>
                <h4>Your Company</h4>
                <p class='mb-0'>123 Business St</p>
                <p>City, State 12345</p>
            </div>
        </div>

        <table class='table table-bordered'>
            <thead class='table-light'>
                <tr>
                    <th>Description</th>
                    <th class='text-end'>Quantity</th>
                    <th class='text-end'>Price</th>
                    <th class='text-end'>Total</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>Professional Services</td>
                    <td class='text-end'>10</td>
                    <td class='text-end'>$150.00</td>
                    <td class='text-end'>$1,500.00</td>
                </tr>
                <tr>
                    <td>Software License</td>
                    <td class='text-end'>1</td>
                    <td class='text-end'>$500.00</td>
                    <td class='text-end'>$500.00</td>
                </tr>
            </tbody>
            <tfoot class='table-light fw-bold'>
                <tr>
                    <td colspan='3' class='text-end'>Total:</td>
                    <td class='text-end'>$2,000.00</td>
                </tr>
            </tfoot>
        </table>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapInvoice);
pdf.SaveAs("bootstrap-invoice.pdf");
Imports IronPdf

' Render a Bootstrap 5 invoice layout
Dim renderer As New ChromePdfRenderer()

' Example: Bootstrap invoice with table and flexbox
Dim bootstrapInvoice As String = "
<!DOCTYPE html>
<html>
<head>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
    <div class='container my-5'>
        <div class='d-flex justify-content-between align-items-start mb-4'>
            <div>
                <h1>Invoice</h1>
                <p class='text-muted'>#INV-2025-001</p>
            </div>
            <div class='text-end'>
                <h4>Your Company</h4>
                <p class='mb-0'>123 Business St</p>
                <p>City, State 12345</p>
            </div>
        </div>

        <table class='table table-bordered'>
            <thead class='table-light'>
                <tr>
                    <th>Description</th>
                    <th class='text-end'>Quantity</th>
                    <th class='text-end'>Price</th>
                    <th class='text-end'>Total</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>Professional Services</td>
                    <td class='text-end'>10</td>
                    <td class='text-end'>$150.00</td>
                    <td class='text-end'>$1,500.00</td>
                </tr>
                <tr>
                    <td>Software License</td>
                    <td class='text-end'>1</td>
                    <td class='text-end'>$500.00</td>
                    <td class='text-end'>$500.00</td>
                </tr>
            </tbody>
            <tfoot class='table-light fw-bold'>
                <tr>
                    <td colspan='3' class='text-end'>Total:</td>
                    <td class='text-end'>$2,000.00</td>
                </tr>
            </tfoot>
        </table>
    </div>
</body>
</html>"

Dim pdf = renderer.RenderHtmlAsPdf(bootstrapInvoice)
pdf.SaveAs("bootstrap-invoice.pdf")
$vbLabelText   $csharpLabel

Powyższy kod renderuje się idealnie z IronPDF, zachowując wszystkie style Bootstrap, w tym układy flexbox, stylizację tabel i klasy usługowe.

Ograniczenia dotyczące kompatybilnościDinkToPdfz Bootstrap

DinkToPdf opiera się na WkHtmlToPdf z przestarzałym silnikiem Qt WebKit, którego pipeline renderowania pochodzi sprzed wielu nowoczesnych specyfikacji CSS:

  • Brak wsparcia dla flexbox: Bootstrap 4+ mocno polega na flexbox, którego silnik Qt WebKit nie w pełni wspiera
  • CSS Grid nie jest obsługiwany: Nowoczesne siatki układów nie będą się renderowały prawidłowo
  • Silnik zamrożony na 2016 rok: Ostatnia aktualizacja Qt WebKit pochodzi sprzed wielu obecnych funkcji CSS3
  • Problemy z bezpieczeństwem: Qt WebKit ma znane luki w zabezpieczeniach i nie jest już utrzymywany
  • Wymagane obejścia: Programiści zazwyczaj muszą używać starszych wersji Bootstrap (Bootstrap 3 lub starsze) lub wdrażać alternatywy oparte na tabelach

Więcej szczegółów na temat wsparcia frameworków CSS i rozwiązywania problemów z renderowaniem flexbox/Bootstrap znajdziesz w Przewodniku CSS Bootstrap & Flexbox.

Którą bibliotekę wybrać?

Wybór odpowiedniej biblioteki dla projektu .NET zależy od czynników takich jak łatwość użytkowania, funkcje i licencjonowanie. Zarówno IronPDF, jak i DinkToPdf zapewniają funkcjonalność HTML na PDF, ale zaspokajają różne potrzeby.DinkToPdfjest darmowy i open-source, co czyni go dostępnym punktem wyjścia, choć zespoły mogą napotkać trudności związane z ograniczeniami licencyjnymi, brakiem oficjalnego wsparcia i węższym obszarem zastosowania silnika Qt WebKit w odniesieniu do nowoczesnych standardów internetowych.IronPDFoferuje bardziej kompleksowe, profesjonalne rozwiązanie z aktualnym silnikiem renderującym Chromium, licencjonowaniem komercyjnym i dedykowanym wsparciem.

IronPDFvs. DinkToPdf: Kluczowe wnioski

Dlaczego warto wybrać IronPDF?

  • Łatwość użytkowania – Proste API, które minimalizuje czas rozwoju.
  • Świetna personalizacja - Generuj pliki PDF w pełni dostosowane do Twoich potrzeb.
  • Kompleksowy zestaw funkcji – Zawiera HTML-to-PDF, URL-to-PDF, dodawanie znaków wodnych, szyfrowanie i podpisy cyfrowe.
  • Aktualny silnik renderujący – Używa osadzonego silnika Chromium z pełnym wsparciem dla HTML5, CSS3 i JavaScript dla wysoce precyzyjnego wyjścia.
  • Licencjonowanie komercyjne i wsparcie – Licencja wieczysta z dedykowaną pomocą klienta.

Kompromisy DinkToPdf

  • Brak oficjalnego wsparcia – W dużym stopniu zależna od pomocy społecznościowej, która może być niespójna.
  • Ograniczone aktualizacje – Utrzymanie zależy od wolontariuszy.
  • Wymagania zgodności z LGPL – Licencjonowanie LGPL wprowadza wymagania, które mogą nie pasować do każdego modelu wdrażania komercyjnego.

Podsumowanie

Dla zespołów potrzebujących niezawodnego, w pełni wspieranego rozwiązania PDF z nowoczesnym silnikiem renderującym,IronPDFjest warty poważnego rozważenia. Jego przyjazne dla programisty API, pełen zestaw funkcji i proste licencjonowanie komercyjne czynią go mocnym wyborem dla projektów .NET dowolnej skali.

SpróbujIronPDFjuż dziś -- pobierz darmową wersję próbną i przetestuj każdą funkcję pokazaną w tym porównaniu dla siebie.

Zwróć uwagęDinkToPdf to zarejestrowany znak towarowy jego właściciela. Ta strona nie jest powiązana z, autoryzowana przez, ani sponsorowana przez DinkToPdf. 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.

Często Zadawane Pytania

Jak mogę przekonwertować HTML na PDF w języku C#?

Możesz użyć metody RenderHtmlAsPdf biblioteki IronPDF do konwersji ciągów HTML na pliki PDF. Możesz również konwertować pliki HTML na pliki PDF za pomocą metody RenderHtmlFileAsPdf.

Jakie są główne zalety korzystania z IronPDF w porównaniu z DinkToPdf?

IronPDF oferuje kompleksowy zestaw funkcji wykraczający poza podstawową konwersję HTML do PDF, w tym szyfrowanie, podpisy cyfrowe, znakowanie wodne i obsługę formularzy. Zapewnia również dedykowaną obsługę klienta i prosty model licencjonowania komercyjnego.

Jakie różnice w licencjonowaniu należy wziąć pod uwagę między IronPDF a DinkToPdf?

DinkToPdf jest dostępny na licencji GNU Lesser General Public License (LGPL), co oznacza, że jest bezpłatny dla projektów open source, ale może podlegać ograniczeniom w przypadku użytku komercyjnego. IronPDF działa na zasadzie licencji komercyjnej bez ograniczeń open source, co sprawia, że nadaje się do użytku profesjonalnego i korporacyjnego.

Czy IronPDF radzi sobie z dynamicznymi stronami internetowymi o złożonym układzie?

Tak, IronPDF może konwertować dynamiczne strony o złożonych układach, zawierające multimedia, skrypty i elementy interaktywne, zachowując styl CSS i interaktywność JavaScript.

Czy IronPDF obsługuje dodawanie podpisów cyfrowych do plików PDF?

Tak, IronPDF umożliwia programistom stosowanie podpisów cyfrowych w plikach PDF przy użyciu certyfikatów, zapewniając autentyczność i integralność dokumentów.

Jakie są ograniczenia DinkToPdf?

DinkToPdf nie posiada wielu zaawansowanych funkcji niezbędnych do złożonych procesów pracy z plikami PDF, takich jak edycja dokumentów, szyfrowanie czy wypełnianie formularzy. Opiera się również na wsparciu społeczności, które może być niejednolite.

W jaki sposób IronPDF zapewnia wysoką jakość renderowania plików PDF?

IronPDF wykorzystuje solidny silnik renderujący, który zapewnia zachowanie oryginalnych stylów CSS, multimediów i interaktywności JavaScript, dzięki czemu nadaje się do konwersji treści dynamicznych i gwarantuje wyniki o idealnej rozdzielczości.

Czy DinkToPdf może konwertować adresy URL na pliki PDF?

Tak, DinkToPdf moze konwertowac aktywne strony internetowe na format PDF, przechwytujac cala strone przy zachowaniu stylow i formatowania.

Jakiego rodzaju wsparcie oferuje IronPDF?

IronPDF zapewnia dedykowane wsparcie klienta i regularne aktualizacje, co jest czescia jego komercyjnego modelu licencyjnego.

Dlaczego IronPDF uznawany jest za ekonomiczne rozwiazanie dla firm?

IronPDF oferuje ekonomiczne, kompleksowe rozwiazanie PDF z profesjonalnym wsparciem, dzieki czemu jest idealne dla firm potrzebujacych niezawodnej i skalowalnej biblioteki PDF bez ukrytych kosztow zwiazanych z alternatywami open-source.

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

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie