IronPDF C#でPDFにフォントを設定する
IronPDF を使用すると、C# 開発者は HTML からカスタム Web フォントとアイコン フォントを使用して PDF を作成できます。 Google Fonts などの外部フォント サービスと、CSS @font-faceルールによるローカル フォント ファイルの両方をサポートし、生成されるすべての PDF で一貫した書体を実現します。
ウェブフォントは、ウェブサイトでの使用を目的に設計された特殊なフォントです。 これらのフォントはウェブサーバーにホストされ、ウェブブラウザによってダウンロードされ、ユーザーのローカルフォントの可用性に関わらず、一貫した視覚的に魅力的なテキストのレンダリングをウェブサイト上で保証します。 さらに、シンボルやグリフを使用するアイコンフォントは、スケーラブルでカスタマイズ可能なアイコンを作成し、CSS操作で一貫した視覚的ユーザーインターフェイスを維持するためにウェブデザインでしばしば使用されます。 IronPDF のフォント管理機能を使用すると、開発者はこれらのフォントを PDF 生成ワークフローに簡単に統合できます。
CSSにはウェブフォントが含まれており、ウェブサイトがアクセスされたときにダウンロードするためのフォントファイルを指定できます。 IronPdfはフォントの読み込みとHTMLからPDFへのレンダリングをサポートしており、特定のブランディングやタイポグラフィの標準を必要とするドキュメントの作成に理想的です。 国際的なコンテンツを扱う開発者のために、IronPDFはUTF-8と国際言語サポートも提供しています。
クイックスタート: PDF 生成における WebFonts の使用
IronPDFのC#ライブラリを使ってPDFにウェブフォントやアイコンフォントを組み込んでください。 このガイドでは、HTMLコンテンツをカスタムフォントでレンダリングし、一貫性のある視覚的に魅力的なPDFを作成する方法を紹介します。 単にHTMLをIronPDFでレンダリングし、スタイルされたドキュメントを数秒で保存します。 始める前に、あなたのプロジェクトにIronPDFがインストールされていることを確認してください。
今すぐ NuGet で PDF を作成してみましょう:
NuGet パッケージ マネージャーを使用して IronPDF をインストールします
このコード スニペットをコピーして実行します。
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");実際の環境でテストするためにデプロイする
最小限のワークフロー(5ステップ)
- PDFにフォントを設定するためのC#ライブラリIronPDFをダウンロードする。
- HTML を使用して外部ソースからフォントをインポートまたは要求する
- 適切なフォント読み込みを確実にするためにレンダリングプロセスを遅らせる
- 通常通りHTMLをPDFにレンダリングする
- CSSスタイリングで@font-faceルールを使用してフォントファイルをインポート
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.csusing 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");フォント、JavaScript、HTML要素、ネットワークアイドルなど、その他のWaitForオプションについては、'WaitFor' Class Documentation](/how-to/waitfor/) を参照してください。画面サイズに応じてフォントを適応させるレスポンシブ・デザインについては、PDFレンダリングのためのレスポンシブCSSに関するガイド](/how-to/html-to-pdf-responsive-css/)を確認してください。
なぜフォントの読み込み時間が重要なのですか
フォントが正しく読み込まれないと、テキストのない空白ページになることがあります。 WaitFor.AllFontsLoadedメソッドを使用して、すべてのフォントが読み込まれるまで待機し、それに最大待機時間を割り当てることができます。 デフォルトの最大待機時間は500msです。 このタイミングを考慮することは、複雑なWebアプリケーションを扱う場合や、WebGLコンテンツをPDFにレンダリングする場合に特に重要です。
フォントの読み込み遅延は、ネットワーク速度、フォントファイルのサイズ、サーバーの応答時間など、いくつかの要因によって異なります。複数のカスタムフォントやアイコンライブラリを使用する場合は、すべてのタイポグラフィが正しくレンダリングされるように、待ち時間を長くすることをお勧めします。 これは、フォントの欠落が可読性とブランドの一貫性に影響を与える可能性がある専門的な文書では特に重要です。
どのフォントサービスがサポートされていますか?
IronPDFは、WebFonts(Google FontsやAdobeのウェブフォントAPIなど)や、BootstrapやFontAwesomeが使用するアイコンフォントをサポートしています。 さらに、IronPDFは以下をサポートします:
- Google フォント(カタログ全体)
- Adobeフォント(Typekit)
- Font Awesomeアイコン(全バージョン)
- Bootstrapアイコン
- マテリアルデザインのアイコン
- CSS
@importタグまたはlinkタグによるカスタムWebフォントサービス - さまざまな形式のセルフホストフォントファイル(
TTF、OTF、WOFF、WOFF2)。
フォントが正しく読み込まれない場合はどうなりますか?
フォントは正しく読み込むためにレンダリングに遅延が必要なことがあります。 フォントが正しく読み込まれないと、テキストのない空白ページになることがあります。 このような場合、ブラウザは通常、システムのデフォルトフォントに戻るため、文書の視覚的一貫性が損なわれる可能性があります。 IronPdfはフォントの読み込み失敗を処理するためのいくつかのメカニズムを提供します:
1.フォールバックフォントチェーン:CSS の font-family 宣言で複数のフォントを定義します。 2.待ち時間の延長: 接続速度が遅い場合、AllFontsLoadedのタイムアウトを増やします。 3.ローカルフォントの埋め込み:@font-faceをbase64エンコードされたフォントと一緒に使用することで、可用性を保証します。 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.csusing 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");どのフォント ファイル形式を使用できますか?
既存のフォントファイルを使うには、CSSスタイリングで@font-faceルールを適用します。 また、@font-faceルールとbase64エンコードされたwoffファイルの埋め込みを組み合わせて使用しても機能します。 IronPDFは以下のフォントファイル形式をサポートしています:
- TTF(TrueTypeフォント):広くサポートされており、スクリーンと印刷の両方に最適です。
- OTF(OpenTypeフォント):プロフェッショナルな文書に適した高度な組版機能。
- WOFF (Web Open Font Format):ウェブ用に最適化された圧縮フォーマット
- WOFF2:WOFFよりも圧縮率が向上し、ファイルサイズが小さくなりました。
- EOT(埋め込み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 の役割
- アプリサービスプレミアム層(
P1v2、P2v2、P3v2) - アプリサービス分離ティア
限られたフォントサポート:。
- App Service Basic tier (
B1,B2,B3) - Webフォントのみ - App Service Standard tier (
S1,S2,S3) - いくつかのSVGフォントの制限があります。
カスタムフォントのサポートはありません:。
- アプリサービス無料層(
F1) - アプリサービス共有層 (<コード>D1</コード>)
なぜ Azure の下位層にはフォント制限があるのですか
Azure ホスティング プラットフォームは、サンドボックスの制限とリソースの制限により、下位の共有ウェブ アプリ層で SVG フォントを読み込むサーバーをサポートしていません。 下位の階層では、カスタムフォントのレンダリングに必要な特定のシステムレベルの操作ができないように、厳格なセキュリティ境界が実装されています。 これらの制限は、Azureがマルチテナントの分離を維持し、共有環境でのリソースの乱用を防ぐのに役立ちます。
このような制限を回避するには、次のことを検討してください:
1.CSSにbase64エンコードされた文字列としてフォントを埋め込む 2.CDNからのウェブフォントのみを使用 3.サポートされている環境でのPDFのプリレンダリング 4.フォントをフルサポートする上位Azureティアへのアップグレード
よくある質問
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ファイルにウェブフォントを直接埋め込み、閲覧者のシステムにインストールされているフォントに関係なく、カスタム組版が一貫して表示されるようにします。このため、配布されたドキュメントにおけるブランドの一貫性を維持するのに理想的です。






