PDF のフォントを設定する方法 C#

Set Fonts in PDFs with IronPDF C

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

IronPDFはC#開発者がHTMLからカスタムウェブフォントとアイコンフォントを使ってPDFを作成することを可能にします。 Google Fonts などの外部フォントサービスと、CSS @font-face ルールによるローカルフォントファイルの両方をサポートしており、生成されるすべての PDF において一貫したタイポグラフィを保証します。

ウェブフォントは、ウェブサイトでの使用を目的に設計された特殊なフォントです。 これらのフォントはウェブサーバーにホストされ、ウェブブラウザによってダウンロードされ、ユーザーのローカルフォントの可用性に関わらず、一貫した視覚的に魅力的なテキストのレンダリングをウェブサイト上で保証します。 さらに、シンボルやグリフを使用するアイコンフォントは、スケーラブルでカスタマイズ可能なアイコンを作成し、CSS操作で一貫した視覚的ユーザーインターフェイスを維持するためにウェブデザインでしばしば使用されます。 IronPDFのフォント管理機能により、開発者はこれらのフォントをPDF生成ワークフローに簡単に統合することができます。

CSSにはウェブフォントが含まれており、ウェブサイトがアクセスされたときにダウンロードするためのフォントファイルを指定できます。 IronPDFはフォントの読み込みとHTMLからPDFへのレンダリングをサポートしており、特定のブランディングやタイポグラフィの標準を必要とするドキュメントの作成に理想的です。 国際的なコンテンツを扱う開発者のために、IronPDFはUTF-8と国際言語サポートも提供しています。

クイックスタート:PDF生成でWebフォントを使う

IronPDFのC#ライブラリを使ってPDFにウェブフォントやアイコンフォントを組み込んでください。 このガイドでは、HTMLコンテンツをカスタムフォントでレンダリングし、一貫性のある視覚的に魅力的なPDFを作成する方法を紹介します。 単にHTMLをIronPDFでレンダリングし、スタイルされたドキュメントを数秒で保存します。 始める前に、あなたのプロジェクトにIronPDFがインストールされていることを確認してください。

  1. IronPDF をNuGetパッケージマネージャでインストール

    PM > Install-Package IronPdf
  2. このコード スニペットをコピーして実行します。

    new IronPdf.ChromePdfRenderer { RenderingOptions = { WaitFor = IronPdf.Rendering.WaitFor.AllFontsLoaded(2000) } }
        .RenderHtmlAsPdf("<link href=\"https://fonts.googleapis.com/css?family=Lobster\" rel=\"stylesheet\">" +
                         "<link href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css\" rel=\"stylesheet\">" +
                         "<p style=\"font-family:'Lobster', serif; font-size:30px;\">Hello Google Font</p>" +
                         "<i class=\"fa fa-coffee\" style=\"font-size:40px; color:#b00;\"></i>")
        .SaveAs("webfonts-icons.pdf");
  3. 実際の環境でテストするためにデプロイする

    今日プロジェクトで IronPDF を使い始めましょう無料トライアル

    arrow pointer

PDFでWebフォントとアイコンを使用するにはどうすればよいですか?

IronPDFは、WebFonts(Google FontsやAdobeのウェブフォントAPIなど)や、BootstrapやFontAwesomeが使用するアイコンフォントをサポートしています。 このサポートにより、IronPDFはシンプルな文書からブランド要素を含む複雑なレポートまで、洗練されたタイポグラフィを必要とするプロジェクトに適しています。

フォントは正しく読み込むためにレンダリングに遅延が必要なことがあります。 フォントが正しく読み込まれないと、テキストのない空白ページになることがあります。 WaitFor.AllFontsLoaded メソッドを使用すると、最大待機時間を指定することで、すべてのフォントが読み込まれるまで待機させることができます。 デフォルトの最大待機時間は 500ms です。 JavaScriptや動的コンテンツを含む、より複雑なシナリオについては、高度なレンダリングテクニックをカバーするHTML to PDFチュートリアルをご覧ください。

あなたのプロジェクトでLobsterという名前のウェブフォントを使う小さな例

:path=/static-assets/pdf/content-code-examples/how-to/webfonts-webicons-render-webfont.cs
using IronPdf;

// HTML contains webfont
var html = @"<link href=""https://fonts.googleapis.com/css?family=Lobster"" rel=""stylesheet"">
<p style=""font-family: 'Lobster', serif; font-size:30px;"" > Hello Google Fonts</p>";

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Wait for font to load
renderer.RenderingOptions.WaitFor.AllFontsLoaded(2000);

// Render HTML to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

// Export the PDF
pdf.SaveAs("font-test.pdf");
Imports IronPdf

' HTML contains webfont
Private html = "<link href=""https://fonts.googleapis.com/css?family=Lobster"" rel=""stylesheet"">
<p style=""font-family: 'Lobster', serif; font-size:30px;"" > Hello Google Fonts</p>"

Private renderer As New ChromePdfRenderer()

' Wait for font to load
renderer.RenderingOptions.WaitFor.AllFontsLoaded(2000)

' Render HTML to PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

' Export the PDF
pdf.SaveAs("font-test.pdf")
$vbLabelText   $csharpLabel

"Class Documentation"で、フォント、JavaScript、HTML要素、ネットワークアイドルなど、WaitForのその他のオプションについて詳しくご覧ください。 画面サイズに応じてフォントを調整するレスポンシブデザインのために、PDFレンダリングのためのレスポンシブCSSガイドを確認してください。

なぜフォントの読み込み時間が重要なのですか

フォントが正しく読み込まれないと、テキストのない空白ページになることがあります。 WaitFor.AllFontsLoaded メソッドを使用すると、最大待機時間を指定することで、すべてのフォントが読み込まれるまで待機させることができます。 デフォルトの最大待機時間は 500ms です。 このタイミングを考慮することは、複雑なWebアプリケーションを扱う場合や、WebGLコンテンツをPDFにレンダリングする場合に特に重要です。

フォントの読み込み遅延は、ネットワーク速度、フォントファイルのサイズ、サーバーの応答時間など、いくつかの要因によって異なります。複数のカスタムフォントやアイコンライブラリを使用する場合は、すべてのタイポグラフィが正しくレンダリングされるように、待ち時間を長くすることをお勧めします。 これは、フォントの欠落が可読性とブランドの一貫性に影響を与える可能性がある専門的な文書では特に重要です。

どのフォントサービスがサポートされていますか?

IronPDFは、WebFonts(Google FontsやAdobeのウェブフォントAPIなど)や、BootstrapやFontAwesomeが使用するアイコンフォントをサポートしています。 さらに、IronPDFは以下をサポートします:

  • Google フォント(カタログ全体)
  • Adobeフォント(Typekit)
  • Font Awesomeアイコン(全バージョン)
  • Bootstrapアイコン
  • マテリアルデザインのアイコン
  • CSSのlinkタグを使用したカスタムWebフォントサービス
  • 各種形式のセルフホスト型フォントファイル (TTF, OTF, WOFF, WOFF2)

フォントが正しく読み込まれない場合はどうなりますか?

フォントは正しく読み込むためにレンダリングに遅延が必要なことがあります。 フォントが正しく読み込まれないと、テキストのない空白ページになることがあります。 このような場合、ブラウザは通常、システムのデフォルトフォントに戻るため、文書の視覚的一貫性が損なわれる可能性があります。 IronPDFはフォントの読み込み失敗を処理するためのいくつかのメカニズムを提供します:

  1. フォールバックフォントチェーン: CSSのfont-family宣言で複数のフォントを定義します
  2. 待機時間の延長:接続速度が遅い場合のために、AllFontsLoadedのタイムアウト時間を延長する
  3. ローカルフォントの埋め込み:確実な利用を保証するため、Base64エンコードされたフォントには @font-face を使用してください 4.フォントのプリロード:フォントの読み込みを優先するためにHTMLのプリロードタグを使用してください。

フォント ファイルを直接インポートするにはどうすればよいですか?

既存のフォントファイルを使用するには、CSS スタイルで @font-face ルールを適用してください。 また、@font-faceルールとBase64エンコードされたWOFFファイルの埋め込みを組み合わせた場合にも機能します。 以下の例では、Pixelify Sans Fontを使用します。

:path=/static-assets/pdf/content-code-examples/how-to/webfonts-webicons-custom-font.cs
using IronPdf;

// Import custom font
string html = @"<!DOCTYPE html>
<html>
<head>
<style>
@font-face {font-family: 'Pixelify';
src: url('fonts\PixelifySans-VariableFont_wght.ttf');
}
p {
    font-family: 'Pixelify';
    font-size: 70px;
}
</style>
</head>
<body>
<p>Custom font</p>
</body>
</html>";

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Render HTML to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

// Export the PDF
pdf.SaveAs("customFont.pdf");
Imports IronPdf

' Import custom font
Private html As String = "<!DOCTYPE html>
<html>
<head>
<style>
@font-face {font-family: 'Pixelify';
src: url('fonts\PixelifySans-VariableFont_wght.ttf');
}
p {
    font-family: 'Pixelify';
    font-size: 70px;
}
</style>
</head>
<body>
<p>Custom font</p>
</body>
</html>"

Private renderer As New ChromePdfRenderer()

' Render HTML to PDF
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

' Export the PDF
pdf.SaveAs("customFont.pdf")
$vbLabelText   $csharpLabel

どのフォント ファイル形式を使用できますか?

既存のフォントファイルを使用するには、CSS スタイルで @font-face ルールを適用してください。 また、@font-faceルールとBase64エンコードされたWOFFファイルの埋め込みを組み合わせた場合にも機能します。 IronPDFは以下のフォントファイル形式をサポートしています:

  • TTF (TrueType Font): ワイドにサポートされ、スクリーンと印刷の両方に最適です
  • OTF (OpenType Font): 高度なタイポグラフィ機能を備え、プロフェッショナルなドキュメントに適しています
  • WOFF (Web Open Font Format): Web使用に最適化された圧縮形式です
  • WOFF2: WOFFに比べて圧縮が改善され、ファイルサイズが小さくなっています
  • EOT (Embedded OpenType): 古いブラウザー用に設定されたレガシー形式です
  • SVGフォント:ベクターベースのフォント(プラットフォームによっては制限あり)

いつローカルフォントとウェブフォントを使い分ける必要がありますか?

既存のフォントファイルを使用するには、CSS スタイルで @font-face ルールを適用してください。 ローカルフォントとウェブフォントの選択は、いくつかの要因によって決まります:

以下の場合にローカルフォントを使用してください。

  • オフラインまたは制限されたネットワーク環境での作業
  • フォントの可用性が保証される必要がある場合
  • 専有またはライセンス付きフォントの取り扱い
  • ネットワーク遅延なしの高速レンダリングの最適化
  • 厳格なコンプライアンス要件を備えたドキュメントの作成

ウェブフォントを使用する場合:次のとおりです。

  • Google Fontsのような大きなフォントライブラリの使用
  • フォントファイルの自動更新が必要な場合
  • アプリケーションバンドルサイズの最小化
  • 頻繁に変わるタイポグラフィ要件と作業
  • インターネット接続に依存するアプリケーションの構築

Azureを使用する際の制限は何ですか?

Azureホスティングプラットフォームは、その下層の共有WebアプリケーションティアでSVGフォントの読み込みをサポートしていません。 しかし、AzureのVPSやWebロールは同じようにサンドボックス化されておらず、ウェブフォントのレンダリングをサポートしています。 Azure デプロイメントの詳細については、Azure デプロイメント ガイドを参照してください。

どの Azure Tiers がフォント レンダリングをサポートしていますか?

しかし、AzureのVPSやWebロールは同じようにサンドボックス化されておらず、ウェブフォントのレンダリングをサポートしています。 以下は、Azureの階層サポートの内訳です:

完全なフォントサポート:

  • Azure仮想マシン(すべてのサイズ)
  • Azure Webロール
  • App Service Premium プラン (P1v2, P2v2, P3v2)
  • App Service Isolatedティア

限られたフォントサポート:

  • App Service Basic ティア (B1, B2, B3) - Webフォントのみ
  • App Service Standard ティア (S1, S2, S3) - SVG フォントに関する一部の制限

カスタムフォントのサポートはありません:

  • App Service Free tier (F1)
  • App Service 共有プラン (D1)

なぜ Azure の下位層にはフォント制限があるのですか

Azure ホスティング プラットフォームは、サンドボックスの制限とリソースの制限により、下位の共有ウェブ アプリ層で SVG フォントを読み込むサーバーをサポートしていません。 下位の階層では、カスタムフォントのレンダリングに必要な特定のシステムレベルの操作ができないように、厳格なセキュリティ境界が実装されています。 これらの制限は、Azureがマルチテナントの分離を維持し、共有環境でのリソースの乱用を防ぐのに役立ちます。

このような制限を回避するには、次のことを検討してください:

  1. CSS内に基底64エンコードされた文字列としてフォントを埋め込む
  2. CDNからのWebフォントのみを使用する
  3. サポートされている環境でのPDFの事前レンダリング 4.フォントをフルサポートする上位Azureティアへのアップグレード

https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face

よくある質問

PDF文書でGoogle Fontsを使用するにはどうすればよいですか?

IronPDFはHTMLレンダリングを通してGoogle Fontsをサポートします。HTMLのheadセクションにGoogle Fontsのリンクを含み、CSSでfont-familyを適用するだけです。IronPDFはPDFを生成する際にこれらのフォントをダウンロードしてレンダリングし、カスタム組版が最終的なドキュメントに正しく表示されるようにします。

生成されたPDFにウェブフォントが正しく表示されないのはなぜですか?

ウェブフォントはレンダリングの前に読み込み時間を必要とすることがよくあります。IronPDFはRenderingOptionsでWaitFor.AllFontsLoaded()オプションを提供し、PDF生成前にフォントが完全にロードされるように遅延(ミリ秒単位)を設定することができます。これにより、フォントの欠落や誤ったレンダリングを防ぐことができます。

PDFにFontAwesomeのアイコンを使用できますか?

はい、IronPDFはFontAwesomeと他のアイコンフォントを完全にサポートしています。FontAwesomeのCSSをHTMLにインクルードし、適切なアイコンクラスを使用してください。IronPDFはこれらのアイコンフォントをベクターグラフィックとしてPDFにレンダリングし、スケーラビリティとビジュアルクオリティを維持します。

ローカルのフォントファイルを@font-faceで使用するにはどうすればよいですか?

IronPDFはローカルのフォントファイルを読み込むためのCSS @font-faceルールをサポートしています。CSSでフォントファイルのパスを指定して@font-faceルールを定義し、そのfont-familyをHTML要素に適用します。IronPDFはレンダリング時にこれらのカスタムフォントをPDFに直接埋め込みます。

PDF生成でサポートされているフォント形式は何ですか?

IronPDFはWOFF、WOFF2、TTF、OTFファイルを含む標準的なウェブフォントフォーマットをサポートしています。これにより、現在利用可能なほとんどのモダンウェブフォントやアイコンフォントとの互換性が保証されます。

異なるシステム間で一貫したタイポグラフィを確保するにはどうすればよいですか?

IronPDFは生成されたPDFファイルにウェブフォントを直接埋め込み、閲覧者のシステムにインストールされているフォントに関係なく、カスタム組版が一貫して表示されるようにします。このため、配布されたドキュメントにおけるブランドの一貫性を維持するのに理想的です。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 19,014,616 | バージョン: 2026.5 just released
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronPdf
サンプルを実行するHTML が PDF に変換されるのを確認します。