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

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

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

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:


👋

😊

👋

😊
HTML

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

Curtis Chau
Redator Técnico

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 ...

Leia mais
Pronto para começar?
Nuget Downloads 20,088,359 | Versão: 2026.7 recém-lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPdf
executar um exemplo Veja seu HTML se transformar em um PDF.