Emojis werden in IronPDF nicht dargestellt, wenn RenderHtmlAsPdf() verwendet wird
Beim Rendern von HTML, das Emoji-Zeichen mit RenderHtmlAsPdf() enthält, zeigt das resultierende PDF die Emoji-Zeichen nicht an, obwohl sie in der Druckvorschau des Browsers korrekt angezeigt werden und das HTML korrekt als UTF-8 kodiert ist.
Die stringbasierte Methode RenderHtmlAsPdf() hat Einschränkungen im Umgang mit Unicode, die dazu führen, dass Emoji-Zeichen in den ausgegebenen PDFs fehlen. Dateibasierte Rendering-Prozesse verarbeiten Inhalte in einem Kontext, der näher an einem echten Browser liegt, was die Unicode- und Emoji-Behandlung verbessert.
Lösung
Option 1: Use RenderHtmlFileAsPdf()
Schreiben Sie den HTML-Inhalt in eine temporäre Datei und rendern Sie vom Dateiweg anstelle der Zeichenkette:
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")
Option 2: Umwandlung von Emojis in numerische HTML-Entitäten
Ersetzen Sie Emoji-Zeichen durch ihre numerischen HTML-Entität-Äquivalente vor dem Rendern:
👋
😊
👋
😊
Option 1 vermeidet wiederholte Entitätssuchen, wenn die Vorlage viele Emoji-Zeichen enthält.

