Przejdź do treści stopki
KORZYSTANIE Z IRONPDF

C# Generowanie PDF 7 Porównanie bibliotek (Narzędzia darmowe i płatne)

Funkcja generowania plików PDF w języku C# ma kluczowe znaczenie dla wielu nowoczesnych aplikacji, od tworzenia raportów po systemy fakturowania. W tym artykule omówimy sześć popularnych sposobów generowania plików PDF przy użyciu języka C#, zwracając uwagę zarówno na biblioteki oparte na kodzie, takie jak IronPDF, jak i na internetowe interfejsy API oraz narzędzia. Niezależnie od tego, czy potrzebujesz dynamicznie generować pliki PDF w aplikacji internetowej, czy po prostu tworzyć pliki PDF na podstawie istniejących dokumentów, te narzędzia spełnią Twoje oczekiwania.

1. IronPDF

IronPDF to biblioteka PDF klasy premium dla platformy .NET, zaprojektowana z myślą o programistach, którzy potrzebują wysokiej jakości konwersji plików HTML do formatu PDF. IronPDF wykorzystuje silnik renderujący oparty na Chromium, aby zapewnić precyzyjne konwersje, co czyni go idealnym wyborem dla aplikacji internetowych, które chcą konwertować strony HTML lub raporty internetowe na pliki PDF w języku C#. Narzędzie to znane jest z niezawodnej obsługi istniejących dokumentów PDF i oferuje funkcje edycji, scalania lub dzielenia plików PDF.

IronPDF łatwo integruje się z projektami C# za pośrednictwem menedżera pakietów NuGet, a wystarczy kilka wierszy kodu, aby rozpocząć generowanie dokumentów PDF. Jest to wszechstronne narzędzie zarówno do dynamicznej treści HTML, jak i do generowanych przez serwer plików PDF.

Najważniejsze cechy

  • Konwersja HTML do PDF: IronPDF doskonale przekształca złożone strony HTML, w tym obsługę wykonywania JavaScript i nowoczesnego CSS, bezpośrednio do formatu PDF. Używa silnika renderującego opartego na Chromium, zapewniając, że wynik wygląda identycznie jak w przeglądarce internetowej.
  • Manipulacja PDF: IronPDF pozwala łatwo łączyć, dzielić i modyfikować istniejące dokumenty PDF.
  • Zaawansowane opcje stylizacji: IronPDF obsługuje zewnętrzne arkusze stylów, niestandardowe czcionki i JavaScript, dzięki czemu można tworzyć dokumenty o wysokiej stylizacji. Jest idealny do faktur, raportów i treści internetowych.
  • Funkcje zabezpieczeń: IronPDF oferuje funkcje dodawania ochrony hasłem, podpisów cyfrowych i ustawiania uprawnień do ograniczania działań takich jak drukowanie, kopiowanie lub edytowanie PDF.
  • Obsługa formularzy: IronPDF pozwala deweloperom programowo tworzyć, wypełniać i odczytywać formularze PDF, co czyni go dobrym wyborem dla aplikacji wymagających wprowadzenia danych przez użytkownika w formacie PDF.
  • Menadżer pakietów NuGet: Łatwo instalować i zarządzać przez konsolę menedżera pakietów w Visual Studio.

Przykład kodu

using IronPdf;

class Program
{
    static void Main()
    {
        string html = "<h1>Hello, World!</h1><p>This PDF is generated from HTML.</p>";

        // Create an instance of ChromePdfRenderer
        ChromePdfRenderer renderer = new ChromePdfRenderer(); 

        // Render the HTML as a PDF document
        PdfDocument pdf = renderer.RenderHtmlAsPdf(html); 

        // Save the PDF to a specified file
        pdf.SaveAs("Generated.pdf"); 
    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        string html = "<h1>Hello, World!</h1><p>This PDF is generated from HTML.</p>";

        // Create an instance of ChromePdfRenderer
        ChromePdfRenderer renderer = new ChromePdfRenderer(); 

        // Render the HTML as a PDF document
        PdfDocument pdf = renderer.RenderHtmlAsPdf(html); 

        // Save the PDF to a specified file
        pdf.SaveAs("Generated.pdf"); 
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main()
		Dim html As String = "<h1>Hello, World!</h1><p>This PDF is generated from HTML.</p>"

		' Create an instance of ChromePdfRenderer
		Dim renderer As New ChromePdfRenderer()

		' Render the HTML as a PDF document
		Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

		' Save the PDF to a specified file
		pdf.SaveAs("Generated.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel
  1. Import przestrzeni nazw: using IronPdf; importuje bibliotekę IronPDF, aby uzyskać dostęp do jej klas i metod.
  2. Łańcuch HTML: Zmienna 'html' zawiera treść HTML, którą chcesz przekonwertować na PDF.
  3. Instancja renderera: new ChromePdfRenderer(); tworzy instancję klasy ChromePdfRenderer, zapewniając metody renderowania treści HTML w formacie PDF.
  4. Renderowanie PDF: PdfDocument pdf = renderer.RenderHtmlAsPdf(html); konwertuje łańcuch HTML do dokumentu PDF.
  5. Zapisz PDF: pdf.SaveAs("Generated.pdf"); zapisuje wygenerowany PDF na określonej ścieżce pliku.

Zalety

  • Doskonała jakość renderowania dla treści internetowych.
  • Solidne wsparcie dla formularzy, hiperłączy i zakładek.

Wady

  • Koszty licencjonowania mogą być kwestią do rozważenia w większych projektach.
  • Bardziej zaawansowane funkcje mogą wymagać głębszej nauki.

2. iTextSharp

C# Generowanie PDF 7 Porównanie bibliotek (Narzędzia darmowe i płatne): Rysunek 2

iTextSharp to dobrze znana .NET biblioteka PDF, która oferuje szeroką funkcjonalność tworzenia i edytowania plików PDF. Jest szeroko stosowana w branżach takich jak finanse i prawo, gdzie dokumenty muszą być dostosowywane i zabezpieczane. iTextSharp pozwala tworzyć pliki PDF od podstaw, wypełniać formularze i modyfikować pliki PDF, zapewniając pełną kontrolę nad treścią dokumentu. Jest szczególnie przydatna w aplikacjach korporacyjnych, które muszą generować pliki PDF z precyzyjnymi układami i dynamicznymi danymi, takimi jak faktury czy kontrakty.

Najważniejsze cechy

  • Pełne możliwości tworzenia PDF: iTextSharp ułatwia tworzenie pliku PDF w C# od podstaw, umożliwiając deweloperom dodawanie tekstu, obrazów, tabel i grafiki wektorowej. Zapewnia pełną kontrolę nad układem dokumentu, w tym możliwość definiowania rozmiarów stron, marginesów i metadanych.
  • Wypełnianie formularzy: Znaczącą zaletą iTextSharp jest zdolność obsługi formularzy PDF (AcroForms). Możesz tworzyć formularze z różnymi polami wejściowymi, a później programowo je wypełniać, co jest użyteczne w zautomatyzowanych procesach generowania dokumentów.
  • Konwersja XML do PDF: iTextSharp ma solidne wsparcie dla konwersji danych XML do PDF za pomocą XFA (Architektura Formularzy XML). Jest to szczególnie cenne w branżach, gdzie dane XML muszą być formatowane w standardowe formularze lub raporty.
  • Zabezpieczenia PDF: iTextSharp zawiera zaawansowane funkcje takie jak dodawanie szyfrowania, podpisów cyfrowych i znaków wodnych, aby zapewnić autentyczność dokumentu i chronić poufne dane.
  • Ekstrakcja i manipulacja tekstem: Możesz wyciągać tekst z istniejących plików PDF, przearanżować zawartość dokumentu lub manipulować elementami stron, co czyni go użytecznym do post-processingu dokumentów lub generowania raportów podsumowujących z złożonych plików PDF.

Przykład kodu

using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;

namespace Helpers
{
    public class PdfGenerator
    {
        public static byte[] GeneratePdfFromFragment(string htmlFragment)
        {
            var html = string.Format(@"
            <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
            <head>
            <style type='text/css'>
            table,td {{border: 1px solid black;}}
            div {{ white-space: nowrap; padding: 2px;}}
            table{{ border-collapse: collapse; width: 100%; empty-cells: show;}}
            body table {{font-size: 50%;}}
            th {{width:500px; height: 28px;}}
            td {{width:300px; height: 28px;}}
            </style>
            </head><body>{0}</body></html>", htmlFragment);
            return Generate(html);
        }

        public static byte[] GeneratePdfFromPage(string htmlPage)
        {
            return Generate(htmlPage);
        }

        private static byte[] Generate(string html)
        {
            using (var memoryStream = new MemoryStream())
            {
                var pdfDocument = new Document(PageSize.LETTER);
                var pdfWriter = PdfWriter.GetInstance(pdfDocument, memoryStream);
                pdfDocument.Open();
                using (var fw = new StringReader(html))
                {
                    XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, pdfDocument, fw);
                }
                pdfDocument.Close();
                return memoryStream.ToArray();
            }
        }
    }
}
using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;

namespace Helpers
{
    public class PdfGenerator
    {
        public static byte[] GeneratePdfFromFragment(string htmlFragment)
        {
            var html = string.Format(@"
            <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
            <head>
            <style type='text/css'>
            table,td {{border: 1px solid black;}}
            div {{ white-space: nowrap; padding: 2px;}}
            table{{ border-collapse: collapse; width: 100%; empty-cells: show;}}
            body table {{font-size: 50%;}}
            th {{width:500px; height: 28px;}}
            td {{width:300px; height: 28px;}}
            </style>
            </head><body>{0}</body></html>", htmlFragment);
            return Generate(html);
        }

        public static byte[] GeneratePdfFromPage(string htmlPage)
        {
            return Generate(htmlPage);
        }

        private static byte[] Generate(string html)
        {
            using (var memoryStream = new MemoryStream())
            {
                var pdfDocument = new Document(PageSize.LETTER);
                var pdfWriter = PdfWriter.GetInstance(pdfDocument, memoryStream);
                pdfDocument.Open();
                using (var fw = new StringReader(html))
                {
                    XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, pdfDocument, fw);
                }
                pdfDocument.Close();
                return memoryStream.ToArray();
            }
        }
    }
}
Imports System
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports iTextSharp.tool.xml

Namespace Helpers
	Public Class PdfGenerator
		Public Shared Function GeneratePdfFromFragment(ByVal htmlFragment As String) As Byte()
			Dim html = String.Format("
            <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
            <head>
            <style type='text/css'>
            table,td {{border: 1px solid black;}}
            div {{ white-space: nowrap; padding: 2px;}}
            table{{ border-collapse: collapse; width: 100%; empty-cells: show;}}
            body table {{font-size: 50%;}}
            th {{width:500px; height: 28px;}}
            td {{width:300px; height: 28px;}}
            </style>
            </head><body>{0}</body></html>", htmlFragment)
			Return Generate(html)
		End Function

		Public Shared Function GeneratePdfFromPage(ByVal htmlPage As String) As Byte()
			Return Generate(htmlPage)
		End Function

		Private Shared Function Generate(ByVal html As String) As Byte()
			Using memoryStream As New MemoryStream()
				Dim pdfDocument = New Document(PageSize.LETTER)
				Dim pdfWriter = PdfWriter.GetInstance(pdfDocument, memoryStream)
				pdfDocument.Open()
				Using fw = New StringReader(html)
					XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, pdfDocument, fw)
				End Using
				pdfDocument.Close()
				Return memoryStream.ToArray()
			End Using
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel
  1. GeneratePdfFromFragment: Przyjmuje fragment HTML (np. częściowy dokument HTML) i konwertuje go na pełną strukturę HTML poprzez osadzenie w podstawowym <html> i <body> szablonie. Następnie wywołuje wewnętrzną metodę Generate.
  2. GeneratePdfFromPage: Akceptuje pełną stronę HTML i bezpośrednio wywołuje metodę Generate.
  3. Generate: Ta metoda obsługuje konwersję HTML do PDF.
    • Inicjalizuje stream pamięci do przechowywania wygenerowanego PDF w pamięci.
    • Tworzy iTextSharp Document obiekt z stronami o rozmiarze Letter.
    • XMLWorkerHelper parsuje treść HTML i zapisuje ją do dokumentu PDF za pomocą dostarczonego StringReader.

Zalety

  • Bardzo edytowalna z bogatym zestawem funkcji.
  • Obszerna dokumentacja i wsparcie społeczności.

Wady

  • iTextSharp (który jest darmowy do użytku osobistego, ale wymaga licencji komercyjnej dla projektów na większą skalę) może mieć ograniczenia w obsłudze złożonych CSS lub JavaScript.
  • XMLWorker (który jest tu używany) to przestarzałe narzędzie iTextSharp do parsowania HTML/CSS. iText7 (nowsza wersja iText) używa bardziej solidnego parsera HTML, pdfHTML, który może zapewnić lepsze wsparcie dla nowoczesnych standardów sieciowych.
  • Stromniejsza krzywa uczenia dla początkujących.

3. PDFsharp

C# Generowanie PDF 7 Porównanie bibliotek (Narzędzia darmowe i płatne): Rysunek 3

PDFSharp to lekka, open-source .NET biblioteka PDF idealna do podstawowych zadań tworzenia PDF. Jeśli twoja aplikacja wymaga tylko prostych operacji, takich jak dodawanie tekstu, obrazów czy tabel, PDFSharp jest łatwą w użyciu opcją do generowania dokumentów PDF w C#. Brakuje jej zaawansowanych funkcji, takich jak konwersja HTML do PDF, ale wyróżnia się prostotą w generowaniu małych do średnich plików PDF w C#.

Najważniejsze cechy

  • Podstawowe tworzenie PDF: Prosty i łatwy w użyciu interfejs API do rysowania tekstu i grafiki. Idealna do tworzenia prostych dokumentów.
  • Manipulacja dokumentami: Łatwo łączy i modyfikuje istniejące PDF-y, umożliwiając elastyczność w zarządzaniu dokumentami.
  • Wsparcie rysowania i grafiki: PDFsharp zapewnia zestaw narzędzi do rysowania na stronach PDF, w tym linie, prostokąty i inne grafiki wektorowe. Obsługuje także osadzanie obrazów w PDF.
  • Darmowe i Open-Source: PDFsharp jest całkowicie darmowy do użytku komercyjnego i niekomercyjnego, co czyni go atrakcyjną opcją dla małych firm i deweloperów pracujących nad projektami open-source.

Przykład kodu

using PdfSharp.Pdf;
using PdfSharp.Drawing;

class Program
{
    static void Main()
    {
        // Create a new PDF document
        PdfDocument document = new PdfDocument();
        document.Info.Title = "Created with PdfSharp";

        // Add a page to the document
        PdfPage page = document.AddPage();

        // Create an XGraphics object to draw on the page
        XGraphics gfx = XGraphics.FromPdfPage(page);

        // Set a font to use for drawing text
        XFont font = new XFont("Verdana", 20, XFontStyle.Bold);

        // Draw the text on the PDF page
        gfx.DrawString("Hello, World!", font, XBrushes.Black, 
                       new XRect(0, 0, page.Width, page.Height), XStringFormats.Center);

        // Save the document to disk
        document.Save("Generated.pdf");
    }
}
using PdfSharp.Pdf;
using PdfSharp.Drawing;

class Program
{
    static void Main()
    {
        // Create a new PDF document
        PdfDocument document = new PdfDocument();
        document.Info.Title = "Created with PdfSharp";

        // Add a page to the document
        PdfPage page = document.AddPage();

        // Create an XGraphics object to draw on the page
        XGraphics gfx = XGraphics.FromPdfPage(page);

        // Set a font to use for drawing text
        XFont font = new XFont("Verdana", 20, XFontStyle.Bold);

        // Draw the text on the PDF page
        gfx.DrawString("Hello, World!", font, XBrushes.Black, 
                       new XRect(0, 0, page.Width, page.Height), XStringFormats.Center);

        // Save the document to disk
        document.Save("Generated.pdf");
    }
}
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing

Friend Class Program
	Shared Sub Main()
		' Create a new PDF document
		Dim document As New PdfDocument()
		document.Info.Title = "Created with PdfSharp"

		' Add a page to the document
		Dim page As PdfPage = document.AddPage()

		' Create an XGraphics object to draw on the page
		Dim gfx As XGraphics = XGraphics.FromPdfPage(page)

		' Set a font to use for drawing text
		Dim font As New XFont("Verdana", 20, XFontStyle.Bold)

		' Draw the text on the PDF page
		gfx.DrawString("Hello, World!", font, XBrushes.Black, New XRect(0, 0, page.Width, page.Height), XStringFormats.Center)

		' Save the document to disk
		document.Save("Generated.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel
  • PdfDocument: Reprezentuje cały dokument PDF. Możesz dodawać strony, ustawiać metadane i manipulować dokumentem.
  • PdfPage: Reprezentuje pojedynczą stronę w dokumencie. Nowe strony są dodawane za pomocą metody AddPage.
  • XGraphics: Używany do rysowania tekstu, obrazów i kształtów na określonej stronie. Jest podobny do GDI+ w .NET.
  • XFont: Określa czcionkę i styl renderowania tekstu. W tym przykładzie używana jest czcionka "Verdana" z pogrubieniem.
  • DrawString: Rysuje określony ciąg na zdefiniowanej pozycji w dokumencie.

Zalety

  • Darmowy i open-source bez ograniczeń licencyjnych.
  • Prosty i lekki, ułatwiający rozpoczęcie pracy z podstawową generacją PDF.
  • Dobrze działa w projektach, które nie wymagają skomplikowanych funkcji.

Wady

  • Ograniczona funkcjonalność w porównaniu do innych bibliotek.
  • Brak natywnego wsparcia dla konwersji HTML do PDF.

4. Syncfusion PDF Library

C# Generowanie PDF 7 Porównanie bibliotek (Narzędzia darmowe i płatne): Rysunek 4

Syncfusion PDF Library to wysokowydajny, wszechstronny zestaw narzędzi zaprojektowanych dla przedsiębiorstw, które potrzebują pracować z PDF w szerokim zakresie aplikacji. Jest częścią szerszego pakietu Syncfusion, który oferuje biblioteki dla różnych formatów i platform. Biblioteka PDF wyróżnia się dzięki swojemu rozbudowanemu zestawowi funkcji, który wykracza poza prostą kreację dokumentów i pozwala na szczegółową manipulację, w tym wypełnianie formularzy, podpisy cyfrowe oraz zabezpieczenia dokumentów.

Najważniejsze cechy

  • Wszechstronne API do PDF: Zdolne do generowania wysoce dostosowanych PDF-ów, w tym z układami o złożonej strukturze, osadzonymi czcionkami i obrazami w wysokiej rozdzielczości. Zapewnia szczegółową kontrolę nad wszystkimi aspektami tworzenia PDF-ów, od formatowania stron po zaawansowane opcje układu.
  • Przetwarzanie formularzy: Biblioteka doskonale radzi sobie z tworzeniem, wypełnianiem i wyodrębnianiem danych z interaktywnych formularzy PDF (AcroForms). Przydatne do tworzenia wypełnianych PDF-ów dla danych wejściowych użytkowników, automatyzacji wprowadzania danych lub przetwarzania wypełnionych formularzy.
  • Podpisy cyfrowe i szyfrowanie: Oferuje solidne funkcje zabezpieczeń, w tym możliwość szyfrowania dokumentów PDF, dodawania ochrony hasłem oraz stosowania podpisów cyfrowych. Niezbędne dla branż takich jak opieka zdrowotna i usługi prawne, które wymagają autentyczności i bezpieczeństwa dokumentów.

Przykład kodu

using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;

class Program
{
    static void Main()
    {
        // Create a new PDF document.
        PdfDocument document = new PdfDocument();

        // Add a page to the document.
        PdfPage page = document.Pages.Add();

        // Create PDF graphics for the page.
        PdfGraphics graphics = page.Graphics;

        // Set the standard font.
        PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 20);

        // Draw the text.
        graphics.DrawString("Hello World!!!", font, PdfBrushes.Black, new PointF(0, 0));

        // Save the document.
        document.Save("Output.pdf");

        // Close the document.
        document.Close(true);
    }
}
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;

class Program
{
    static void Main()
    {
        // Create a new PDF document.
        PdfDocument document = new PdfDocument();

        // Add a page to the document.
        PdfPage page = document.Pages.Add();

        // Create PDF graphics for the page.
        PdfGraphics graphics = page.Graphics;

        // Set the standard font.
        PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 20);

        // Draw the text.
        graphics.DrawString("Hello World!!!", font, PdfBrushes.Black, new PointF(0, 0));

        // Save the document.
        document.Save("Output.pdf");

        // Close the document.
        document.Close(true);
    }
}
Imports Syncfusion.Pdf
Imports Syncfusion.Pdf.Graphics

Friend Class Program
	Shared Sub Main()
		' Create a new PDF document.
		Dim document As New PdfDocument()

		' Add a page to the document.
		Dim page As PdfPage = document.Pages.Add()

		' Create PDF graphics for the page.
		Dim graphics As PdfGraphics = page.Graphics

		' Set the standard font.
		Dim font As PdfFont = New PdfStandardFont(PdfFontFamily.Helvetica, 20)

		' Draw the text.
		graphics.DrawString("Hello World!!!", font, PdfBrushes.Black, New PointF(0, 0))

		' Save the document.
		document.Save("Output.pdf")

		' Close the document.
		document.Close(True)
	End Sub
End Class
$vbLabelText   $csharpLabel
  • PdfDocument: Reprezentuje dokument PDF. Można dodawać strony, ustawiać właściwości i manipulować jego zawartością.
  • PdfPage: Reprezentuje stronę wewnątrz dokumentu PDF.
  • PdfFont: Definiuje czcionkę do renderowania tekstu. W tym przypadku używana jest standardowa czcionka Helvetica.
  • DrawString: Rysuje określony ciąg na stronie PDF w danych współrzędnych.

Zalety

  • Bogaty zestaw funkcji, odpowiedni do tworzenia złożonych PDF-ów.
  • Profesjonalne wsparcie i dokumentacja, co czyni go idealnym dla dużych aplikacji.
  • Wspiera zaawansowane możliwości PDF, takie jak wypełnianie formularzy, szyfrowanie i adnotacje.

Wady

  • Opłaty licencyjne są stosunkowo wysokie do użytku komercyjnego.
  • Złożone API, które może wymagać czasu na opanowanie.

5. PDFShift (Narzędzie online)

C# Generowanie PDF 7 Porównanie bibliotek (Narzędzia darmowe i płatne): Rysunek 5

PDFShift to oparty na chmurze serwis zaprojektowany do konwersji HTML do plików PDF. Płynnie integruje się z aplikacjami C# za pośrednictwem swojego API, umożliwiając konwersję dynamicznie generowanych stron HTML do profesjonalnych PDF-ów. PDFShift jest szczególnie przydatny dla deweloperów webowych, którzy chcą generować dokumenty PDF na żądanie z treści HTML, takich jak faktury czy raporty. Ponieważ PDFShift działa całkowicie przez jego REST API, można wysłać tylko kilka linii HTML do serwisu i otrzymać do pobrania plik PDF w zamian. Jest to proste, skalowalne rozwiązanie do generowania plików PDF w Internecie.

Najważniejsze cechy

  • Konwersja HTML do PDF: PDFShift doskonale przekształca dokumenty HTML na wysokiej jakości PDF-y. Radzi sobie z złożonymi stylami CSS, JavaScriptem i responsywnymi układami projektowymi, zapewniając, że twoja strona internetowa wygląda identycznie w formacie PDF.
  • Integracja API: API PDFShift jest zaprojektowane do płynnej integracji w aplikacjach internetowych. Jest proste w użyciu: wystarczy wysłać żądanie POST HTTP z treścią HTML, a serwis zwraca dokument PDF.
  • Opcje dostosowywania: Umożliwia personalizację wygenerowanego PDF, w tym ustawienie rozmiaru strony, orientacji, marginesów i nagłówków/stopki. Można również dodać dynamiczną zawartość do nagłówków i stopek, np. numery stron czy metadane dokumentu.

Jak to działa

  • Wyślij żądanie POST z treścią HTML do punktu API PDFShift.
  • Odbierz wygenerowany PDF w odpowiedzi, gotowy do pobrania lub zapisania.

Przykładowy kod

using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = "<h1>Hello, World!</h1><p>This is generated using PDFShift API.</p>";
            var content = new StringContent(htmlContent, Encoding.UTF8, "application/json");

            HttpResponseMessage response = await client.PostAsync("https://api.pdfshift.io/v3/convert", content);

            byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();
            System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes);
        }
    }
}
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = "<h1>Hello, World!</h1><p>This is generated using PDFShift API.</p>";
            var content = new StringContent(htmlContent, Encoding.UTF8, "application/json");

            HttpResponseMessage response = await client.PostAsync("https://api.pdfshift.io/v3/convert", content);

            byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();
            System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes);
        }
    }
}
Imports System.Net.Http
Imports System.Text
Imports System.Threading.Tasks

Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		Using client As New HttpClient()
			Dim htmlContent As String = "<h1>Hello, World!</h1><p>This is generated using PDFShift API.</p>"
			Dim content = New StringContent(htmlContent, Encoding.UTF8, "application/json")

			Dim response As HttpResponseMessage = Await client.PostAsync("https://api.pdfshift.io/v3/convert", content)

			Dim pdfBytes() As Byte = Await response.Content.ReadAsByteArrayAsync()
			System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes)
		End Using
	End Function
End Class
$vbLabelText   $csharpLabel
  • HttpClient: Wysyła treść HTML jako żądanie POST do API PDFShift.
  • PostAsync: Wysyła żądanie do API, które przetwarza HTML i zwraca PDF.
  • ReadAsByteArrayAsync: Odczytuje odpowiedź PDF jako tablicę bajtów, którą można następnie zapisać jako plik.

Zalety

  • Proste w użyciu API z minimalnym nakładem pracy.
  • Idealne dla aplikacji internetowych, które wymagają dynamicznej konwersji HTML do PDF.
  • Brak potrzeby zarządzania bibliotekami PDF czy serwerami.

Wady

  • Ograniczone do konwersji HTML do PDF; nie wspiera bardziej skomplikowanych funkcji PDF.
  • Wymaga połączenia internetowego i wiąże się z kosztami po przekroczeniu pewnego progu użycia.

6. DocRaptor (Narzędzie online)

C# Generowanie PDF 7 Porównanie bibliotek (Narzędzia darmowe i płatne): Rysunek 6

DocRaptor to kolejna potężna usługa generowania PDF oparta na API, która konwertuje HTML i CSS na wysokiej jakości PDF-y. Jest znana z doskonałego renderowania dokumentów HTML, szczególnie w przetwarzaniu złożonych stylów CSS, zapytań medialnych i czcionek sieciowych. Czyni to z DocRaptor doskonały wybór do generowania profesjonalnych dokumentów, takich jak raporty, faktury i eBooki, bezpośrednio z szablonów HTML.

Najważniejsze cechy

  • Wsparcie HTML i CSS: Konwertuje dokumenty HTML z złożonymi stylami CSS, w tym zapytaniami medialnymi i czcionkami.
  • Integracja API: REST API do płynnej integracji w aplikacjach internetowych.
  • Personalizowane nagłówki/stopy: Dodaj dynamiczne nagłówki i stopy, w tym numery stron i niestandardowe formatowanie.
  • Zabezpieczenia PDF: Wspiera szyfrowanie i ochronę hasłem.

Jak to działa

  • Wyślij żądanie POST do API DocRaptor z treścią HTML.
  • Dostosuj wyjście PDF za pomocą parametrów dotyczących rozmiaru strony, marginesów, nagłówków i stopek.
  • Odbierz wygenerowany PDF w odpowiedzi.

Przykładowy kod

using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        using (HttpClient client = new HttpClient())
        {
            string apiKey = "YOUR_API_KEY";
            string htmlContent = "<h1>Professional Report</h1><p>Generated using DocRaptor API.</p>";
            string jsonData = $"{{\"test\": true, \"document_content\": \"{htmlContent}\", \"name\": \"Generated.pdf\", \"document_type\": \"pdf\"}}";
            var content = new StringContent(jsonData, Encoding.UTF8, "application/json");

            HttpResponseMessage response = await client.PostAsync($"https://docraptor.com/docs?user_key={apiKey}", content);

            byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();
            System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes);
        }
    }
}
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        using (HttpClient client = new HttpClient())
        {
            string apiKey = "YOUR_API_KEY";
            string htmlContent = "<h1>Professional Report</h1><p>Generated using DocRaptor API.</p>";
            string jsonData = $"{{\"test\": true, \"document_content\": \"{htmlContent}\", \"name\": \"Generated.pdf\", \"document_type\": \"pdf\"}}";
            var content = new StringContent(jsonData, Encoding.UTF8, "application/json");

            HttpResponseMessage response = await client.PostAsync($"https://docraptor.com/docs?user_key={apiKey}", content);

            byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();
            System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes);
        }
    }
}
Imports System.Net.Http
Imports System.Text
Imports System.Threading.Tasks

Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		Using client As New HttpClient()
			Dim apiKey As String = "YOUR_API_KEY"
			Dim htmlContent As String = "<h1>Professional Report</h1><p>Generated using DocRaptor API.</p>"
			Dim jsonData As String = $"{{""test"": true, ""document_content"": ""{htmlContent}"", ""name"": ""Generated.pdf"", ""document_type"": ""pdf""}}"
			Dim content = New StringContent(jsonData, Encoding.UTF8, "application/json")

			Dim response As HttpResponseMessage = Await client.PostAsync($"https://docraptor.com/docs?user_key={apiKey}", content)

			Dim pdfBytes() As Byte = Await response.Content.ReadAsByteArrayAsync()
			System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes)
		End Using
	End Function
End Class
$vbLabelText   $csharpLabel
  • Klucz API: Musisz podać klucz API do uwierzytelniania podczas korzystania z DocRaptor. Zastąp "YOUR_API_KEY" rzeczywistym kluczem.
  • JsonData: Ten łańcuch JSON zawiera treść HTML, nazwę dokumentu i typ (w tym przypadku PDF).
  • PostAsync: Wysyła treść HTML i parametry do API DocRaptor do generowania PDF.

Zalety

  • Wysokiej jakości renderowanie z pełnym wsparciem dla HTML, CSS i JavaScript.
  • Zaawansowane opcje dostosowywania dla układu dokumentu i zabezpieczeń.
  • Brak potrzeby utrzymywania bibliotek czy infrastruktury do generowania PDF-ów.

Wady

  • Usługa płatna po przekroczeniu bezpłatnego limitu użytkowania.
  • Zależność od łączności internetowej.

7. Narzędzia online bez kodu

Jeśli nie chcesz pisać kodu ani potrzebujesz szybkiego rozwiązania do generowania PDF-ów, kilka narzędzi online pozwala szybko i łatwo tworzyć PDF-y. Oto kilka godnych uwagi opcji:

7.1. Smallpdf

C# Generowanie PDF 7 Porównanie bibliotek (Narzędzia darmowe i płatne): Rysunek 7

Smallpdf to platforma online oferująca różne narzędzia związane z PDF, w tym możliwość tworzenia PDF-ów z szerokiego zakresu formatów plików. Zaprojektowana jest dla użytkowników, którzy chcą prostego interfejsu typu przeciągnij i upuść bez potrzeby pisania kodu. Smallpdf jest szeroko stosowany do szybkich konwersji plików, takich jak przekształcanie dokumentów Word, arkuszy Excel czy obrazów na PDF. Również oferuje narzędzia do łączenia, kompresji i dzielenia PDF-ów, czyniąc ją wszechstronnym narzędziem do podstawowych zadań PDF.

Najważniejsze cechy

  • Konwersja plików: Obsługuje konwersję plików Word, Excel, PowerPoint i obrazów (JPG, PNG) na PDF. Czyni to idealnym dla użytkowników, którzy potrzebują szybko tworzyć PDF-y z różnych typów dokumentów.
  • Łączenie i dzielenie PDF-ów: Oferuje prosty interfejs do łączenia wielu PDF-ów w jeden plik lub dzielenia PDF na poszczególne strony.
  • Integracja z magazynem w chmurze: Możesz łatwo przesyłać pliki z Google Drive lub Dropbox i zapisać przekonwertowane PDF-y z powrotem na tych platformach, usprawniając zarządzanie plikami.
  • Narzędzia do edycji PDF: Oferuje podstawowe narzędzia do edytowania istniejącego dokumentu PDF, takie jak dodawanie adnotacji, wypełnianie formularzy i podpisywanie dokumentów cyfrowo.

Zalety

  • Bardzo łatwy w użyciu dla osób niebędących deweloperami.
  • Darmowy do podstawowego użycia z opcjami aktualizacji do większej liczby funkcji.
  • Oferuje szeroką gamę narzędzi związanych z PDF, takich jak łączenie, dzielenie i kompresja PDF-ów.

Wady

  • Ograniczone możliwości dostosowywania w porównaniu do rozwiązań opartych na kodzie.
  • Darmowa wersja może mieć pewne ograniczenia funkcji.

7.2. PDFescape

C# Generowanie PDF 7 Porównanie bibliotek (Narzędzia darmowe i płatne): Rysunek 8

PDFescape to łatwy w użyciu edytor PDF oparty na przeglądarce, który pozwala użytkownikom tworzyć, edytować i przeglądać PDF-y bez potrzeby instalowania jakiegokolwiek oprogramowania. Jest to doskonałe narzędzie dla tych, którzy potrzebują szybko edytować PDF-y, np. wypełniać formularze, dodawać tekstowe adnotacje czy wstawiać obrazy. PDFescape oferuje również narzędzia do tworzenia nowych PDF-ów od podstaw, co czyni go elastycznym wyborem do podstawowego tworzenia dokumentów.

Najważniejsze cechy

  • Wypełnianie i edytowanie formularzy: Doskonała w obsłudze formularzy PDF. Użytkownicy mogą łatwo wypełniać formularze lub edytować istniejące pola w dokumentach PDF, przydatne w przypadku kontraktów, aplikacji i innych formularzy.
  • Podstawowe tworzenie PDF: Oferuje narzędzia do dodawania tekstu, kształtów, obrazów i pól formularzy. Przydatne do tworzenia prostych dokumentów, takich jak listy czy formularze.
  • Adnotacje i komentarze: Dodaj komentarze, przyklejane notatki i inne adnotacje do istniejących PDF-ów, czyniąc PDFescape świetnym narzędziem do przeglądu dokumentów i współpracy.
  • Brak wymaganego instalowania: Działa całkowicie w przeglądarce, więc nie ma potrzeby instalowania jakiegokolwiek oprogramowania. Jest to idealne dla użytkowników, którzy potrzebują szybkiego dostępu do narzędzi PDF w locie.

Zalety

  • Prosta obsługa dla użytkowników nietechnicznych.
  • Darmowa wersja do podstawowego tworzenia i edytowania PDF-ów.
  • Nadaje się do drobnych zadań edytowania PDF-ów.

Wady

  • Brak zaawansowanych funkcji do tworzenia skomplikowanych PDF-ów.
  • Ograniczone opcje projektowe i formatowania.

7.3. PDF Candy

C# Generowanie PDF 7 Porównanie bibliotek (Narzędzia darmowe i płatne): Rysunek 9

PDF Candy to zestaw darmowych internetowych narzędzi PDF, które obejmują szeroki zakres zadań związanych z PDF, od konwersji plików po edytowanie. Jest to doskonały wybór dla użytkowników, którzy muszą szybko wykonywać operacje PDF bez rejestracji konta czy instalacji oprogramowania. PDF Candy obsługuje konwersję różnych typów plików, takich jak dokumenty Word, obrazy i pliki tekstowe, na PDF. Oferuje również narzędzia do łączenia, dzielenia i kompresji PDF-ów.

Najważniejsze cechy

  • Szeroki wachlarz opcji konwersji: Może konwertować różne formaty plików, w tym dokumenty Word, obrazy i pliki tekstowe, do PDF. Czyni go to elastycznym narzędziem do obsługi różnych typów treści.
  • Łączenie i dzielenie PDF-ów: Pozwala użytkownikom łączyć wiele PDF-ów w jeden lub dzielić duże PDF-y na mniejsze, bardziej zarządzalne pliki.
  • Prywatność plików: Automatycznie usuwa pliki ze swoich serwerów po krótkim okresie, zapewniając, że twoje dokumenty pozostaną prywatne.
  • Darmowy do użytku: Większość narzędzi jest darmowa do użytku bez rejestracji, co czyni go dostępnym dla szerokiej publiczności. Jednakże, oferuje także wersję premium z bardziej zaawansowanymi funkcjami dla tych, którzy potrzebują częstszego użycia lub większych konwersji plików.

Zalety

  • Łatwy w obsłudze i całkowicie darmowy dla większości użytkowników.
  • Wspiera różne typy plików do konwersji na PDF.
  • Brak wymogu rejestracji konta do podstawowego użycia.

Wady

  • Ograniczone zaawansowane funkcje dostosowywania PDF.
  • Niektóre narzędzia mogą mieć ograniczenia rozmiaru plików lub złożoności konwersji.

Wnioski

C# Generowanie PDF 7 Porównanie bibliotek (Narzędzia darmowe i płatne): Rysunek 10

Wybór odpowiedniego narzędzia do generowania plików PDF w C# zależy od twoich potrzeb. Jeśli musisz generować dokumenty PDF z treści HTML, IronPDF i PDFShift to doskonałe wybory. iTextSharp i Syncfusion oferują szerokie opcje dostosowywania i kontroli nad strukturą dokumentu dla bardziej złożonych projektów. Dla prostszych, open-source rozwiązań, PDFsharp jest niezawodnym wyborem do modyfikacji plików PDF lub tworzenia podstawowych PDF-ów. Wreszcie, dla osób niebędących deweloperami, Smallpdf, PDFescape i PDF Candy oferują łatwe, bezkodowe opcje pracy z plikami PDF.

Dla zainteresowanych wypróbowaniem [IronPDF](trial license), czyniąc go doskonałą opcją dla deweloperów, aby przetestować jego funkcje konwersji HTML do PDF i manipulacji PDF przed zobowiązaniem się do płatnej licencji. Wersja próbna pozwala ci odkryć jego funkcje premium, takie jak wysoka jakość generowania plików PDF, opcje zabezpieczeń i modyfikowanie istniejących dokumentów PDF, dając ci praktyczne doświadczenie z możliwościami narzędzia. Jeśli twój projekt wymaga częstych konwersji HTML do PDF lub złożonej edycji PDF, bezpłatna wersja próbna IronPDF jest świetnym sposobem, aby zobaczyć, czy pasuje do twoich potrzeb.

Ocena specyficznych funkcji każdego narzędzia i zakresu twojego projektu pozwala wybrać najlepsze rozwiązanie do efektywnego generowania plików PDF w C#.

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ą różnice między bezpłatnymi a płatnymi bibliotekami PDF dla C#?

Bezpłatne biblioteki, jak PDFsharp, są doskonałe do podstawowego tworzenia i manipulacji PDF, podczas gdy płatne biblioteki, takie jak IronPDF, oferują zaawansowane funkcje, takie jak konwersja HTML na PDF, przetwarzanie formularzy i zwiększone bezpieczeństwo.

Jaka jest najlepsza otwartoźródłowa biblioteka do podstawowych zadań PDF w C#?

PDFsharp to lekka, otwartoźródłowa biblioteka .NET do PDF idealna do podstawowych zadań tworzenia PDFów. Jest darmowa zarówno do użytku komercyjnego, jak i niekomercyjnego.

Jak iTextSharp wspiera tworzenie bezpiecznych dokumentów PDF?

iTextSharp oferuje rozległe opcje dostosowania do tworzenia bezpiecznych dokumentów PDF, w tym obsługę podpisów cyfrowych i szyfrowania, co czyni ją odpowiednią dla branż wymagających bezpiecznego zarządzania dokumentami.

Czy mogę używać narzędzi online do konwersji HTML na PDF w aplikacjach C#?

Tak, narzędzia online, takie jak PDFShift i DocRaptor, oferują konwersję HTML na PDF opartą na API, co jest idealne dla aplikacji internetowych wymagających dynamicznego generowania PDF.

Jakie są zalety korzystania z biblioteki z silnikiem renderowania opartym na Chromium do generowania PDF?

Biblioteki, takie jak IronPDF, które korzystają z silnika renderowania opartego na Chromium, oferują wysokiej jakości konwersję HTML na PDF z obsługą złożonych stylizacji i JavaScriptu.

Jak biblioteka Syncfusion PDF Library przynosi korzyści aplikacjom dla przedsiębiorstw?

Biblioteka Syncfusion PDF Library dostarcza kompleksowych funkcji dla aplikacji dla przedsiębiorstw, w tym przetwarzanie formularzy, podpisy cyfrowe, i szyfrowanie, co czyni ją wysoce odpowiednią dla złożonych profesjonalnych wymagań.

Czy IronPDF jest kompatybilne z nadchodzącym wydaniem .NET 10?

Tak — IronPDF obsługuje .NET 10 bezpośrednio. Jest wpisany jako kompatybilny z .NET 10 wraz z wersjami 9, 8, 7, 6, Core, Standard i Framework, i nie są potrzebne żadne specjalne obejścia. (ironpdf.com)

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