Emojis no se renderizan en IronPDF usando RenderHtmlAsPdf()

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

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")
$vbLabelText   $csharpLabel

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:


👋

😊

👋

😊
HTML

La Opción 1 evita búsquedas repetidas de entidad cuando la plantilla contiene muchos caracteres emoji.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 20,088,359 | Versión: 2026.7 recién publicada
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronPdf
ejecutar una muestra Mira cómo tu HTML se convierte en PDF.