IronPDF에서 RenderHtmlAsPdf()를 사용할 때 이모지가 렌더링되지 않음
이모지 문자가 포함된 HTML을 RenderHtmlAsPdf()을 사용하여 렌더링할 때 브라우저 인쇄 미리 보기에서는 올바르게 표시되지만, 결과 PDF에서 이모지 문자가 나타나지 않습니다. HTML은 올바르게 UTF-8로 인코딩되어 있습니다.
문자열 기반 RenderHtmlAsPdf() 메서드는 출력 PDF에서 이모지 문자가 누락되게 하는 유니코드 처리 제한이 있습니다. "파일 기반 렌더링은 실제 브라우저에 더 가까운 컨텍스트에서 콘텐츠를 처리하여 유니코드 및 이모지 처리를 개선합니다."
해결책
옵션 1: RenderHtmlFileAsPdf() 사용
"HTML 콘텐츠를 임시 파일로 작성하고 파일 경로에서 렌더링하십시오."
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")
옵션 2: 이모지를 숫자 HTML 엔티티로 변환
"렌더링 전에 이모지 문자를 숫자 HTML 엔티티의 동등한 것으로 대체하십시오."
👋
😊
👋
😊
"옵션 1은 템플릿에 많은 이모지 문자가 포함되어 있을 때 반복된 엔티티 조회를 방지합니다."

