如何在 PDF 中設置字體
網頁字體(webfont)是為網站設計的專門字體。這些字體由網頁伺服器托管,並由網頁瀏覽器下載,以確保在網站上實現一致且視覺吸引力的文字渲染,無論使用者的本地字體資源如何。此外,圖示字體(icon fonts),使用符號和字形,經常在網頁設計中用於創建可調節大小、可自定義的圖示,並通過 CSS 操作保持視覺一致的用戶介面。
CSS 包含網頁字體,允許您在訪問網站時指定字體文件進行下載。IronPDF 支援從 HTML 加載字體並渲染到 PDF。
如何在 PDF 中設置字體
- 下載 C# 函式庫以在 PDF 中設置字體
- 利用 HTML 從外部來源導入或請求字體
- 延遲渲染過程以確保字體正確加載
- 如往常一樣將HTML渲染為PDF。
- 在CSS樣式中使用@font-face規則來導入字體檔案
立即開始在您的專案中使用IronPDF,並享受免費試用。
查看 IronPDF 上 Nuget 快速安裝和部署。已被下載超過800萬次,它正用C#改變PDF。
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")
探索更多 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")
Azure PDF 的限制
Azure代管平台 不支援在其低階共用網頁應用程式層中載入SVG字體。然而,Azure的VPS和Web角色在同樣的方式下不會被沙盒化,並支援網頁字體渲染。