Emotikony nie renderują się w IronPDF przy użyciu RenderHtmlAsPdf()

This article was translated from English: Does it need improvement?
Translated
View the article in English

Podczas renderowania HTML zawierającego znaki emoji przy użyciu RenderHtmlAsPdf(), w wyniku PDF nie wyświetlają się znaki emoji, mimo że poprawnie pojawiają się one w podglądach wydruku przeglądarki i HTML jest prawidłowo zakodowany jako UTF-8.

Metoda oparta na ciągach znakowych RenderHtmlAsPdf() ma ograniczenia w obsłudze Unikodu, które powodują, że znaki emoji nie są uwzględniane w wynikowych PDF. Renderowanie oparte na plikach przetwarza treść w kontekście bliższym realnej przeglądarki, co poprawia obsługę Unicode i emotikonów.

Rozwiązanie

Option 1: Use RenderHtmlFileAsPdf()

Zapisz zawartość HTML do tymczasowego pliku i renderuj ze ścieżki pliku, zamiast korzystać z ciągu:

string tempPath = Path.GetTempFileName() + ".html";
File.WriteAllText(tempPath, htmlContent, System.Text.Encoding.UTF8);

var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf(tempPath);

File.Delete(tempPath);
pdf.SaveAs("output.pdf");
string tempPath = Path.GetTempFileName() + ".html";
File.WriteAllText(tempPath, htmlContent, System.Text.Encoding.UTF8);

var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf(tempPath);

File.Delete(tempPath);
pdf.SaveAs("output.pdf");
Imports System.IO
Imports System.Text
Imports IronPdf

Dim tempPath As String = Path.GetTempFileName() & ".html"
File.WriteAllText(tempPath, htmlContent, Encoding.UTF8)

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf(tempPath)

File.Delete(tempPath)
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Opcja 2: Konwertuj emotikony na numeryczne encje HTML

Zastąp znaki emoji ich numerycznymi odpowiednikami encji HTML przed renderowaniem:


👋

😊

👋

😊
HTML

Opcja 1 unika wielokrotnych wyszukiwań encji, gdy szablon zawiera wiele znaków emoji.

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
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 20,088,359 | Wersja: 2026.7 właśnie wydany
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.