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避免了當模板包含許多表情符號字元時重複的實體查詢。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備開始了嗎?
Nuget 下載 20,088,359 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想快速獲得證明嗎? PM > Install-Package IronPdf
執行範例 看您的HTML變成PDF。