Emotikony nie renderują się w IronPDF przy użyciu RenderHtmlAsPdf()
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");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")Opcja 2: Konwertuj emotikony na numeryczne encje HTML
Zastąp znaki emoji ich numerycznymi odpowiednikami encji HTML przed renderowaniem:
<!-- Instead of 👋 use: -->
👋
<!-- Instead of 😊 use: -->
😊
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.