如何在 PDF 中設置字體

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

網頁字體(webfont)是為網站設計的專門字體。這些字體由網頁伺服器托管,並由網頁瀏覽器下載,以確保在網站上實現一致且視覺吸引力的文字渲染,無論使用者的本地字體資源如何。此外,圖示字體(icon fonts),使用符號和字形,經常在網頁設計中用於創建可調節大小、可自定義的圖示,並通過 CSS 操作保持視覺一致的用戶介面。

CSS 包含網頁字體,允許您在訪問網站時指定字體文件進行下載。IronPDF 支援從 HTML 加載字體並渲染到 PDF。

C# NuGet 程式庫用于 PDF

安裝與 NuGet

Install-Package IronPdf
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

C# NuGet 程式庫用于 PDF

安裝與 NuGet

Install-Package IronPdf
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

立即開始在您的專案中使用IronPDF,並享受免費試用。

第一步:
green arrow pointer

查看 IronPDFNuget 快速安裝和部署。已被下載超過800萬次,它正用C#改變PDF。

C# NuGet 程式庫用于 PDF nuget.org/packages/IronPdf/
Install-Package IronPdf

請考慮安裝 IronPDF DLL 直接下載並手動安裝到您的專案或GAC表單: IronPdf.zip

手動安裝到您的項目中

下載DLL

使用Web字體和圖標範例

IronPDF 支援 網路字體 (例如 Google 字體和 Adobe 網頁字體 API) 以及圖標字體,例如 Bootstrap 使用的字體 FontAwesome字體通常需要延遲渲染才能正確加載。如果字體未正確加載,可能會導致空白頁而沒有任何文字。您可以使用WaitFor.AllFontsLoaded方法通過設置最大等待時間來等待字體。默認的最大等待時間是500毫秒。

以下是一個如何使用的簡單示例 網頁字體 在您的專案中命名為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")
VB   C#

探索更多 WaitFor 選項,例如用於字體、JavaScript、HTML 元素和網路空閒的選項,請訪問 '如何使用 WaitFor 類別延遲 C# PDF 渲染.'


匯入字型檔案範例

若要使用現有的字型檔案,請應用 @font-face 在 CSS 樣式中規則。它也適用於結合@font-face 規則和嵌入 base64 編碼的 woff 文件。在以下範例中,我將使用 像素化无衬线字体.

: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")
VB   C#

Azure PDF 的限制

Azure代管平台 不支援在其低階共用網頁應用程式層中載入SVG字體。然而,Azure的VPS和Web角色在同樣的方式下不會被沙盒化,並支援網頁字體渲染。