IRONSOFTWAREHOME

Set Fonts in PDFs with IronPDF C#

Curtis Chau
Curtis Chau
Updated: 2026年6月1日

IronPDF允許C#開發者從HTML建立具有自定義Web字體和圖標字體的PDF。 它支持外部字體服務(如Google字體)和通過CSS @font-face規則的本地字體文件,確保所有生成的PDF中一致的排版。

Webfont是一種專門為網站設計的字體。 這些字體託管在網頁伺服器上,由瀏覽器下載,以確保網站上文字渲染的一致性和視覺吸引力,無論使用者的本地字體是否可用。 此外,使用符號和字形的圖標字體通常用於網頁設計,以建立可縮放、可自定義的圖標,並通過CSS操作維持視覺一致的使用者介面。 通過IronPDF的字體管理功能,開發者可以輕鬆地將這些字體整合到他們的PDF生成工作流程中。

CSS包含Web字體,使您能夠在存取網站時指定要下載的字體文件。 IronPDF支持從HTML載入字體並呈現在PDF中,這使其對於要求特定品牌或排版標準的文件建立非常理想。 對於處理國際化內容的開發者,IronPDF還提供UTF-8和國際語言支持

快速入門:在PDF生成中使用WebFonts

使用IronPDF的C#程式庫將Web和圖標字體納入您的PDF中。 本指南展示如何使用自定義字體呈現HTML內容,確保PDF的一致性和視覺吸引力。 只需使用IronPDF呈現HTML並在幾秒鐘內保存您設計好的文件。 開始之前,請確保您已在專案中安裝IronPDF

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 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");
    C#
  3. 3部署以在您的實時環境中測試

    今天就開始在您的專案中使用IronPDF,透過免費試用
    arrow pointer

我如何在PDF中使用WebFonts和圖標?

IronPDF支持WebFonts(如Google字體和Adobe Web字體API)以及用於Bootstrap和FontAwesome的圖標字體。 此支持使得IronPDF適用於需要複雜排版的專案,從簡單的文件到具有品牌元素的複雜報告。

字體通常需要延遲呈現以正確載入。 當字體未正確載入時,可能會導致頁面空白沒有任何文字。 您可以使用WaitFor.AllFontsLoaded方法設定最大等待時間來確保所有字體載入。 預設的最大等待時間是500ms。 對於涉及JavaScript或動態內容的更複雜場景,請查看我們的HTML到PDF教程,其中包含高級呈現技術。

這是一個小範例,展示如何在專案中使用名為Lobster的WebFont

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");

探索更多WaitFor選項,例如字體、JavaScript、HTML元素和網路閒置的'類文件'。 對於根據螢幕大小調整字體的響應式設計,請查看我們關於PDF渲染的響應式CSS指南

為什麼字體載入時間重要?

當字體未正確載入時,可能會導致頁面空白沒有任何文字。 您可以使用WaitFor.AllFontsLoaded方法設定最大等待時間來確保所有字體載入。 預設的最大等待時間是500ms。 當處理複雜的Web應用或呈現WebGL內容到PDF時,這種計時考量尤為重要,因為多個資源需要按順序載入。

字體載入延遲可能會因網路速度、字體文件大小和伺服器響應時間等多種因素而異。當處理多個自定義字體或圖標庫時,建議增加等待時間以確保所有排版正確呈現。 這對於專業文件尤為重要,因為缺失的字體可能影響可讀性和品牌一致性。

支持哪些字體服務?

IronPDF支持WebFonts(如Google字體和Adobe Web字體API)以及用於Bootstrap和FontAwesome的圖標字體。 此外,IronPDF支持:

  • Google字體(整個目錄)
  • Adobe字體(Typekit)
  • Font Awesome圖標(所有版本)
  • Bootstrap圖標
  • Material Design圖標
  • 通過CSS link標籤的自定義Web字體服務
  • 各種格式的自託管字體文件(WOFF2

如果字體未正確載入會發生什麼?

字體通常需要延遲呈現以正確載入。 當字體未正確載入時,可能會導致頁面空白沒有任何文字。 在這種情況下,瀏覽器通常會回退到系統預設字體,這可能會破壞文件的視覺一致性。 IronPDF提供多種機制來處理字體載入失敗:

  1. 後備字體鏈:在您的CSS font-family聲明中定義多個字體
  2. 擴展等待時間:為較慢的連接增加AllFontsLoaded超時
  3. 本地字體嵌入:使用@font-face載入base64編碼的字體以保證可用性
  4. 字體預載入:使用HTML預載入標籤優先載入字體

我如何直接導入字體文件?

要使用現有字體文件,請在CSS樣式中應用@font-face規則。 當使用@font-face規則與嵌入base64編碼的woff文件相結合時,它也能工作。 在以下範例中,我將使用Pixelify Sans字體

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");

我可以使用哪些字體文件格式?

要使用現有字體文件,請在CSS樣式中應用@font-face規則。 當使用@font-face規則與嵌入base64編碼的woff文件相結合時,它也能工作。 IronPDF支持以下字體文件格式:

  • TTF(TrueType Font):廣泛支持,適合螢幕和印刷
  • OTF(OpenType Font):具有高級排版功能,適合專業文件
  • WOFF(Web Open Font Format):適合網頁使用的壓縮格式
  • WOFF2:比WOFF壓縮更好,文件大小更小
  • EOT(Embedded OpenType):舊版格式,適用於舊瀏覽器
  • SVG字體:基於向量的字體(在某些平台上有限制)

我什麼時候應該使用本地字體與Web字體?

要使用現有字體文件,請在CSS樣式中應用@font-face規則。 本地和Web字體之間的選擇取決於多個因素:

使用本地字體的情境:

  • 離線工作或受限的網路環境
  • 確保字體可用性
  • 處理專有或授權字體
  • 優化以避免網路延遲的快速呈現
  • 建立具有嚴格合規性要求的文件

使用Web字體的情境:

  • 使用大型字體庫如Google字體
  • 需要自動更新字體文件
  • 將應用程式包的大小最小化
  • 處理經常變化的排版需求
  • 構建依賴於互聯網連接的應用程式

我最喜歡的程式庫是IronPDF。它允許快速高效地操作PDF文件。它還有許多有價值的功能,例如導出到PDF/A格式和數位簽署PDF文件。

Milan Jovanovic

Microsoft MVP

查看案例研究

IronOCR意味著我們每年可以從手動處理中節省$40,000,同時提高生產力,釋放資源以進行高影響的任務。我會強烈推薦它。

Brent Matzelle

首席技術官,OPYN

查看案例研究

IronSuite在我們的運營中扮演著至關重要的角色。這些工具增加了包括建立平面圖和改善庫存管理在內的業務效率。

David Jones

首席軟體工程師,Agorus Build

查看案例研究

使用Azure時有什麼限制?

Azure託管平台不支持較低的共享Web應用層中的伺服器載入SVG字體。 然而,Azure的VPS和Web Role並未以相同方式沙盒化,並支持Web字體渲染。 有關詳細的Azure部署指導,請參閱我們的Azure部署指南,其涵蓋所有層級特定的限制和解決方案。

哪些Azure層級支持字體渲染?

然而,Azure的VPS和Web Role並未以相同方式沙盒化,並支持Web字體渲染。 以下是Azure層級支持的細分:

完全字體支持:

  • Azure虛擬機器(所有大小)
  • Azure Web Roles
  • App Service Premium層(P3v2
  • App Service Isolated層

有限的字體支持:

  • App Service Basic層(B3)-僅支持Web字體
  • App Service Standard層(S3)-某些SVG字體限制

不支持自定義字體:

  • App Service Free層(F1
  • App Service Shared層(D1

為什麼較低的Azure層級有字體限制?

Azure託管平台不支持較低的共享Web應用層中的伺服器載入SVG字體,因為沙盒限制和資源限制。 較低層實施嚴格的安全邊界,防止自定義字體渲染所需的某些系統級操作。 這些限制有助於Azure保持多租戶隔離,防止共享環境中的資源濫用。

要繞過這些限制,請考慮:

  1. 在CSS中嵌入base64編碼的字體
  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。只需將Google Fonts連結包含在您的HTML頭部區域,並在CSS中應用字體系列。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規則,指定字體文件路徑,然後將字體系列應用到您的HTML元素。IronPDF在渲染期間會將這些自訂字體直接嵌入PDF中。

哪些字體格式支援PDF生成?

IronPDF支援標準網頁字體格式,包括在CSS @font-face規則或外部字體服務中使用的WOFF、WOFF2、TTF和OTF文件。這確保了今天大多數現代網頁字體與圖示字體的相容性。

如何在不同系統間保證排版一致性?

IronPDF將網頁字體直接嵌入生成的PDF文件中,確保您的自訂排版無論在查看者系統上是否安裝字體都能保持一致。這使它成為分發文件中保持品牌一致性的理想選擇。

Why is font loading time important in PDF generation with IronPDF?

Font loading time is crucial because if a font is not loaded properly before PDF generation, it may result in blank pages or improper rendering. IronPDF uses the `WaitFor.AllFontsLoaded` method to manage this, ensuring that all fonts are loaded at specified wait times.

Which online font services does IronPDF support?

IronPDF supports a wide range of online font services, including Google Fonts, Adobe Fonts, Font Awesome, Bootstrap Icons, and Material Design Icons, among others, providing vast typography options for PDF customization.

How does IronPDF handle font rendering on Azure?

IronPDF handles font rendering on Azure by supporting font rendering in its Virtual Machines, Web Roles, and Premium and Isolated tiers. However, lower Azure tiers like Free and Shared have limitations due to sandboxing restrictions.

What are the limitations of using SVG fonts with IronPDF on Azure?

The Azure hosting platform does not support SVG fonts in its lower shared web app tiers due to sandboxing restrictions. To overcome these limitations, fonts can be embedded as base64-encoded strings, or one might upgrade to a higher Azure tier that provides full font support.

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

準備開始了嗎?

Nuget Downloads 21,062,892版本:2026.9剛剛發布

立即獲取免費

立即獲取 30天試用金鑰

bullet_checked無需信用卡或註冊帳號
bullet_test在生產
環境中進行測試,且不顯示浮水印
bullet_calendar30 天全
功能產品
bullet_support試用期間提供 24/5 技術
支援
立即獲取您的免費30天試用密鑰
不需要信用卡或建立賬戶
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999

有問題嗎?聯絡我們的開發團隊。

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999