Przejdź do treści stopki
PORóWNANIA PRODUKTóW

Porównanie Wkhtmltopdf C# z przykładami kodu

IronPDF vs wkhtmltopdf

Porównanie funkcji z dowodami z oficjalnej dokumentacji, list NuGet i repozytoriów projektowych

⚠️
wkhtmltopdf nie jest już wspierany. Projekt został zarchiwizowany i nie jest już utrzymywany. Używa przestarzałego silnika Qt WebKit, który nie obsługuje nowoczesnych standardów CSS3, Flexbox, Grid i aktualnych standardów JavaScript. Zaleca się migrację do aktywnie utrzymywanej biblioteki dla aplikacji produkcyjnych.
wkhtmltopdf
2
z 17 funkcji
2 Tak 3 Częściowo 4 Zależy od wrappera 8 Nie
⚠ Przestarzałe / Zarchiwizowane
IronPDF ✦
17
z 17 funkcji
17 Tak
✦ Pelna Obsluga
Funkcja wkhtmltopdf IronPDF ✦
PDF Creation & Conversion
HTML/CSS do PDF ⚠ Outdated Engine
Głównym celem jest HTML→PDF, ale silnik to Qt WebKit (przestarzały). Brakuje obsługi nowoczesnych CSS3, Flexbox i Grid.
✓ Yes
Wbudowany silnik Chromium — idealne odwzorowanie HTML5/CSS3 z Flexbox, Grid i nowoczesnymi standardami internetowymi.
Wykonanie JavaScript ~ Partial
Obsługuje opcje związane z JS, ale starzejący się silnik WebKit zaleca alternatywy dla złożonego JS.
✓ Yes
Pełna renderowanie HTML/CSS/JavaScript przez wbudowany Chromium — dynamiczne wykresy, SPA, interaktywna zawartość.
Programistyczne generowanie ✕ No
Zaprojektowany wyłącznie do renderowania HTML na PDF — nie jest to ogólna biblioteka do rysowania PDF programatycznie.
✓ Yes
Tworzenie nowych/pustych PDF-ów za pomocą konstruktora PdfDocument. Pełna kontrola programatyczna.
Merge, Split & Rearrange ✕ No
Narzędzie do konwersji tylko; brak dowodów na API podziału/łączenia stron PDF.
✓ Yes
Podział/łączenie obsługiwane ze specjalnym przewodnikiem. Operacje w jedną linijkę.
Editing & Manipulation
Headers, Footers & Page Numbers ✓ Yes
Silnik zapewnia funkcje nagłówka/stopki (typowa funkcjonalność wkhtmltopdf przez flagi CLI).
✓ Yes
Dedykowane API nagłówków/stopek + wspierane zastępniki stron. Oparte na HTML z pełną personalizacją.
Watermarks & Stamps ✕ No
Nie jest edytorem PDF; znakowanie wodne zazwyczaj odbywa się przez zmianę szablonu HTML przed konwersją.
✓ Yes
Jak-to znakowanie wodne/stemplowanie z wykorzystaniem HTML/tekstowych/stemplowych obrazów. Pełna kontrola przezroczystości, obrotu, pozycji kontrola.
Reading & Extraction
Wyodrębnianie tekstu z plików PDF ✕ No
Tylko konwerter; nie jest to biblioteka do wyodrębniania tekstu.
✓ Yes
ExtractAllText obsługuje opcje porządkowania (np. kolejność wizualna).
Renderowanie stron do obrazów ✕ No
wkhtmltopdf konwertuje HTML→PDF; wkhtmltoimage to HTML→obraz, nie PDF→obraz.
✓ Yes
Dokumentowane API do PDF-na-obraz/rastrowanie. Natywny PNG, JPEG, BMP output.
OCR dla zeskanowanych PDF ✕ No
OCR nie wchodzi w zakres konwertera HTML→PDF.
✓ Via IronOCR
Tworzenie przeszukiwalnych PDF-ów za pomocą OCR. Obsługa 127+ języków przez integrację IronOCR.
Security & Compliance
Podpisy cyfrowe ✕ No
wkhtmltopdf nie implementuje podpisu PDF.
✓ Yes
Przewodnik podpisywania z obsługą certyfikatów X509/PFX.
Zgodność z PDF/A ✕ No
Przepływy zgodności z PDF/A nie są dokumentowane jako obsługiwany output.
✓ Yes
Przewodnik konwersji PDF/A (np. szczegóły PDF/A-3B). Gotowość zgodności dla Enterprise.
Platform & Deployment
Obsługa wielu platform ⚙ Wrapper-Dependent
Międzysystemowe zależy od posiadania poprawnych natywnych binariów zainstalowanych dla każdego systemu operacyjnego. Nie jest samodzielny.
✓ Yes
OS-specific NuGet packages + macOS & Linux guides. Windows, Linux, macOS, ARM supported.
Serwer / Deployment Docker ⚙ Wrapper-Dependent
Wymaga dostarczenia natywnych binariów; notatki projektowe dotyczą statusu legacy engine. Składanka Docker skomplikowana.
✓ Yes
Oficjalne przewodniki Azure Functions + Docker; opcjonalnie oddzielny kontener silnika.
Czas-do-pierwszego-PDF ~ Complex
Wymaga zarządzania natywnymi binariami + integracja wrappera. Nie jest to prosta instalacja NuGet.
✓ Simple
Szybki start pokazuje instalację + minimalny kod dla HTML→PDF. Pojedynczy Install-Package IronPdf.
Licensing & Support
Jasność licencjonowania ~ Complex
Licencjonowanie LGPLv3 wprowadza rozważania dotyczące copyleft; różne .NET wrappery mają różne licencje.
✓ Clear
EULA i warunki licencji publicznie udokumentowane. Wieczyste licencje komercyjne.
Wsparcie komercyjne / SLA ? Unknown
Silnik jest OSS (zarchiwizowany); SLA sprzedawcy nie jest opisywane w cytowanych źródłach. Tylko wsparcie społecznościowe .
✓ 24/5 SLA
Portal wsparcia + "wsparcie techniczne 24/5" z gwarantowanym SLA — e-mail, czat na żywo, telefon.
Jakość dokumentacji ~ Partial
Obszerne dokumenty CLI dla silnika, ale dokumentacja wrappera .NET różni się znacznie pod względem jakości.
✓ Extensive
Pełna "jak zacząć/jak-to/przykłady" dokumentacja z próbkami kodu do skopiowania i tutorialami wideo.
Podsumowanie: wkhtmltopdf jest przestarzałym konwerterem HTML na PDF z przestarzałym silnikiem Qt WebKit. Nie jest w stanie wyodrębnić tekstu, podpisać PDF, produkować PDF/A, łączyć/dzielić, znakować wodnie, lub rastrować stron — i wymaga ręcznego zarządzania natywnymi binariami na potrzeby wdrożenia.
IronPDF to nowoczesna, aktywnie utrzymywana alternatywa — spróbuj za darmo przez 30 dni →

Wybór odpowiedniej biblioteki PDF dla twoich potrzeb może być trudny, gdy dostępnych jest wydawałoby się niezliczona ilość opcji. Porównując, kluczowe czynniki to funkcje oferowane w porównaniu z Twoimi wymaganiami, poziom wsparcia i dokumentacji, krzywa uczenia się i koszty licencji. Kluczowe jest także rozważenie wpływu na bezpieczeństwo.

To porównanie obejmuje dwie biblioteki generowania PDF o odmiennych filozofiach projektowych: WkHtmlToPdf i IronPDF. WkHtmlToPdf zbudował swoją reputację jako prosty konwerter HTML→PDF z linii poleceń, na którym wiele zespołów polegało właśnie do tego celu. Jednak używanie WkHtmlToPdf w C# może wprowadzić zagrożenia bezpieczeństwa. Ponieważ polega na zewnętrznym pliku wykonywalnym (WebKit), do eksploatacji mogą zostać potencjalnie wykorzystane jego luki bezpieczeństwa lub niewłaściwa sanityzacja komend, zagrażając bezpieczeństwu serwera przez specjalnie spreparowane HTML lub argumenty.

IronPDF jest zarządzaną biblioteką .NET, która działa w kontekście bezpieczeństwa aplikacji, redukując ryzyko związane z zewnętrznymi procesami. Poniższe sekcje porównują ich funkcje, możliwości renderowania oraz architekturę bezpieczeństwa.

Czym Są IronPDF i WkHtmlToPdf?

IronPDF to biblioteka C# do tworzenia, manipulacji i przetwarzania PDF w ramach .NET. Jej API obejmuje konwersję HTML do PDF, ekstrakcję tekstu i obrazów, obsługę formularzy oraz opcje bezpieczeństwa dokumentu takie jak szyfrowanie i podpisy cyfrowe — wszystko dostępne poprzez pojedynczy pakiet NuGet. Możesz zainstalować IronPDF przez Konsolę Menedżera Pakietów NuGet i uruchomić bibliotekę w ciągu kilku minut. Więcej informacji znajdziesz na oficjalnej stronie IronPDF.

WkHtmlToPdf to wrapper .NET Core P/Invoke dla biblioteki WkHtmlToPdf, popularnego narzędzia do konwersji stron HTML na PDF przy użyciu silnika Qt WebKit. Ta biblioteka open-source została przejęta z DinkToPdf i koncentruje się na konwersji HTML do PDF, z naciskiem na prostotę. Łatwy do zainstalowania; po pobraniu i uruchomieniu pliku wykonywalnego WkHtmlToPdf wystarczy upewnić się, że został on dodany do zmiennej środowiskowej PATH systemu. WkHtmlToPdf to lekka biblioteka, chociaż jej zakres koncentruje się na konwersji, a nie na szerszej manipulacji PDF. Aby ocenić różnice w zakresie bezpieczeństwa i funkcji IronPDF w swoim własnym środowisku, dostępny jest [bezpłatny 30-dniowy okres próbny](trial-license is available.

Kompatybilność między platformami

IronPDF

IronPDF wspiera szeroką gamę środowisk w ramach .NET, zapewniając spójne działanie na różnych platformach.

  • Wersje .NET:

    • W pełni napisany w i wspierający C#, VB.NET i F#.
    • .NET Core (8, 7, 6, 5, i 3.1+).
    • .NET Standard (2.0+).
    • .NET Framework (4.6.2+).
  • Środowiska aplikacji: IronPDF działa w różnych środowiskach aplikacji, takich jak Windows, Linux, Mac, Docker, Azure, i AWS.

  • IDE: Działa z IDE, takimi jak Microsoft Visual Studio i JetBrains Rider & ReSharper.

  • Systemy operacyjne i Procesory: Wspiera różne systemy operacyjne i procesory, w tym Windows, Mac, Linux, x64, x86, ARM.

Więcej szczegółów na temat kompatybilności IronPDF można znaleźć na stronie IronPDF Compatibility.

WkHtmlToPdf

  • Wersje .NET: Jako narzędzie wiersza poleceń WkHtmlToPdf nie ma bezpośredniego wsparcia dla .NET, jednak deweloperzy .NET zazwyczaj współpracują z nim, używając wrappera lub biblioteki, takiej jak DinkToPdf.

  • Środowiska aplikacji: WkHtmlToPdf działa płynnie w kilku środowiskach aplikacji, takich jak Windows, Linux, i macOS.

  • Języki programowania: WkHtmlToPdf jest głównie używany z narzędziami wiersza poleceń lub zintegrowany z językami programowania, takimi jak C#, Java, Python, PHP, i Node.js.

Instalacja

Instalacja IronPDF

Aby używać IronPDF, zainstalować go przez Menedżer Pakietów NuGet w Visual Studio:

Install-Package IronPdf

Instalacja Wkhtmltopdf

  1. Pobierz instalator:

    • Przejdź na stronę pobierania WkHtmlToPdf.
    • W sekcji "Windows" pobierz najnowszą stabilną wersję instalatora (np. plik .exe).
  2. Uruchom instalator:

    • Kliknij dwukrotnie pobrany plik .exe.
    • Postępuj zgodnie z instrukcjami instalacji.
    • Podczas instalacji możesz wybrać dodanie WkHtmlToPdf do systemowego PATH, aby była dostępna z dowolnego wiersza polecenia.
  3. Zweryfikuj instalację:
    • Otwórz Wiersz Polecenia (cmd).
    • Wpisz wkhtmltopdf --version, aby sprawdzić, czy jest prawidłowo zainstalowany. Na ekranie powinien pojawić się numer wersji.

Jak IronPDF i WkHtmlToPdf Porównują się w Funkcjach?

Porównując IronPDF i WkHtmlToPdf, ważne jest, aby przyjrzeć się funkcjom, które oferują obie biblioteki do generowania i manipulowania PDF.

Funkcje IronPDF:

  • Konwersja PDF: IronPDF konwertuje HTML na PDF używając wbudowanego silnika Chromium z pełnym wsparciem dla HTML5, CSS3 (w tym Flexbox i Grid) oraz JavaScript. Konwertuje również z innych formatów, takich jak DOCX, obrazy, RTF i więcej.

  • Generowanie PDF: Z IronPDF można generować PDF z URL, formatów obrazów, plików ASPX, czy ciągów HTML.

  • Funkcje bezpieczeństwa: IronPDF obejmuje szyfrowanie, ochronę hasłem, oraz granulowane ustawienia zezwoleń (tylko do odczytu, ograniczenie kopiuj/wklej, kontrola wydruku) jako pierwszorzędne operacje w API.

  • Funkcje edycji PDF: IronPDF może przetwarzać istniejące dokumenty PDF, edytować je i odczytywać pliki PDF. Możliwości edycji obejmują dodawanie nagłówków i stopek, stemplowanie tekstu i obrazów na stronach, stosowanie niestandardowych znaków wodnych, pracę z formularzami PDF oraz dzielenie lub łączenie plików PDF.

Więcej szczegółów na temat funkcji IronPDF znajdziesz na Funkcje IronPDF.

Kluczowe Funkcje WkHtmlToPdf C#:

  • Konwersja HTML do PDF: Konwertuj strony HTML, pliki, ciągi i zawartość CSS na PDF, zachowując oryginalny układ.

  • Opcje dostosowywania: Obsługuje rozmiary stron, marginesy, nagłówki, stopki, itp.

  • Open Source: Darmowy do użycia na licencji MIT.

  • Kompatybilność międzyplatformowa: Działa w środowiskach Windows, Linux i macOS.

Przykłady Kodu Równolegle

Konwersja HTML do PDF

IronPDF:

using IronPdf;

// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\\site\\assets\\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;

// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\\site\\assets\\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf

' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True

' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()

' Create a PDF from an HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")

' Export to a file or Stream
pdf.SaveAs("output.pdf")

' Advanced Example with HTML Assets
' Load external html assets: Images, CSS and JavaScript.
' An optional BasePath 'C:\\site\\assets\\' is set as the file location to load assets from
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
$vbLabelText   $csharpLabel

WkHtmlToPdf (Używając DinkToPdf):

using DinkToPdf;
var converter = new BasicConverter(new PdfTools());
var doc = new HtmlToPdfDocument()
{
    Objects = { new ObjectSettings() { HtmlContent = "<h1>Hello World</h1>" } }
};
byte[] pdf = converter.Convert(doc);
System.IO.File.WriteAllBytes("HtmlToPdf.pdf", pdf);
using DinkToPdf;
var converter = new BasicConverter(new PdfTools());
var doc = new HtmlToPdfDocument()
{
    Objects = { new ObjectSettings() { HtmlContent = "<h1>Hello World</h1>" } }
};
byte[] pdf = converter.Convert(doc);
System.IO.File.WriteAllBytes("HtmlToPdf.pdf", pdf);
Imports DinkToPdf
Private converter = New BasicConverter(New PdfTools())
Private doc = New HtmlToPdfDocument() With {
	.Objects = {
		New ObjectSettings() With {.HtmlContent = "<h1>Hello World</h1>"}
	}
}
Private pdf() As Byte = converter.Convert(doc)
System.IO.File.WriteAllBytes("HtmlToPdf.pdf", pdf)
$vbLabelText   $csharpLabel

WkHtmlToPdf (Używając wiersza poleceń)

wkhtmltopdf myfile.html myfile.pdf
wkhtmltopdf myfile.html myfile.pdf
SHELL

IronPDF produkuje idealnie odwzorowane pliki PDF z treści HTML w kilku linijkach kodu. Jego wbudowany silnik Chromium obsługuje nowoczesne CSS3, Flexbox i Grid, więc wygenerowany PDF ściśle odpowiada oryginalnemu źródłu. WkHtmlToPdf jest zbudowany wokół tego samego głównego zadania — konwersji HTML do PDF — i obsługuje to zwięźle, niezależnie od tego, czy jest wywoływany przez bibliotekę wrapper, czy przez wiersz poleceń. Zespoły zazwyczaj napotykają trudności w przypadku nowoczesnego rozmieszczenia CSS: silnik Qt WebKit WkHtmlToPdf nie w pełni obsługuje Flexbox czy Grid, co może prowadzić do nieoczekiwanych wyników renderowania w nowoczesnych projektach.

Szyfrowanie plików PDF

IronPDF:

using IronPdf;
using System;

// Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;

// Edit file security settings
// The following code makes a PDF read-only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// Change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
using IronPdf;
using System;

// Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;

// Edit file security settings
// The following code makes a PDF read-only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// Change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
Imports IronPdf
Imports System

' Open an Encrypted File, alternatively create a new PDF from Html
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")

' Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = DateTime.Now

' Edit file security settings
' The following code makes a PDF read-only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption()
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = False
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights

' Change or set the document encryption password
pdf.Password = "my-password"
pdf.SaveAs("secured.pdf")
$vbLabelText   $csharpLabel

WkHtmlToPdf:

Szyfrowanie jest poza zakresem WkHtmlToPdf; wymaga osobnej biblioteki trzeciej stronu.

IronPDF dostarcza bezpośredniego API do szyfrowania plików PDF, w tym ochronę hasłem, wymuszanie tylko do odczytu, i kontrolę nad szczegółowymi zezwoleniami. WkHtmlToPdf koncentruje się na etapie konwersji, więc zespoły potrzebujące szyfrowania zazwyczaj integrują drugą bibliotekę do obsługi bezpieczeństwa dokumentu po wygenerowaniu PDF.

Redagowanie treści PDF

IronPDF:

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

pdf.SaveAs("redacted.pdf");
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

pdf.SaveAs("redacted.pdf");
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")

' Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are")

pdf.SaveAs("redacted.pdf")
$vbLabelText   $csharpLabel

WkHtmlToPdf:

Redakcja nie jest częścią zestawu funkcji WkHtmlToPdf.

API redakcji IronPDF redaguje określoną treść w jednym wywołaniu metody — trzy linijki kodu w powyższym przykładzie. Ponieważ WkHtmlToPdf jest zaprojektowany jako narzędzie do konwersji, a nie edytor PDF, redakcja wypada poza jego architektoniczny zakres. Zespoły potrzebujące tej funkcjonalności dodałyby osobną bibliotekę do manipulacji PDF.

Podpisywanie Plików PDF Cyfrowo

IronPDF:

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

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");

// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create PdfSignature object
var sig = new PdfSignature(cert);

// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");

// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create PdfSignature object
var sig = new PdfSignature(cert);

// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates

' Instantiate Renderer
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>foo</h1>")

' Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)

' Create PdfSignature object
Private sig = New PdfSignature(cert)

' Sign PDF document
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
$vbLabelText   $csharpLabel

WkHtmlToPdf C#:

WkHtmlToPdf nie jest zaprojektowany do podpisywania PDF; do tej funkcji potrzebna jest osobna biblioteka.

API do podpisywania cyfrowego IronPDF akceptuje certyfikaty X509/PFX i podpisuje dokument w dwóch wywołaniach metod, co upraszcza przepływy pracy wymagające programatycznego podpisywania na dużą skalę. WkHtmlToPdf nie jest zaprojektowany do samodzielnego obsługi podpisywania PDF; jednakże, jeśli korzystasz z niego wraz z inną biblioteką, ta może dostarczyć funkcjonalności podpisywania, których potrzebujesz.

Stosowanie Niestandardowych Znaków Wodnych na Swoje PDFy

IronPDF:

using IronPdf;

// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;

// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf

' Stamps a Watermark onto a new or existing PDF
Private renderer = New ChromePdfRenderer()

Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)
pdf.SaveAs("C:\Path\To\Watermarked.pdf")
$vbLabelText   $csharpLabel

WkHtmlToPdf:

Znakowanie wodne nie jest częścią rodzimego zestawu funkcji WkHtmlToPdf. Zamiast tego trzeba by zaimplementować stylowanie CSS w źródłowym HTML przed konwersją, lub użyć osobnej biblioteki PDF, która może nałożyć znaki wodne na istniejące dokumenty.

Narzędzie do znakowania wodnego IronPDF używa podejścia opartego na HTML/CSS, dając programistom kontrolę nad przezroczystością, obrotem i pozycją bez wychodzenia z API .NET. WkHtmlToPdf może przybliżać znaki wodne przez stylowanie CSS stosowane do źródłowego HTML przed konwersją — podejście, które działa w prostszych przypadkach, ale osiąga swe granice projektowe, gdy trzeba nałożyć znaki wodne na istniejące PDF-y, które nie były wygenerowane z własnego HTML.

Stemplaowanie Obrazów i Tekstu

IronPDF:

using IronPdf;
using IronPdf.Editing;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create text stamper
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");
using IronPdf;
using IronPdf.Editing;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create text stamper
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");
Imports IronPdf
Imports IronPdf.Editing

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")

' Create text stamper
Private textStamper As New TextStamper() With {
	.Text = "Text Stamper!",
	.FontFamily = "Bungee Spice",
	.UseGoogleFont = True,
	.FontSize = 30,
	.IsBold = True,
	.IsItalic = True,
	.VerticalAlignment = VerticalAlignment.Top
}

' Stamp the text stamper
pdf.ApplyStamp(textStamper)
pdf.SaveAs("stampText.pdf")
$vbLabelText   $csharpLabel
using IronPdf;
using IronPdf.Editing;
using System;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
using IronPdf;
using IronPdf.Editing;
using System;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
Imports IronPdf
Imports IronPdf.Editing
Imports System

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")

' Create image stamper
Private imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {.VerticalAlignment = VerticalAlignment.Top}

' Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0)
pdf.SaveAs("stampImage.pdf")
$vbLabelText   $csharpLabel

WkHtmlToPdf C#:

WkHtmlToPdf nie zawiera wbudowanych narzędzi do stemplowania. Typowe rozwiązanie to wbudowanie pożądanych stempli w źródłowy HTML i CSS przed konwersją.

IronPDF dostarcza dedykowane klasy TextStamper i ImageStamper do stemplowania tekstu i obrazów na stronach PDF — w tym wsparcie dla fontów Google i precyzyjne kontrolowanie wyrównania. WkHtmlToPdf nie zawiera wbudowanych narzędzi do stemplowania, ale można uzyskać podobny efekt, wbudowując treść stemplowaną bezpośrednio w źródłowy HTML i CSS przed konwersją.

Konwersja DOCX na PDF

IronPDF:

using IronPdf;

// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();

// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
using IronPdf;

// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();

// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer As New DocxToPdfRenderer()

' Render from DOCX file
Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")

' Save the PDF
pdf.SaveAs("pdfFromDocx.pdf")
$vbLabelText   $csharpLabel

WkHtmlToPdf C#:

WkHtmlToPdf skupia się wyłącznie na wejściu HTML, więc konwersja DOCX wymaga dodatkowych bibliotek.

IronPDF obsługuje konwersję DOCX na PDF poprzez swoją klasę DocxToPdfRenderer — trzy linijki kodu w powyższym przykładzie. Ponieważ pipeline renderowania WkHtmlToPdf opiera się na wejściu HTML, DOCX nie jest obsługiwanym formatem źródłowym. Zespoły potrzebujące tej funkcjonalności zintegrowałyby osobną bibliotekę konwersji wraz z WkHtmlToPdf.

Podsumowanie porównania przykładów kodowania

Aby zobaczyć pełen wachlarz możliwości IronPDF w akcji, zapoznaj się z przewodnikami jak-to IronPDF, które prowadzą przez każdą funkcję ze wzorami kodu do skopiowania.

Ceny i Licencjonowanie: IronPDF vs. WkHtmlToPdf

IronPDF

IronPDF ma różne poziomy i dodatkowe funkcje związane z zakupem licencji. Programiści mogą również kupić Iron Suite, co daje dostęp do wszystkich produktów IronSoftware w cenie dwóch. Jeśli nie jesteś gotów na zakup licencji, IronPDF oferuje bezpłatną wersję próbną, aby odkryć wszystkie funkcje, które ma do zaoferowania przed podjęciem decyzji o licencji.

  • Licencje wieczyste: Oferuje zakres licencji wieczystych w zależności od wielkości twojego zespołu, potrzeb projektu i liczby lokalizacji. Każdy typ licencji zawiera wsparcie e-mailowe.

  • Lite License: Ta licencja wspiera jednego dewelopera, jedną lokalizację i jeden projekt.

  • Plus License: Wspierając trzech deweloperów, trzy lokalizacje i trzy projekty, to jest kolejny krok od Lite License. Licencja Plus oferuje wsparcie na czacie i wsparcie telefoniczne oprócz podstawowego wsparcia e-mailowego.

  • Professional License: Ta licencja jest odpowiednia dla większych zespołów, wspierając dziesięciu deweloperów, dziesięć lokalizacji i dziesięć projektów. Oferuje te same kanały wsparcia, co poprzednie poziomy, ale również oferuje wsparcie przy udostępnianiu ekranu.

  • Royalty-free redistribution: Licencja IronPDF oferuje także bez dodatkowych opłat licencyjnych zakres redystrybucji za dodatkowy koszt.

  • Nieprzerwane wsparcie produktów: IronPDF oferuje dostęp do bieżących aktualizacji produktów, ulepszeń funkcji zabezpieczeń i wsparcia od zespołu inżynierskiego.

  • Iron Suite: Uzyskujesz dostęp do wszystkich produktów Iron Software, w tym IronPDF, IronOCR, IronWord, IronXL, IronBarcode, IronQR, IronZIP, IronPrint, i IronWebScraper.

WkHtmlToPdf

WkHtmlToPdf to narzędzie do bezpłatnego użycia w ramach open-source, licencjonowane na Licencji LGPL, które pozwala na używanie wkhtmltopdf w aplikacjach własnościowych, o ile nie modyfikujesz samej biblioteki.

Oprócz kosztów licencji, całkowity koszt projektu obejmuje godziny programisty spędzone na zarządzaniu natywnymi zależnościami binarnymi, składaniu osobnych bibliotek do szyfrowania, podpisywania, redakcji i radzenia sobie z ograniczoną obsługą CSS3 przez silnik Qt WebKit. 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.

Dokumentacja i Wsparcie: IronPDF vs. WkHtmlToPdf

IronPDF

IronPDF oferuje rozbudowaną dokumentację i wsparcie:

  • Wszechstronna Dokumentacja: Obszerna i przyjazna dla użytkownika dokumentacja obejmująca wszystkie funkcje.

  • 24/5 Wsparcie: Aktywne wsparcie inżynierów jest dostępne.

  • Samouczki wideo: Krok po kroku przewodniki wideo dostępne na YouTube.

  • Forum społecznościowe: Zaangażowana społeczność dla dodatkowego wsparcia.

  • Regularne aktualizacje: Miesięczne aktualizacje produktów, aby zapewnić najnowsze funkcje i ulepszenia zabezpieczeń.

  • Odwołanie do API PDF: Oferuje odwołania API, aby jak najlepiej wykorzystać to, co nasze narzędzia mają do zaoferowania.

Więcej informacji znajdziesz w obszernej dokumentacji IronPDF oraz na kanale YouTube IronSoftware.

WkHtmlToPdf

  • GitHub: Repozytorium GitHub WkHtmlToPdf jest miejscem, gdzie użytkownicy mogą zgłaszać problemy, które znajdują podczas korzystania z narzędzia.

  • Stack Overflow: Tutaj znajdziesz liczne pytania i odpowiedzi związane z WkHtmlToPdf oraz uzyskasz porady społeczności.

  • Oficjalna Dokumentacja: Oficjalna dokumentacja dostarcza szczegółów na temat instalacji, użytkowania, opcji wiersza poleceń i powszechnych konfiguracji.

Którą bibliotekę wybrać?

Zarówno IronPDF, jak i WkHtmlToPdf odnoszą się do generowania PDF w C#, ale kierują się na różne segmenty spektrum złożoności. IronPDF obejmuje cały cykl życia PDF — konwersję, szyfrowanie, redakcję, podpisy cyfrowe, DOCX do PDF i więcej — przez pojedynczy pakiet NuGet z aktywnie utrzymywanym silnikiem renderowania Chromium. Dla zespołów, których projekty obejmują wiele operacji PDF, to skonsolidowane podejście zmniejsza liczbę zależności do zarządzania.

WkHtmlToPdf zdobył swoją popularność poprzez skoncentrowane, prostoliniowe podejście do konwersji HTML→PDF, a jego zerowy koszt licencyjny czyni go dostępnym punktem wejścia. Gdzie zespoły zazwyczaj napotykają punkt zwrotny, jest gdy wymagania rozszerzają się poza konwersję na edycję, bezpieczeństwo lub zgodność — funkcje, które wchodzą poza architektoniczny zakres WkHtmlToPdf. W połączeniu z zarchiwizowanym statusem projektu i starzejącym się silnikiem WebKit, zespoły z rosnącymi wymaganiami często znajdują ten naturalny moment na ocenę aktywnie utrzymywanej alternatywy. Ostatecznie, właściwy wybór zależy od obecnych i przewidywanych wymagań projektowych dotyczących PDF.

Możesz wypróbować 30-dniową bezpłatną wersję próbną, aby sprawdzić dostępne funkcje.

Zwróć uwagęWkHtmlToPdf jest zarejestrowanym znakiem towarowym swojego właściciela. Ta strona nie jest powiązana, popierana ani sponsorowana przez WkHtmlToPdf. 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#?

Mozesz uzyc metody RenderHtmlAsPdf w IronPDF, aby konwertowac lancuchy HTML na PDF. Dodatkowo, mozna konwertowac pliki HTML na PDF przy pomocy RenderHtmlFileAsPdf.

Jakie sa kluczowe roznice miedzy IronPDF a WkHtmlToPdf?

IronPDF oferuje rozbudowany zestaw funkcji, wlaczajac ekstrakcje tekstu, obsluge formularzy, szyfrowanie i podpisy cyfrowe, a takze zgodnosc multiplatformowa. WkHtmlToPdf to narzedzie open-source, ktore koncentruje sie na bezposredniej konwersji HTML do PDF.

Jak zainstalować IronPDF w projekcie .NET?

IronPDF mozna zainstalowac uzywajac Menadzera Pakietow NuGet w Visual Studio, wykonujac komende: Install-Package IronPdf.

Czy mozliwe jest szyfrowanie PDF za pomoca IronPDF?

Tak, IronPDF oferuje opcje szyfrowania plikow PDF, ustawiania hasel i przypisywania uprawnien, aby zwiekszyc bezpieczenstwo dokumentow.

Czy IronPDF obsługuje tworzenie oprogramowania na wiele platform?

Rzeczywiscie, IronPDF jest zgodny z roznymi srodowiskami w ramach .NET framework, w tym Windows, Linux, Mac, Docker, Azure i AWS.

Czy IronPDF może konwertować pliki DOCX do formatu PDF?

Tak, IronPDF zawiera funkcjonalnosc, ktora pozwala na bezproblemowa konwersje plikow DOCX do PDF.

Jakie wsparcie jest dostepne dla uzytkownikow IronPDF?

IronPDF oferuje szczegolowa dokumentacje, wsparcie inzynierow 24/5, samouczki wideo, forum spolecznosciowe i regularne aktualizacje oprogramowania.

Jak zainstalowac WkHtmlToPdf?

Aby zainstalowac WkHtmlToPdf, pobierz plik wykonywalny z jego oficjalnej strony, uruchom instalator i upewnij sie, ze jest on dodany do sciezki PATH twojego systemu.

Jakie sa implikacje licencyjne dotyczace korzystania z WkHtmlToPdf?

WkHtmlToPdf jest dystrybuowany na licencji LGPL, pozwalajac na darmowe uzytkowanie w aplikacjach open-source oraz wlasnosciowych.

Czy WkHtmlToPdf oferuje wsparcie dla szyfrowania PDF?

Nie, WkHtmlToPdf nie zawiera natywnego wsparcia dla szyfrowania PDF. Dodatkowe zewnetrzne biblioteki sa potrzebne do zdolnosci szyfrowania.

Kye Stuart
Autor tekstów technicznych

Kye Stuart łączy pasję do kodowania i umiejętność pisania w Iron Software. Ukończył naukę w Yoobee College w zakresie wdrażania oprogramowania, teraz przekształcając złożone koncepcje technologiczne w jasne materiały edukacyjne. Kye ceni sobie ciągłe naukę i chętnie podejmuje ...

Czytaj więcej

Zespol wsparcia Iron

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