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

Curtis Chau
Curtis Chau
Updated: 10 czerwca 2026

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");

Opcja 2: Konwertuj emotikony na numeryczne encje HTML

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

<!-- Instead of 👋 use: -->
&#128075;

<!-- Instead of 😊 use: -->
&#128522;
HTML

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

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.

Czytaj więcej

Gotowy, aby rozpocząć?

Nuget Downloads 21,739,885Wersja:2026.10właśnie wydany