Emojis no se renderizan en IronPDF usando RenderHtmlAsPdf()
Al renderizar HTML que contiene caracteres emoji usando RenderHtmlAsPdf(), el PDF resultante no muestra los caracteres emoji aunque aparecen correctamente en las vistas previas de impresión del navegador y el HTML está codificado correctamente como UTF-8.
El método basado en cadenas RenderHtmlAsPdf() tiene limitaciones en el manejo de Unicode que hacen que los caracteres emoji se omitan en los PDF generados. Los procesos de renderizado basados en archivos procesan el contenido en un contexto más cercano a un navegador real, lo que mejora el manejo de Unicode y emojis.
Solución
Option 1: Use RenderHtmlFileAsPdf()
Escribe el contenido HTML en un archivo temporal y renderiza desde la ruta del archivo en lugar de desde la cadena:
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")
Opción 2: Convierte emojis a entidades HTML numéricas
Reemplaza los caracteres emoji con sus equivalentes de entidad HTML numérica antes de renderizar:
👋
😊
👋
😊
La Opción 1 evita búsquedas repetidas de entidad cuando la plantilla contiene muchos caracteres emoji.

