Linux DockerコンテナにおけるIronPDFでのカスタムフォントの埋め込み
WindowsでPDFを生成する際はカスタムフォントは正しく埋め込まれますが、Linux Dockerコンテナ内では埋め込みに失敗します。 意図されたフォントの代わりに、レンダラーはフォールバックとしてDejaVu Sansを使用します。
LinuxシステムおよびDockerコンテナ内では、フォントは明示的にインストールされるか参照される必要があります。 Chromeレンダリングエンジンにフォントが利用できない場合、IronPDFはシステムのデフォルトフォールバッフフォントを代替として使用し、視覚的な違いと埋め込み失敗を引き起こします。
解決策
オプション1:Arialや類似のフォントのためにMicrosoftコアフォントをインストール
Dockerfileに追加します:
RUN apt update && apt install -y ttf-mscorefonts-installer
オプション2:@font-faceを介してカスタムフォントを埋め込む
PoppinsやRobotoなどのシステムフォント以外のフォントの場合、Dockerイメージ内にバンドルされた@font-faceを使用して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>
<!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>
オプション3:印刷CSSメディアタイプを使用
@font-face宣言を含む印刷に特化したスタイルを適用します:
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
完全なLinux Docker設定については、IronPDF Dockerガイドをご覧ください。

