在Linux Docker容器中嵌入自訂字型到IronPDF中

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

在Windows上生成PDF時,自訂字型能正確嵌入,但在Linux Docker容器中卻無法嵌入。 渲染器未使用預定的字型,而是使用DejaVu Sans作為後備字型。

在Linux系統和Docker容器中,字型必須被明確地安裝或引用。 如果Chrome渲染引擎無法使用某個字型,IronPDF會改用系統預設的後備字型,導致視覺差異和嵌入失敗。

解決方案

選項1:安裝Microsoft核心字型,例如Arial及相似字型

新增到您的Dockerfile中:

RUN apt update && apt install -y ttf-mscorefonts-installer

選項2:通過@font-face嵌入自訂字型

對於非系統字型,如Poppins或Roboto,在HTML中使用.ttf文件的路徑:

<!DOCTYPE html>
<html>
<head>
<style>
@font-face {
    font-family: 'Poppins';
    src: url('fonts/Poppins-Regular.ttf');
}
p {
    font-family: 'Poppins';
    font-size: 16px;
}
</style>
</head>
<body>
<p>Custom font text</p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<style>
@font-face {
    font-family: 'Poppins';
    src: url('fonts/Poppins-Regular.ttf');
}
p {
    font-family: 'Poppins';
    font-size: 16px;
}
</style>
</head>
<body>
<p>Custom font text</p>
</body>
</html>
HTML

選項3:使用Print CSS媒體型別

設置@font-face聲明:

renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
$vbLabelText   $csharpLabel

完整的Linux Docker設定請參見IronPDF Docker指南

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。