IronPDF使用RenderHtmlAsPdf()時無法呈現表情符號
This article was translated from English: Does it need improvement?
Translated
View the article in English
使用RenderHtmlAsPdf()呈現包含表情符號字元的HTML時,生成的PDF不會顯示表情符號,即使這些符號在瀏覽器列印預覽中正確顯示且HTML正確編碼為UTF-8。
基於字串的RenderHtmlAsPdf()方法在Unicode處理上有限制,導致表情符號字元在輸出PDF中消失。 基於檔案的呈現在更接近真實瀏覽器的環境中處理內容,這改善了Unicode和表情符號的處理。
解決方案
選項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")
$vbLabelText
$csharpLabel
選項2:將表情符號轉換為數字HTML實體
在呈現之前,用數字HTML實體替換表情符號字元:
👋
😊
👋
😊
HTML
選項1避免了當模板包含許多表情符號字元時重複的實體查詢。
準備開始了嗎?
Nuget 下載 20,088,359 | 版本: 2026.7 剛剛發布

