UżYWANIE IRON SUITE

HTML do PDF w C# dla deweloperów .NET (Kompedium Wiedzy)

Wprowadzenie

W dzisiejszym świecie opartym na sieci WWW możliwość konwersji treści HTML do dokumentów PDF (Portable Document Format) jest kluczową funkcją wielu aplikacji. Niezależnie od tego, czy chodzi o generowanie plików PDF z raportów, faktur czy archiwizację treści internetowych, konwersja HTML na PDF usprawnia przepływ pracy i zapewnia spójne formatowanie wysokiej jakości plików PDF. Biblioteki takie jak IronPDF zapewniają przyjazny dla programistów sposób obsługi tej konwersji, obsługując treści dynamiczne, formularze HTML oraz precyzyjne renderowanie CSS i JavaScript.

Dla programistów .NET użycie odpowiedniego konwertera HTML na PDF ma wpływ na wydajność, prostotę kodu i jakość generowanych plików PDF. Nowoczesne biblioteki pozwalają programistom na bezpośrednią konwersję ciągów znaków HTML, całych stron internetowych lub plików HTML na renderowane dokumenty PDF za pomocą zaledwie kilku linii kodu, umożliwiając tworzenie dokumentów dynamicznych, niestandardowych nagłówków oraz wersji treści internetowych przeznaczonych do druku.

Czego się nauczysz

W tym przewodniku dowiesz się, jak konwertować HTML na PDF w języku C# przy użyciu kilku bibliotek, oraz poznasz ich możliwości w zakresie konwersji do formatu PDF, w tym manipulowanie dokumentami PDF, formularzami HTML, niestandardowymi marginesami i zabezpieczonymi plikami PDF. W niniejszym artykułe omówimy następujące tematy:

  1. Dłączego warto porównać narzędzia do konwersji HTML na PDF?
  2. IronPDF: Konwersja HTML do PDF
  3. Aspose: Konwersja HTML do PDF
  4. iText 9: Konwersja HTML do PDF
  5. wkhtmltopdf: Konwersja HTML do PDF
  6. PuppeteerSharp: Konwersja HTML do PDF
  7. Podsumowanie Dłączego warto wybrać IronPDF?

Na koniec zrozumiesz, dłączego IronPDF wyróżnia się jako przyjazny dla programistów i wydajny konwerter HTML na PDF. Zapoznaj się z naszymi innymi przewodnikami porównawczymi, w których dokładniej analizujemy, jak IronPDF wypada na tle Aspose.PDF, iText 9, wkhtmltopdf i PuppeteerSharp, aby sprawdzić, które rozwiązanie najlepiej pasuje do Twojego projektu i dłączego IronPDF zajmuje pierwsze miejsce.

Dłączego warto porównać narzędzia do konwersji HTML na PDF?

Wybór odpowiedniego narzędzia do konwersji HTML na PDF ma kluczowe znaczenie dla zapewnienia, że aplikacja spełnia wymagania dotyczące wydajności, jakości i kosztów. Przy tak wielu dostępnych opcjach, z których każda oferuje inne możliwości konwersji plików PDF, dokładne porównanie pomaga w podjęciu świadomej decyzji. Oto kluczowe kryteria oceny, które należy wziąć pod uwagę:

  • Złożoność integracji: Jak łatwo biblioteka integruje się z istniejącymi projektami .NET, np. dzięki wykorzystaniu menedżera pakietów NuGet do prostej instalacji oraz konfiguracji zakładki integracji API.
  • Prostota kodu: Łatwość pisania i utrzymywania kodu źródłowego, w tym minimalne przykłady kodu, takie jak zaledwie kilka wierszy do konwersji ciągów HTML lub całych stron internetowych na wygenerowane dokumenty PDF.
  • Dokładność renderowania: Zdolność silnika renderującego do dokładnego przetwarzania kodu HTML, wykonywania kodu JavaScript, drukowania CSS, formularzy HTML i innych treści dynamicznych przy jednoczesnym tworzeniu plików PDF o wysokiej jakości.
  • Wydajność przy dużym obciążeniu: Jak dobrze konwerter PDF radzi sobie przy dużym obciążeniu podczas generowania plików PDF z wielu stron HTML lub treści dynamicznych.
  • Licencjonowanie i opłacalność: modele cenowe, takie jak licencja komercyjna, oraz dopasowanie do budżetu projektu.

Oceniając te czynniki, programiści mogą wybrać narzędzie, które spełnia zarówno wymagania techniczne, jak i ograniczenia finansowe, niezależnie od tego, czy pracują nad projektami .NET Core, czy .NET Framework w Visual Studio.

IronPDF: Konwersja HTML do PDF

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 1

IronPDF to w pełni funkcjonalna biblioteka .NET zaprojektowana specjalnie dla programistów. Oferuje gotowe do użycia metody konwersji ciągów HTML, plików lokalnych i aktywnych adresów URL na pliki PDF przy minimalnej konfiguracji. Silnik renderujący oparty na przeglądarce Chrome zapewnia wysoką dokładność, w tym obsługę CSS i JavaScript. IronPDF jest produktem komercyjnym, ale oferuje solidne wsparcie techniczne i proste w obsłudze API.

Ciąg znaków HTML do pliku PDF

Konwersja HTML z ciągu znaków do formatu PDF jest prosta dzięki IronPDF. To podejście jest idealne do generowania treści dynamicznych lub małych fragmentów kodu HTML.

Przykład:

using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
        pdf.SaveAs("output.pdf");
    }
}
using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main(args As String())
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>")
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Wygenerowany dokument PDF

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 2

Wyjaśnienie:

  1. ChromePdfRenderer: Klasa ChromePdfRenderer jest głównym narzędziem do konwersji HTML do PDF w IronPDF. Jest wstępnie skonfigurowany do obsługi większości przypadków użycia przy minimalnej konfiguracji.
  2. RenderHtmlAsPdf: Ta metoda przyjmuje ciąg HTML jako dane wejściowe i generuje dokument PDF.
  3. SaveAs: Wygenerowany PDF jest zapisywany w określonej ścieżce (output.pdf).

Lokalny plik HTML do PDF

W przypadku aplikacji, które wymagają konwersji lokalnego pliku HTML (z zasobami zewnętrznymi, takimi jak CSS lub JavaScript), IronPDF znacznie ułatwia to zadanie.

Przykład:

using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
        pdf.SaveAs("report.pdf");
    }
}
using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
        pdf.SaveAs("report.pdf");
    }
}
Imports IronPdf
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()
		Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("template.html")
		pdf.SaveAs("report.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Plik HTML wejściowy

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 3

Wynik

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 4

Wyjaśnienie:

  • RenderHtmlFileAsPdf: Pobiera lokalny plik HTML i konwertuje go do formatu PDF.
  • Automatycznie obsługuje zasoby powiązane, takie jak zewnętrzne pliki CSS i JavaScript.

URL do pliku PDF

IronPDF jest szczególnie wydajny podczas konwersji dynamicznych treści internetowych z adresów URL, w tym stron wykorzystujących JavaScript.

Przykład:

using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
        renderer.RenderingOptions.WaitFor.RenderDelay(3000); // Wait up to 3 seconds for JS to load

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://apple.com");
        pdf.SaveAs("url-to-pdf.pdf");
    }
}
using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
        renderer.RenderingOptions.WaitFor.RenderDelay(3000); // Wait up to 3 seconds for JS to load

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://apple.com");
        pdf.SaveAs("url-to-pdf.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main(args As String())
        Dim renderer = New ChromePdfRenderer()
        renderer.RenderingOptions.EnableJavaScript = True
        renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
        renderer.RenderingOptions.WaitFor.RenderDelay(3000) ' Wait up to 3 seconds for JS to load

        Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://apple.com")
        pdf.SaveAs("url-to-pdf.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Wynik

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 5

Wyjaśnienie:

  • RenderUrlAsPdf: Pobiera zawartość adresu URL, w tym elementy renderowane przez JavaScript, i konwertuje ją do formatu PDF.

Werdykt / Kiedy stosować

IronPDF jest idealnym rozwiązaniem dla programistów, którzy potrzebują łatwej integracji API, minimalnej ilości kodu oraz wsparcia w zakresie manipulowania dokumentami PDF, tworzenia dokumentów dynamicznych, formularzy HTML, niestandardowych nagłówków oraz wersji treści internetowych przeznaczonych do druku. Idealny do projektów .NET Core lub .NET Framework w Visual Studio.

Aspose: Konwersja HTML do PDF

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 6

Aspose.PDF to kolejna potężna biblioteka do manipulacji plikami PDF, obsługująca konwersję HTML do PDF. Zobaczmy, jak Aspose radzi sobie z każdym scenariuszem konwersji:

Ciąg znaków HTML do pliku PDF

Aspose wymaga nieco więcej konfiguracji podczas konwersji ciągów HTML w porównaniu z IronPDF.

Przykład:

using Aspose.Html;
using Aspose.Html.Saving;

Document doc = new Document();
Page page = doc.getPages().Add();
HtmlFragment htmlFragment = new HtmlFragment("<h1>HTML String</h1>");
page.getParagraphs().Add(htmlFragment);
doc.Save("HTMLStringUsingDOM.pdf");
using Aspose.Html;
using Aspose.Html.Saving;

Document doc = new Document();
Page page = doc.getPages().Add();
HtmlFragment htmlFragment = new HtmlFragment("<h1>HTML String</h1>");
page.getParagraphs().Add(htmlFragment);
doc.Save("HTMLStringUsingDOM.pdf");
Imports Aspose.Html
Imports Aspose.Html.Saving

Private doc As New Document()
Private page As Page = doc.getPages().Add()
Private htmlFragment As New HtmlFragment("<h1>HTML String</h1>")
page.getParagraphs().Add(htmlFragment)
doc.Save("HTMLStringUsingDOM.pdf")
$vbLabelText   $csharpLabel

Wynik

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 7

Wyjaśnienie:

  • Dokument doc: Tworzy nowy dokument, w którym zostanie zapisany przekonwertowany ciąg znaków HTML.
  • Strona: Ta linia dodaje nową stronę do utworzonego przez nas pustego dokumentu.
  • HtmlFragment htmlFragment: Jest to ciąg HTML, który konwertujemy.
  • page.getParagraphs().Add(htmlFragment): Dodaj kod HTML do dokumentu.
  • doc.Save: Zapisuje dokument z treścią HTML jako dokument PDF.

Lokalny plik HTML do PDF

Aspose obsługuje również konwersję lokalnych plików HTML do formatu PDF, ale wymaga to więcej konfiguracji niż w przypadku IronPDF.

Przykład:

using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving;

var document = new HTMLDocument("document.html");
var options = new PdfSaveOptions();
Converter.ConvertHTML(document, options, "output.pdf");
using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving;

var document = new HTMLDocument("document.html");
var options = new PdfSaveOptions();
Converter.ConvertHTML(document, options, "output.pdf");
Imports Aspose.Html
Imports Aspose.Html.Converters
Imports Aspose.Html.Saving

Private document = New HTMLDocument("document.html")
Private options = New PdfSaveOptions()
Converter.ConvertHTML(document, options, "output.pdf")
$vbLabelText   $csharpLabel

HTML źródłowy:

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 8

Wynik:

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 9

Wyjaśnienie:

  • var document = new HTMLDocument("document.html"): Ładuje plik HTML.
  • var options: Tworzy nowy obiekt PdfSaveOptions.
  • Converter.ConvertHTML(): Konwertuje HTML na PDF.

URL do pliku PDF

Aspose zapewnia podobną funkcjonalność dla adresów URL, ale wymaga dodatkowej konfiguracji.

Przykład:

using System.IO;
using System;
using System.Net.Http;
using Aspose.Pdf;

HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://www.apple.com");
response.EnsureSuccessStatusCode();
string responseFromServer = await response.Content.ReadAsStringAsync();
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
HtmlLoadOptions options = new HtmlLoadOptions("https://www.apple.com");
Document pdfDocument = new Document(stream, options);
pdfDocument.Save("WebPageToPDF_out.pdf");
using System.IO;
using System;
using System.Net.Http;
using Aspose.Pdf;

HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://www.apple.com");
response.EnsureSuccessStatusCode();
string responseFromServer = await response.Content.ReadAsStringAsync();
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
HtmlLoadOptions options = new HtmlLoadOptions("https://www.apple.com");
Document pdfDocument = new Document(stream, options);
pdfDocument.Save("WebPageToPDF_out.pdf");
Imports System.IO
Imports System
Imports System.Net.Http
Imports Aspose.Pdf

Dim client As New HttpClient()
Dim response As HttpResponseMessage = Await client.GetAsync("https://www.apple.com")
response.EnsureSuccessStatusCode()
Dim responseFromServer As String = Await response.Content.ReadAsStringAsync()
Dim stream As New MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer))
Dim options As New HtmlLoadOptions("https://www.apple.com")
Dim pdfDocument As New Document(stream, options)
pdfDocument.Save("WebPageToPDF_out.pdf")
$vbLabelText   $csharpLabel

Wynik

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 10

Wyjaśnienie:

  • Zmienna dataDir przechowuje katalog, w którym zostanie zapisany wygenerowany PDF.
  • Tworzony jest WebRequest, aby uzyskać dostęp do głównej strony Wikipedii, a do żądania używane są domyślne poświadczenia.
  • Metoda GetResponse() wysyła żądanie i pobiera odpowiedź jako HttpWebResponse.
  • Strumień jest uzyskiwany z odpowiedzi, a StreamReader odczytuje całą zawartość HTML strony do ciągu responseFromServer.
  • Zawartość HTML z responseFromServer jest konwertowana na tablicę bajtów, a następnie ładowana do MemoryStream.
  • HtmlLoadOptions służy do określenia podstawowego URL dla linków względnych i innych ustawień.
  • Tworzony jest Aspose.Pdf.Document z pamięciowego strumienia zawierającego HTML, a dokument jest zapisywany jako PDF w określonym katalogu.

Werdykt / Kiedy stosować

Aspose.PDF najlepiej sprawdza się w projektach Enterprise, które wymagają zaawansowanej obróbki plików PDF, a także ich konwersji. Jest to potężne narzędzie, ale mniej zoptymalizowane pod kątem szybkiego konwertowania plików HTML do formatu PDF.

iText 9: Konwersja HTML do PDF

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 11

iText 9 to najnowsza wersja biblioteki iText PDF, oferująca ulepszone funkcje do generowania i edycji dokumentów PDF w aplikacjach .NET. Wprowadza bardziej usprawniony i rozszerzalny interfejs API, poprawiając wydajność i zapewniając lepszą obsługę nowoczesnych standardów PDF.

Ciąg znaków HTML do pliku PDF

Oto podstawowy przykład konwersji ciągu znaków HTML na dokument PDF przy użyciu iText 9.

Przykład:

using iText.Html2pdf;
using System.IO;

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

        using (var pdfStream = new FileStream(outputFile, FileMode.Create))
        {
            HtmlConverter.ConvertToPdf(html, pdfStream);
        }

        System.Console.WriteLine("PDF generated: " + outputFile);
    }
}
using iText.Html2pdf;
using System.IO;

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

        using (var pdfStream = new FileStream(outputFile, FileMode.Create))
        {
            HtmlConverter.ConvertToPdf(html, pdfStream);
        }

        System.Console.WriteLine("PDF generated: " + outputFile);
    }
}
Imports iText.Html2pdf
Imports System.IO

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

        Using pdfStream As New FileStream(outputFile, FileMode.Create)
            HtmlConverter.ConvertToPdf(html, pdfStream)
        End Using

        System.Console.WriteLine("PDF generated: " & outputFile)
    End Sub
End Class
$vbLabelText   $csharpLabel

Wynik

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 12

Lokalny plik HTML do PDF

iText 9 może konwertować pliki HTML do formatu PDF za pomocą klasy HtmlConverter.ConvertToPdf.

Przykład:

using iText.Html2pdf;
using System.IO;

class Program
{
    static void Main()
    {
        string htmlFile = "document.html";
        string outputPdf = "html-file-to-pdf.pdf";

        // Read HTML content from file
        string htmlContent = File.ReadAllText(htmlFile);

        // Convert HTML string to PDF
        HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));

        System.Console.WriteLine("PDF generated: " + outputPdf);
    }
}
using iText.Html2pdf;
using System.IO;

class Program
{
    static void Main()
    {
        string htmlFile = "document.html";
        string outputPdf = "html-file-to-pdf.pdf";

        // Read HTML content from file
        string htmlContent = File.ReadAllText(htmlFile);

        // Convert HTML string to PDF
        HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));

        System.Console.WriteLine("PDF generated: " + outputPdf);
    }
}
Imports iText.Html2pdf
Imports System.IO

Module Program
    Sub Main()
        Dim htmlFile As String = "document.html"
        Dim outputPdf As String = "html-file-to-pdf.pdf"

        ' Read HTML content from file
        Dim htmlContent As String = File.ReadAllText(htmlFile)

        ' Convert HTML string to PDF
        HtmlConverter.ConvertToPdf(htmlContent, New FileStream(outputPdf, FileMode.Create))

        System.Console.WriteLine("PDF generated: " & outputPdf)
    End Sub
End Module
$vbLabelText   $csharpLabel

Wynik

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 13

Wyjaśnienie:

  • HtmlConverter: Konwertuje plik HTML bezpośrednio do formatu PDF.

URL do pliku PDF

iText7 obsługuje również konwersję treści z adresów URL.

Przykład:

using iText.Html2pdf;
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        string url = "https://apple.com";
        string outputPdf = "url-to-pdf.pdf";

        using var httpClient = new HttpClient();
        // Fetch the HTML content from the URL
        string htmlContent = await httpClient.GetStringAsync(url);

        // Convert HTML content to PDF
        HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));

        Console.WriteLine("PDF generated: " + outputPdf);
    }
}
using iText.Html2pdf;
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        string url = "https://apple.com";
        string outputPdf = "url-to-pdf.pdf";

        using var httpClient = new HttpClient();
        // Fetch the HTML content from the URL
        string htmlContent = await httpClient.GetStringAsync(url);

        // Convert HTML content to PDF
        HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));

        Console.WriteLine("PDF generated: " + outputPdf);
    }
}
Imports iText.Html2pdf
Imports System
Imports System.IO
Imports System.Net.Http
Imports System.Threading.Tasks

Module Program
    Async Function Main() As Task
        Dim url As String = "https://apple.com"
        Dim outputPdf As String = "url-to-pdf.pdf"

        Using httpClient As New HttpClient()
            ' Fetch the HTML content from the URL
            Dim htmlContent As String = Await httpClient.GetStringAsync(url)

            ' Convert HTML content to PDF
            HtmlConverter.ConvertToPdf(htmlContent, New FileStream(outputPdf, FileMode.Create))

            Console.WriteLine("PDF generated: " & outputPdf)
        End Using
    End Function
End Module
$vbLabelText   $csharpLabel

Wynik

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 14

Wyjaśnienie:

  • HttpClient.GetStringAsync(url): Pobiera rzeczywistą zawartość HTML z podanego adresu URL.
  • HtmlConverter.ConvertToPdf(htmlContent, …): Konwertuje pobrany ciąg HTML na renderowany PDF.

Werdykt / Kiedy stosować

iText 9 jest odpowiedni dla deweloperów potrzebujących solidnego, korporacyjnego rozwiązania do tworzenia, manipulacji PDF i konwersji HTML do PDF. Działa dobrze, gdy wymagańe jest precyzyjne kontrolowanie wygenerowanego PDF, integracja z istniejącymi przepływami pracy iText lub zaawansowane funkcje PDF, takie jak podpisy cyfrowe i formularze. Jednak w przypadku prostych zadań konwersji HTML do PDF, iText 9 jest cięższy i bardziej skomplikówany niż smukłe biblioteki, takie jak IronPDF.

wkhtmltopdf: Konwersja HTML do PDF

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 15

Archiwizacja i Status Utrzymania

Ważne jest, aby zauważyć, że wkhtmltopdf nie jest już aktywnie utrzymywany. Jego repozytorium GitHub zostało oficjalnie zarchiwizowane w styczniu 2023 roku i oznaczone jako tylko-do-odczytu, co oznacza, że nie są stosowane żadne przyszłe aktualizacje, poprawki błędów ani łaty bezpieczeństwa.

Konsekwencje dla deweloperów: Choć wkhtmltopdf nadal może być skuteczny dla bardzo podstawowych przypadków użycia, jego nieutrzymywany status i przestarzały silnik renderowania czynią go ryzykownym wyborem—zwłaszcza dla środowisk produkcyjnych lub aplikacji obsługujących dynamiczną lub zewnętrzną zawartość HTML.

wkhtmltopdf to narzędzie wiersza poleceń, które konwertuje pliki HTML do PDF przy użyciu renderowania Webkit. Oto, jak działa w różnych scenariuszach:

Ciąg znaków HTML do pliku PDF

wkhtmltopdf wymaga konwersji ciągów HTML poprzez najpierw zapisanie ich w pliku.

Przykład:

using System;
using System.IO;
using System.Diagnostics;
class Program
{
    static void Main(string[] args)
    {
        // HTML string to be converted to PDF
        string html = "<html><body><h1>Hello, World!</h1></body></html>";
        // Write HTML string to temporary file
        string tempHtmlFile = Path.Combine(Path.GetTempPath(), "temp.html");
        File.WriteAllText(tempHtmlFile, html);
        // Set output PDF path
        string outputPdfFile = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf");
        // Execute wkhtmltopdf command
        Process process = new Process();
        process.StartInfo.FileName = "wkhtmltopdf";
        process.StartInfo.Arguments = $"\"{tempHtmlFile}\" \"{outputPdfFile}\"";
        process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        process.Start();
        process.WaitForExit();
        // Clean up the temporary HTML file
        File.Delete(tempHtmlFile);
        Console.WriteLine($"PDF saved to: {outputPdfFile}");
    }
}
using System;
using System.IO;
using System.Diagnostics;
class Program
{
    static void Main(string[] args)
    {
        // HTML string to be converted to PDF
        string html = "<html><body><h1>Hello, World!</h1></body></html>";
        // Write HTML string to temporary file
        string tempHtmlFile = Path.Combine(Path.GetTempPath(), "temp.html");
        File.WriteAllText(tempHtmlFile, html);
        // Set output PDF path
        string outputPdfFile = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf");
        // Execute wkhtmltopdf command
        Process process = new Process();
        process.StartInfo.FileName = "wkhtmltopdf";
        process.StartInfo.Arguments = $"\"{tempHtmlFile}\" \"{outputPdfFile}\"";
        process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        process.Start();
        process.WaitForExit();
        // Clean up the temporary HTML file
        File.Delete(tempHtmlFile);
        Console.WriteLine($"PDF saved to: {outputPdfFile}");
    }
}
Imports System
Imports System.IO
Imports System.Diagnostics
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' HTML string to be converted to PDF
		Dim html As String = "<html><body><h1>Hello, World!</h1></body></html>"
		' Write HTML string to temporary file
		Dim tempHtmlFile As String = Path.Combine(Path.GetTempPath(), "temp.html")
		File.WriteAllText(tempHtmlFile, html)
		' Set output PDF path
		Dim outputPdfFile As String = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf")
		' Execute wkhtmltopdf command
		Dim process As New Process()
		process.StartInfo.FileName = "wkhtmltopdf"
		process.StartInfo.Arguments = $"""{tempHtmlFile}"" ""{outputPdfFile}"""
		process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
		process.Start()
		process.WaitForExit()
		' Clean up the temporary HTML file
		File.Delete(tempHtmlFile)
		Console.WriteLine($"PDF saved to: {outputPdfFile}")
	End Sub
End Class
$vbLabelText   $csharpLabel

Wynik

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 16

Wyjaśnienie:

  • wkhtmltopdf wymaga pliku wejściowego, więc najpierw zapisujemy ciąg HTML do pliku tymczasowego (temp.html).
  • Następnie używamy klasy Process, aby wykonać polecenie wkhtmltopdf, przekazując ścieżkę pliku tymczasowego HTML i żądaną ścieżkę wyjściową PDF jako argumenty.
  • Po konwersji usuwamy plik tymczasowy HTML, aby posprzątać.

Lokalny plik HTML do PDF

Aby przekonwertować lokalny plik HTML na PDF przy użyciu wkhtmltopdf, można bezpośrednio wskazać ścieżkę pliku HTML.

Przykład:

using System;
using System.Diagnostics;

class Program
{
    static void Main(string[] args)
    {
        // Path to the local HTML file
        string htmlFilePath = @"C:\path\to\your\document.html";
        // Path for the output PDF file
        string outputPdfFile = @"C:\path\to\output\html-file-to-pdf.pdf";
        // Execute wkhtmltopdf command
        Process process = new Process();
        process.StartInfo.FileName = "wkhtmltopdf";
        process.StartInfo.Arguments = $"\"{htmlFilePath}\" \"{outputPdfFile}\"";
        process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        process.Start();
        process.WaitForExit();
        Console.WriteLine($"PDF saved to: {outputPdfFile}");
    }
}
using System;
using System.Diagnostics;

class Program
{
    static void Main(string[] args)
    {
        // Path to the local HTML file
        string htmlFilePath = @"C:\path\to\your\document.html";
        // Path for the output PDF file
        string outputPdfFile = @"C:\path\to\output\html-file-to-pdf.pdf";
        // Execute wkhtmltopdf command
        Process process = new Process();
        process.StartInfo.FileName = "wkhtmltopdf";
        process.StartInfo.Arguments = $"\"{htmlFilePath}\" \"{outputPdfFile}\"";
        process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        process.Start();
        process.WaitForExit();
        Console.WriteLine($"PDF saved to: {outputPdfFile}");
    }
}
Imports System
Imports System.Diagnostics

Module Program
    Sub Main(args As String())
        ' Path to the local HTML file
        Dim htmlFilePath As String = "C:\path\to\your\document.html"
        ' Path for the output PDF file
        Dim outputPdfFile As String = "C:\path\to\output\html-file-to-pdf.pdf"
        ' Execute wkhtmltopdf command
        Dim process As New Process()
        process.StartInfo.FileName = "wkhtmltopdf"
        process.StartInfo.Arguments = $"""{htmlFilePath}"" ""{outputPdfFile}"""
        process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
        process.Start()
        process.WaitForExit()
        Console.WriteLine($"PDF saved to: {outputPdfFile}")
    End Sub
End Module
$vbLabelText   $csharpLabel

Wynik

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 17

Wyjaśnienie:

  • Ten przykład po prostu dostarcza ścieżkę do lokalnego pliku HTML (template.html) oraz ścieżkę wyjściową dla PDF.
  • wkhtmltopdf bezpośrednio obsługuje pliki lokalne, czyniąc polecenie bezpośrednim.

URL do pliku PDF

Konwersja URL do PDF jest łatwa przy użyciu wkhtmltopdf. Wystarczy przekazać URL bezpośrednio do polecenia.

Przykład:

using System;
using System.Diagnostics;

class Program
{
    static void Main(string[] args)
    {
        // URL to be converted to PDF
        string url = "https://apple.com";
        // Path for the output PDF file
        string outputPdfFile = @"C:\path\to\output\url-to-pdf.pdf";
        // Execute wkhtmltopdf command
        Process process = new Process();
        process.StartInfo.FileName = "wkhtmltopdf";
        process.StartInfo.Arguments = $"\"{url}\" \"{outputPdfFile}\"";
        process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        process.Start();
        process.WaitForExit();
        Console.WriteLine($"PDF saved to: {outputPdfFile}");
    }
}
using System;
using System.Diagnostics;

class Program
{
    static void Main(string[] args)
    {
        // URL to be converted to PDF
        string url = "https://apple.com";
        // Path for the output PDF file
        string outputPdfFile = @"C:\path\to\output\url-to-pdf.pdf";
        // Execute wkhtmltopdf command
        Process process = new Process();
        process.StartInfo.FileName = "wkhtmltopdf";
        process.StartInfo.Arguments = $"\"{url}\" \"{outputPdfFile}\"";
        process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        process.Start();
        process.WaitForExit();
        Console.WriteLine($"PDF saved to: {outputPdfFile}");
    }
}
Imports System
Imports System.Diagnostics

Module Program
    Sub Main(args As String())
        ' URL to be converted to PDF
        Dim url As String = "https://apple.com"
        ' Path for the output PDF file
        Dim outputPdfFile As String = "C:\path\to\output\url-to-pdf.pdf"
        ' Execute wkhtmltopdf command
        Dim process As New Process()
        process.StartInfo.FileName = "wkhtmltopdf"
        process.StartInfo.Arguments = $"""{url}"" ""{outputPdfFile}"""
        process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
        process.Start()
        process.WaitForExit()
        Console.WriteLine($"PDF saved to: {outputPdfFile}")
    End Sub
End Module
$vbLabelText   $csharpLabel

Wynik

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 18

Wyjaśnienie:

  • W tym przykładzie, wkhtmltopdf bezpośrednio akceptuje URL jako dane wejściowe.
  • URL jest przekazywany jako argument do wkhtmltopdf, a wyjście jest zapisywane jako PDF na określoną ścieżkę.

PuppeteerSharp: Konwersja HTML do PDF

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 19

PuppeteerSharp to .NET opakowanie dla Puppeteer firmy Google, zapewniające kontrolę nad Chromium działającym bez głowy. Doskonałe przy renderowaniu stron bogatych w JavaScript, ale wymaga pobrania i zarządzania instancją Chromium, co zwiększa obciążenie. Jest open-source'owy na licencji Apache 2.0.

Ciąg znaków HTML do pliku PDF

Puppeteer jest zaprojektowany do renderowania pełnych stron, więc konwersja ciągu HTML wymaga zapisania go w pliku lub bezpośredniego renderowania w przeglądarce.

Przykład:

using PuppeteerSharp;
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
       // Download the browser if necessary
        await new BrowserFetcher().DownloadAsync();
        var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
        var page = await browser.NewPageAsync();
        string htmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated from HTML string.</p>";
        await page.SetContentAsync(htmlContent);
        // Save the page as a PDF
        await page.PdfAsync("html-string-to-pdf.pdf");
        await browser.CloseAsync();
    }
}
using PuppeteerSharp;
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
       // Download the browser if necessary
        await new BrowserFetcher().DownloadAsync();
        var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
        var page = await browser.NewPageAsync();
        string htmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated from HTML string.</p>";
        await page.SetContentAsync(htmlContent);
        // Save the page as a PDF
        await page.PdfAsync("html-string-to-pdf.pdf");
        await browser.CloseAsync();
    }
}
Imports PuppeteerSharp
Imports System
Imports System.Threading.Tasks

Module Program
    Async Function Main(args As String()) As Task
        ' Download the browser if necessary
        Await (New BrowserFetcher()).DownloadAsync()
        Dim browser = Await Puppeteer.LaunchAsync(New LaunchOptions With {.Headless = True})
        Dim page = Await browser.NewPageAsync()
        Dim htmlContent As String = "<h1>Hello, World!</h1><p>This is a PDF generated from HTML string.</p>"
        Await page.SetContentAsync(htmlContent)
        ' Save the page as a PDF
        Await page.PdfAsync("html-string-to-pdf.pdf")
        Await browser.CloseAsync()
    End Function
End Module
$vbLabelText   $csharpLabel

Wynik

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 20

Wyjaśnienie:

  • Puppeteer.LaunchAsync: Uruchamia nową instancję Chromium w trybie bez głowy.
  • page.SetContentAsync: Ładuje ciąg HTML do strony przeglądarki.
  • page.PdfAsync: Konwertuje załadowany HTML do PDF i zapisuje go w pliku.

Lokalny plik HTML do PDF

Aby przekonwertować lokalny plik HTML na PDF przy użyciu PuppeteerSharp, można załadować plik do przeglądarki działającej bez głowy i wygenerować PDF.

Przykład:

using PuppeteerSharp;
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Download the browser if necessary
        await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
        var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
        var page = await browser.NewPageAsync();

        // Load the local HTML file
        await page.GoToAsync("file:///path/to/your/template.html");

        // Save the page as a PDF
        await page.PdfAsync("html-file-to-pdf.pdf");
        await browser.CloseAsync();
    }
}
using PuppeteerSharp;
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Download the browser if necessary
        await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
        var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
        var page = await browser.NewPageAsync();

        // Load the local HTML file
        await page.GoToAsync("file:///path/to/your/template.html");

        // Save the page as a PDF
        await page.PdfAsync("html-file-to-pdf.pdf");
        await browser.CloseAsync();
    }
}
Imports PuppeteerSharp
Imports System
Imports System.Threading.Tasks

Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		' Download the browser if necessary
		Await (New BrowserFetcher()).DownloadAsync(BrowserFetcher.DefaultRevision)
		Dim browser = Await Puppeteer.LaunchAsync(New LaunchOptions With {.Headless = True})
		Dim page = Await browser.NewPageAsync()

		' Load the local HTML file
		Await page.GoToAsync("file:///path/to/your/template.html")

		' Save the page as a PDF
		Await page.PdfAsync("html-file-to-pdf.pdf")
		Await browser.CloseAsync()
	End Function
End Class
$vbLabelText   $csharpLabel

Wynik

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 21

Wyjaśnienie:

  • page.GoToAsync: Ładuje lokalny plik HTML (upewnij się, że używasz poprawnej ścieżki [file://]()).
  • page.PdfAsync: Konwertuje zawartość lokalnego pliku HTML na PDF.

URL do pliku PDF

Konwersja URL do PDF to jedna z podstawowych funkcji PuppeteerSharp, ponieważ może obsługiwać złożone strony z JavaScriptem.

Przykład:

using PuppeteerSharp;
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Download the browser if necessary
        await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
        var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
        var page = await browser.NewPageAsync();

        // Navigate to the URL
        await page.GoToAsync("https://example.com");

        // Save the page as a PDF
        await page.PdfAsync("url-to-pdf.pdf");
        await browser.CloseAsync();
    }
}
using PuppeteerSharp;
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Download the browser if necessary
        await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
        var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
        var page = await browser.NewPageAsync();

        // Navigate to the URL
        await page.GoToAsync("https://example.com");

        // Save the page as a PDF
        await page.PdfAsync("url-to-pdf.pdf");
        await browser.CloseAsync();
    }
}
Imports PuppeteerSharp
Imports System
Imports System.Threading.Tasks

Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		' Download the browser if necessary
		Await (New BrowserFetcher()).DownloadAsync(BrowserFetcher.DefaultRevision)
		Dim browser = Await Puppeteer.LaunchAsync(New LaunchOptions With {.Headless = True})
		Dim page = Await browser.NewPageAsync()

		' Navigate to the URL
		Await page.GoToAsync("https://example.com")

		' Save the page as a PDF
		Await page.PdfAsync("url-to-pdf.pdf")
		Await browser.CloseAsync()
	End Function
End Class
$vbLabelText   $csharpLabel

Wynik

HTML do PDF w C# dla deweloperów .NET (Przewodnik końcowy): Rysunek 22

Wyjaśnienie:

  • page.GoToAsync: Nawiguje do określonego URL.
  • page.PdfAsync: Konwertuje stronę internetową pod URL na PDF i zapisuje ją.

Werdykt / Kiedy stosować

PuppeteerSharp jest idealny, gdy potrzebne jest renderowanie piksel-perfect nowoczesnych aplikacji internetowych bogatych w JavaScript. Jest bardziej złożony niż IronPDF, ale doskonale sprawdza się przy obsłudze dynamicznej zawartości web.

Dłączego warto wybrać IronPDF?

IronPDF wyróżnia się łatwością użycia, elastycznością i bezproblemową integracją z aplikacjami .NET. Jest prosty do wdrożenia, obsługuje renderowanie HTML, CSS i JavaScript oraz nie wymaga dodatkowej konfiguracji ani zewnętrznych zależności. Poza konwersją HTML do PDF, IronPDF oferuje szeroką gamę funkcji do tworzenia dokumentów PDF z różnych typów plików, edycji i dodawania do istniejących dokumentów PDF, znaków wodnych, zabezpieczeń plików PDF i wielu innych! Aby zobaczyć więcej tej biblioteki w akcji, koniecznie sprawdź Przewodniki jak-to-zrobić, które pokazują każdą z jej funkcji w działaniu.

Wnioski

Jeśli chodzi o konwersję HTML do plików PDF w C#, istnieje kilka potężnych narzędzi dostępnych, każdy oferujący unikalne funkcje i możliwości. IronPDF, Aspose, iText 9, wkhtmltopdf i PuppeteerSharp wszystkie zapewniają solidne rozwiązania do przekształcania zawartości HTML w profesjonalnej jakości dokumenty PDF. Jednak wybór odpowiedniego narzędzia dla twojego projektu zależy od takich czynników jak łatwość integracji, wsparcie dla dynamicznej zawartości, wydajność i elastyczność.

Narzędzie String HTML na PDF Plik HTML na PDF URL do pliku PDF Uwagi
logo of IronPDF
IronPDF
Prosty z RenderHtmlAsPdf do ciągów HTML. Łatwy w użyciu i integruje się bezproblemowo z aplikacjami .NET. Używa RenderHtmlFileAsPdf, automatycznie obsługuje powiązane zasoby (CSS, JS). Używa RenderUrlAsPdf, obsługuje strony ciężkie od JavaScriptu i dynamiczną zawartość. W pełni zintegrowany z .NET, idealny dla deweloperów .NET. Obsługuje ciągi HTML, pliki i URL.
logo of Aspose
Aspose
Wymaga więcej konfiguracji. Używa HtmlFragment w obiekcie Document do konwersji ciągów HTML. Wymaga HtmlDocument i PdfSaveOptions do konwersji lokalnych plików HTML. Wymaga więcej konfiguracji niż IronPDF. Wymaga dodatkowej konfiguracji przy użyciu WebRequest do pobrania zawartości przed konwersją z HtmlLoadOptions. Solidny do różnych manipulacji dokumentami, ale konfiguracja może być bardziej skomplikówana. Dobry do bardziej złożonych potrzeb PDF.
logo of iText
iText7
Używa HtmlConverter.ConvertToPdf do konwersji ciągów HTML na PDF. Używa HtmlConverter.ConvertToPdf do konwersji lokalnych plików HTML do PDF. Podobny do obsługi lokalnych plików, używa HtmlConverter.ConvertToPdf. Świetny dla deweloperów potrzebujących większej kontroli nad manipulacją PDF poza konwersją HTML do PDF.
logo of wkhtmltopdf
wkhtmltopdf
Konwertuje ciągi HTML, zapisując je najpierw w pliku. Używa narzędzia wiersza poleceń do generowania PDF. Bezpośrednio konwertuje lokalne pliki HTML do PDF, wskazując ścieżki plików. Bezpośrednio konwertuje URL do PDF, przekazując URL do narzędzia wiersza poleceń. Głównie narzędzie wiersza poleceń, może wymagać dodatkowych kroków do integracji w .NET. Najlepszy do prostych konwersji.
logo of PuppeteerSharp
PuppeteerSharp
Używa page.SetContentAsync do załadowania ciągu HTML, a następnie page.PdfAsync do generowania PDF. Ładuje lokalny plik HTML przy użyciu page.GoToAsync, a następnie konwertuje go na PDF. Ładuje URL i konwertuje go na PDF przy użyciu page.GoToAsync i page.PdfAsync. Najlepiej nadaje się do dynamicznych stron, szczególnie dla zawartości bogatej w JavaScript. Wymaga pobrania i uruchomienia Chromium.
  • IronPDF wyróżnia się prostotą, bezpośrednią integracją z .NET oraz zdolnością do obsługi złożonego HTML, w tym stron renderowanych przez JavaScript. Idealny dla deweloperów poszukujących łatwego rozwiązania z minimalną konfiguracją.

  • Aspose oferuje szerokie funkcje manipulacji PDF, ale jego zdolności konwersji HTML do PDF wymagają więcej konfiguracji, zwłaszcza do obsługi lokalnych plików i zasobów zewnętrznych.

  • iText 9 zapewnia solidną podstawę dla tych, którzy chcą tworzyć dokumenty PDF, chociaż może wymagać dodatkowego kodowania do konwersji HTML na PDF, zwłaszcza dla dynamicznej zawartości. Świetny wybór dla projektów, w których potrzebna jest niestandardowa manipulacja PDF.

  • wkhtmltopdf jest idealny do podstawowej konwersji HTML do PDF z interfejsem wiersza poleceń, ale brakuje mu integracji i elastyczności pełnej biblioteki .NET.

  • PuppeteerSharp, korzystający z przeglądarki Chrome bez głowy, to narzędzie pierwszego wyboru do renderowania złożonych, dynamicznych stron internetowych i przekształcania ich w PDF, zwłaszcza przy obsłudze treści bogatych w JavaScript.

Dla większości deweloperów .NET poszukujących kompleksowego, prostego rozwiązania, IronPDF warto spróbować dzisiaj, aby samodzielnie odkryć jego potężne funkcje. Od generowania nowych dokumentów PDF po edytowanie istniejących PDF, odkryj pełen zakres funkcji IronPDF samodzielnie. Po prostu zainstaluj IronPDF i skorzystaj z bezpłatnego okresu próbnego, aby sprawdzić to samemu. Zobacz, jak może ulepszyć dziś twoje przepływy pracy z PDF.

Ostatecznie, właściwe narzędzie zależy od twoich konkretnych wymagań, ale dzięki opcjom omówionym tutaj, jesteś dobrze przygotowany, aby znaleźć idealne rozwiązanie dla swojego projektu.

Uwaga: Aspose, iText, wkhtmltopdf i PuppeteerSharp to zarejestrowane znaki towarowe swoich właścicieli. Ta strona nie jest związana z, zatwierdzona przez ani sponsorowana przez Aspose, iText, wkhtmltopdf lub Puppeteer. Wszystkie nazwy produktów, logo i marki są własnością ich odpowiednich właścicieli. Porównania są podane wyłącznie w celach informacyjnych i bazują na publicznie dostępnych informacjach w momencie pisania.