
Jak konwertować kolorowe PDF-y na odcienie szarości
Jeśli chodzi o konwersję HTML do PDF w języku C#, programiści mogą rozważyć wykorzystanie natywnych funkcji platformy .NET bez konieczności korzystania z zewnętrznych bibliotek. Chociaż takie podejście może być opłacalne w niektórych sytuacjach, wiąże się ono z pewnymi zaletami i wyzwaniami. W tym artykułe omówimy proces, zalety i wady oraz wyjaśnimy, dlaczego biblioteka taka jak IronPDF może być lepszym rozwiązaniem.
Jak to działa
Korzystając z wbudowanych narzędzi .NET, można dokonać konwersji HTML do PDF poprzez renderowanie treści HTML i wydrukowanie jej przy użyciu kontrolki WebBrowser oraz klasy PrintDocument. Oto uproszczony przebieg pracy:
- Zapisz treść HTML do pliku tymczasowego.
- Załaduj kod HTML do kontrolki WebBrowser w celu renderowania.
- Użyj klasy PrintDocument, aby utworzyć zadanie drukowania, które wyświetli wyrenderowaną zawartość.
Chociaż takie podejście pozwala uniknąć zależności zewnętrznych, wiąże się ono z pracą z komponentami niskiego poziomu i ręcznym definiowaniem logiki drukowania.
Jeśli chcesz przekonwertować HTML na PDF w języku C# bez użycia zewnętrznych bibliotek, możesz skorzystać z wbudowanych funkcji .NET, takich jak System.IO i System.Drawing.Printing, aby wyrenderować HTML, a następnie utworzyć plik PDF. Poniżej znajduje się podstawowy przykład, który pomoże Ci rozpocząć pracę:
Jak przekonwertować HTML na PDF w C# bez biblioteki?

using System;
using System.IO;
using System.Windows.Forms; // You need to add a reference to System.Windows.Forms
using System.Drawing.Printing;
class Program
{
[STAThread] // Required for using WebBrowser control
static void Main()
{
// HTML content to be converted
string htmlContent = "<html><body><h1>Hello, World!</h1></body></html>";
// Write HTML content to a temporary file
string tempFilePath = Path.Combine(Path.GetTempPath(), "temp.html");
File.WriteAllText(tempFilePath, htmlContent);
// Initialize a WebBrowser to render HTML
WebBrowser webBrowser = new WebBrowser();
webBrowser.DocumentCompleted += (sender, e) =>
{
// Create a PrintDocument for the printing task
PrintDocument printDoc = new PrintDocument();
printDoc.PrintPage += (s, args) =>
{
// Render the HTML content onto the Graphics object of PrintPageEventArgs
args.Graphics.DrawString(htmlContent, new Font("Arial", 12), Brushes.Black, new PointF(100, 100));
};
// Use a standard print controller for silent printing
printDoc.PrintController = new StandardPrintController();
// Trigger the printing process
printDoc.Print();
// Exit the application once printing is complete
Application.ExitThread();
};
// Load the HTML file into the WebBrowser control
webBrowser.Url = new Uri(tempFilePath);
// Run the application, which processes events like HTML rendering
Application.Run();
}
}Imports System
Imports System.IO
Imports System.Windows.Forms ' You need to add a reference to System.Windows.Forms
Imports System.Drawing.Printing
Friend Class Program
<STAThread>
Shared Sub Main()
' HTML content to be converted
Dim htmlContent As String = "<html><body><h1>Hello, World!</h1></body></html>"
' Write HTML content to a temporary file
Dim tempFilePath As String = Path.Combine(Path.GetTempPath(), "temp.html")
File.WriteAllText(tempFilePath, htmlContent)
' Initialize a WebBrowser to render HTML
Dim webBrowser As New WebBrowser()
AddHandler webBrowser.DocumentCompleted, Sub(sender, e)
' Create a PrintDocument for the printing task
Dim printDoc As New PrintDocument()
AddHandler printDoc.PrintPage, Sub(s, args)
' Render the HTML content onto the Graphics object of PrintPageEventArgs
args.Graphics.DrawString(htmlContent, New Font("Arial", 12), Brushes.Black, New PointF(100, 100))
End Sub
' Use a standard print controller for silent printing
printDoc.PrintController = New StandardPrintController()
' Trigger the printing process
printDoc.Print()
' Exit the application once printing is complete
Application.ExitThread()
End Sub
' Load the HTML file into the WebBrowser control
webBrowser.Url = New Uri(tempFilePath)
' Run the application, which processes events like HTML rendering
Application.Run()
End Sub
End ClassWyjaśnienie kodu
- Kontrolka WebBrowser służy do renderowania kodu HTML.
- Klasa PrintDocument służy do definiowania zachowania drukowania.
- Ten przykład nie tworzy bezpośrednio pliku PDF; trzeba by go rozszerzyć, aby zintegrować logikę tworzenia surowych plików PDF, taką jak ręczne rysowanie tekstu i kształtów lub praca ze strumieniami.
To podejście ma swoje ograniczenia i może stać się skomplikowane w przypadku dużych lub sformatowanych dokumentów HTML. Jeśli pozwala na to dany przypadek użycia, korzystanie z biblioteki takiej jak IronPDF jest zazwyczaj znacznie bardziej wydajne i oferuje bogatszy zestaw funkcji.
Zalety i wady korzystania z wbudowanych funkcji .NET
Zalety
- Brak zależności zewnętrznych: Unikanie bibliotek zewnętrznych może zmniejszyć złożoność zarządzania zależnościami stron trzecich w projekcie.
- Bezpłatne: Ponieważ ta metoda wykorzystuje wyłącznie natywne komponenty .NET, nie ma żadnych opłat licencyjnych ani dodatkowych kosztów.
- Precyzyjna kontrola: Masz pełną kontrolę nad sposobem renderowania i drukowania treści, co pozwala na dostosowanie do indywidualnych potrzeb.
Wady
- Ograniczone funkcje: Wbudowane narzędzia .NET nie mają możliwości dokładnego renderowania złożonego kodu HTML, CSS lub JavaScript. Zaawansowane układy, responsywne projekty lub dynamiczna treść mogą nie być obsługiwane.
- Czasochłonne wdrożenie: Konieczne jest napisanie niestandardowego kodu do obsługi renderowania, paginacji i tworzenia plików PDF, co może prowadzić do wyższych kosztów rozwoju.
- Niska skalowalność: W przypadku aplikacji o dużej skali lub wymagających wysokiej wydajności takie podejście może być nieefektywne i podatne na wąskie gardła.
- Brak natywnej obsługi plików PDF: ten proces nie tworzy bezpośrednio plików PDF; trzeba by zaimplementować niestandardową logikę, aby wygenerować plik PDF na podstawie wydruku PRINT.
Wprowadzenie do IronPDF

IronPDF to biblioteka .NET, która pozwala programistom z łatwością konwertować HTML na PDF. Obsługuje szeroki zakres funkcji, w tym CSS, JavaScript, a nawet osadzone obrazy. Dzięki IronPDF możesz tworzyć pliki PDF, które wyglądają dokładnie tak samo jak Twoje strony HTML, zapewniając płynne przejście między formatami. Ta biblioteka jest szczególnie przydatna w aplikacjach internetowych, które muszą generować dynamiczne dokumenty PDF w locie.
IronPDF pozwala programistom na płynną integrację funkcji PDF z aplikacjami .NET bez konieczności ręcznego zarządzania strukturami plików PDF. IronPDF wykorzystuje silnik renderujący oparty na przeglądarce Chrome do konwersji stron HTML (w tym złożonych elementów CSS, JavaScript i obrazów) na dobrze ustrukturyzowane dokumenty PDF. Można go używać do generowania raportów, faktur, e-booków lub dowolnego rodzaju dokumentów, które muszą być przedstawione w formacie PDF.
IronPDF jest wszechstronnym narzędziem, oferującym nie tylko renderowanie plików PDF, ale także szeroki zakres opcji manipulacji plikami PDF, takich jak edycja, obsługa formularzy, szyfrowanie i wiele innych.
Najważniejsze cechy IronPDF
-
Konwersja HTML do PDF
-
Renderowanie HTML: IronPDF może konwertować dokumenty w formacie HTML lub strony internetowe (w tym HTML z CSS, obrazami i JavaScript) bezpośrednio do dokumentu PDF. Może również konwertować przy użyciu szablonu HTML. Jest to idealne rozwiązanie do generowania plików PDF z dynamicznych treści internetowych.
-
Obsługa nowoczesnego HTML/CSS: IronPDF obsługuje nowoczesne HTML5, CSS3 i JavaScript, zapewniając dokładne renderowanie treści internetowych w formacie PDF z zachowaniem układu, czcionek i elementów interaktywnych.
-
Zaawansowane renderowanie: Wykorzystuje silnik renderujący Chrome (poprzez Chromium) do dokładnego generowania plików PDF o wysokiej jakości, dzięki czemu jest bardziej niezawodny niż wiele innych bibliotek do konwersji HTML na PDF.
-
Adres URL strony internetowej do pliku PDF: IronPDF może przyjąć jako dane wejściowe ciąg znaków adresu URL strony internetowej i przekonwertować go do formatu PDF.
-
-
Niestandardowe nagłówki i stopki
-
IronPDF pozwala programistom dodawać niestandardowe nagłówki i stopki do dokumentów PDF, które mogą zawierać treści dynamiczne, takie jak numery stron, tytuł dokumentu lub niestandardowy tekst.
-
Nagłówki i stopki można dodawać do poszczególnych stron lub jako spójne elementy w całym dokumencie.
-
-
Obsługa JavaScript w plikach PDF
-
IronPDF umożliwia wykonywanie kodu JavaScript w treści HTML przed wygenerowaniem pliku PDF. Umożliwia to dynamiczne renderowanie treści, takie jak obliczenia w formularzach lub interaktywność w generowanych plikach PDF.
-
JavaScript jest przydatny podczas tworzenia plików PDF z dynamicznych stron internetowych lub generowania raportów wymagających logiki po stronie klienta.
-
-
Edytuj istniejące pliki PDF
-
IronPDF umożliwia edycję istniejących plików PDF. Możesz modyfikować tekst, obrazy i dodawać adnotacje do istniejących plików PDF. Ta funkcja jest przydatna do umieszczania znaków wodnych w dokumentach, dodawania podpisów lub aktualizowania treści w plikach PDF.
-
Wyodrębnianie i modyfikowanie tekstu pozwala na programową manipulację treścią w dokumencie PDF.
-
-
Łączenie i dzielenie plików PDF
- IronPDF pozwala na połączenie wielu plików PDF w jeden dokument lub podzielenie dużego pliku PDF na mniejsze pliki. Jest to idealne rozwiązanie dla procesów, w których dokumenty muszą być łączone lub dzielone na łatwiejsze do zarządzania części.
-
Obsługa formularzy interaktywnych
-
Za pomocą IronPDF można tworzyć, wypełniać i edytować formularze PDF. Zapewnia pełną obsługę interaktywnych formularzy (takich jak pola tekstowe, pola wyboru i przyciski opcji) oraz umożliwia wstępne wypełnianie formularzy danymi.
-
IronPDF umożliwia również wyodrębnianie danych z formularzy z istniejących plików PDF, co ułatwia odczyt i przetwarzanie tych danych programowo.
-
-
Manipulacja stronami
-
IronPDF oferuje różne metody manipulowania poszczególnymi stronami w dokumencie PDF, takie jak obracanie stron, usuwanie stron lub zmiana ich kolejności. Pomoże to w dostosowaniu struktury końcowego dokumentu.
-
Można również dodawać nowe strony do istniejącego pliku PDF lub usuwać niepotrzebne strony.
-
-
Bezpieczeństwo i szyfrowanie
-
IronPDF umożliwia zastosowanie ochrony hasłem i szyfrowania plików PDF, zapewniając bezpieczeństwo dokumentów. Można ustawić uprawnienia użytkowników, takie jak uniemożliwienie drukowania, kopiowania lub edycji pliku PDF.
-
Do plików PDF można również dodawać podpisy cyfrowe w celu weryfikacji autentyczności, zapewniając dodatkową warstwę bezpieczeństwa dla poufnych dokumentów.
-
-
Znak wodny i branding
-
Dodawanie znaków wodnych do dokumentów PDF jest łatwe dzięki IronPDF. Możesz nakładać tekst lub obrazy jako znaki wodne na strony, zapewniając ochronę przed nieautoryzowanym kopiowaniem lub rozpowszechnianiem dokumentów.
-
Ta funkcja jest często wykorzystywana w celach brandingowych, gdy logo lub tekst muszą pojawiać się spójnie na wszystkich stronach dokumentu.
-
-
Wyodrębnianie tekstu i obrazów
-
IronPDF umożliwia wyodrębnianie tekstu i obrazów z dokumentów PDF, pozwalając programistom na pozyskiwanie danych do przetwarzania lub ponownego wykorzystania.
-
Jest to przydatne w sytuacjach, gdy trzeba przeanalizować zawartość pliku PDF, wyodrębnić informacje z formularzy lub pobrać obrazy do dalszego wykorzystania.
-
-
Obsługa Unicode i wielu języków
-
IronPDF oferuje solidną obsługę Unicode, co oznacza, że może obsługiwać znaki i czcionki międzynarodowe, dzięki czemu idealnie nadaje się do generowania plików PDF w wielu językach.
-
Obsługuje takie języki jak chiński, arabski, rosyjski i inne, umożliwiając tworzenie wielojęzycznych dokumentów PDF.
-
-
Zoptymalizowane pod kątem wydajności
- IronPDF jest zoptymalizowany pod kątem wydajności i może obsługiwać duże dokumenty PDF oraz dużą liczbę żądań. Biblioteka zapewnia, że nawet podczas pracy z dużymi zbiorami danych lub obrazami generowanie plików PDF pozostaje szybkie i wydajne.
-
API i narzędzia przyjazne dla programistów
-
IronPDF jest wyposażony w kompleksowy i łatwy w użyciu interfejs API. Programiści mogą szybko rozpocząć pracę, wykorzystując proste wywołania metod do wykonywania złożonych zadań.
-
Interfejs API jest dobrze udokumentowany, co ułatwia integrację IronPDF z dowolną aplikacją C# lub .NET.
-
-
Obsługa wielu platform
- IronPDF jest kompatybilny z wieloma platformami, co oznacza, że można go używać zarówno w środowisku Windows, jak i Linux, co pozwala na generowanie i edycję plików PDF w różnych systemach operacyjnych.
Jak przekonwertować HTML na PDF za pomocą IronPDF
using IronPdf;
class Program
{
static void Main()
{
// Specify license key
License.LicenseKey = "Your Key";
// Create a new ChromePdfRenderer object
var Renderer = new ChromePdfRenderer();
// Define the HTML string to be converted
string htmlContent = "<html><body><h1>IronPDF: Easily Convert HTML to PDF</h1></body></html>";
// Convert the HTML string to a PDF document
var document = Renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF document to a file
document.SaveAs("html2Pdf.pdf");
}
}Imports IronPdf
Friend Class Program
Shared Sub Main()
' Specify license key
License.LicenseKey = "Your Key"
' Create a new ChromePdfRenderer object
Dim Renderer = New ChromePdfRenderer()
' Define the HTML string to be converted
Dim htmlContent As String = "<html><body><h1>IronPDF: Easily Convert HTML to PDF</h1></body></html>"
' Convert the HTML string to a PDF document
Dim document = Renderer.RenderHtmlAsPdf(htmlContent)
' Save the PDF document to a file
document.SaveAs("html2Pdf.pdf")
End Sub
End ClassWyjaśnienie fragmentu kodu
1. Konfiguracja klucza licencyjnego
Program rozpoczyna się od ustawienia klucza licencyjnego IronPDF, który jest wymagany do odblokowania pełnej funkcjonalności biblioteki.
2. Tworzenie renderera
Inicjowana jest instancja ChromePdfRenderer. Ten komponent odpowiada za konwersję treści HTML do dokumentu PDF, pełniąc rolę pomostu między surowym kodem HTML a końcowym wynikiem.
3. Definiowanie treści HTML
Zmienna string, htmlContent, jest tworzona do przechowywania struktury HTML, która będzie konwertowana na PDF. W tym przykładzie znajduje się prosty nagłówek.
4. Konwersja HTML do PDF
Metoda RenderHtmlAsPdf() jest wywoływana na instancji ChromePdfRenderer, przekazując jako dane wejściowe ciąg HTML. Ta funkcja przetwarza treść i przekształca ją w dokument PDF.
5. Zapisywanie pliku PDF
Na koniec wygenerowany PDF jest zapisywany do pliku o nazwie "html2Pdf.pdf" za pomocą metody SaveAs(), przechowując go na dysku do przyszłego dostępu.
Wynik

Informacje o licencji (dostępna wersja próbna)
Aby korzystać z pełnej funkcjonalności IronPDF, wymagany jest ważny klucz licencyjny. Licencję Trial można uzyskać na oficjalnej stronie internetowej. Przed użyciem biblioteki IronPDF należy ustawić klucz licencyjny w następujący sposób:
IronPdf.License.LicenseKey = "your key";IronPdf.License.LicenseKey = "your key"Gwarantuje to, że biblioteka działa bez ograniczeń.
Wnioski
Chociaż korzystanie z wbudowanych funkcji .NET do konwersji HTML na PDF może być realnym rozwiązaniem w prostych przypadkach, często wymaga to sporego wysiłku i nie oferuje nowoczesnych możliwości. Natomiast biblioteki takie jak IronPDF oferują solidną funkcjonalność, szybsze tworzenie oprogramowania oraz obsługę zaawansowanego renderowania HTML, co sprawia, że są one najczęściej wybierane przez większość programistów. Ostateczna decyzja zależy od wymagań projektu, budżetu i priorytetów programistycznych.

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ęczników.
Powiązane artykuły


