IronPDF C# で PDF 編集・PDF 変換時にフォントを設定する方法
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がインストールされていることを確認してください。
-
IronPDF をNuGetパッケージマネージャでインストール
PM > Install-Package 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"); -
実際の環境でテストするためにデプロイする
今日プロジェクトで IronPDF を使い始めましょう無料トライアル
最小限のワークフロー(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.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")
フォント、 JavaScript、HTML 要素、ネットワーク アイドルなどのその他のオプションについては、"WaitFor クラスのドキュメント](/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 フォント サービス - さまざまな形式の自己ホストフォント ファイル (
WOFF2)
フォントが正しく読み込まれない場合はどうなりますか?
フォントは正しく読み込むためにレンダリングに遅延が必要なことがあります。 フォントが正しく読み込まれないと、テキストのない空白ページになることがあります。 このような場合、ブラウザは通常、システムのデフォルトフォントに戻るため、文書の視覚的一貫性が損なわれる可能性があります。 IronPdfはフォントの読み込み失敗を処理するためのいくつかのメカニズムを提供します:
1.フォールバックフォントチェーン: CSS 宣言で複数のフォントを定義します。
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")
どのフォント ファイル形式を使用できますか?
既存のフォントファイルを使うには、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 の役割
- App Service Premium レベル (
P3v2) - アプリサービス分離ティア
限られたフォントサポート:。
- App Service Basic 層 (
B3) - Web フォントのみ - App Service Standard レベル (
S3) - 一部の SVG フォント制限
カスタムフォントのサポートはありません:。
- App Service 無料レベル (
F1) - App Service 共有層 (
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ファイルにウェブフォントを直接埋め込み、閲覧者のシステムにインストールされているフォントに関係なく、カスタム組版が一貫して表示されるようにします。このため、配布されたドキュメントにおけるブランドの一貫性を維持するのに理想的です。

