Emojis não estão sendo renderizados no IronPDF usando RenderHtmlAsPdf()

Curtis Chau
Curtis Chau
Updated: 10 de junho de 2026

Ao renderizar HTML que contém caracteres emoji usando RenderHtmlAsPdf(), o PDF resultante não exibe os caracteres emoji, mesmo que eles apareçam corretamente nas visualizações de impressão do navegador e o HTML esteja corretamente codificado como UTF-8.

O método baseado em string RenderHtmlAsPdf() tem limitações de manipulação de Unicode que fazem com que os caracteres emoji sejam omitidos dos PDFs de saída. A renderização baseada em arquivo processa o conteúdo em um contexto mais próximo de um navegador real, o que melhora o tratamento de Unicode e emojis.

Solução

Option 1: Use RenderHtmlFileAsPdf()

Escreva o conteúdo HTML para um arquivo temporário e renderize a partir do caminho do arquivo ao invés da string:

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

Opção 2: Converta emojis para entidades HTML numéricas

Substitua caracteres de emoji por seus equivalentes de entidade HTML numérica antes de renderizar:

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

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

A Opção 1 evita buscas repetidas de entidades quando o template contém muitos caracteres de emoji.

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

Leia mais

Pronto para começar?

Nuget Downloads 21,739,885Versão:2026.10recém-lançado