如何在 HTML 到 PDF 轉換中管理字體

如何使用 C# 管理 PDF 中的字型

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

IronPDF 可在 C# 中實現全面的字型管理,包括在 PDF 文件中查找、新增、嵌入、解除嵌入和更換字型,以確保在所有平台上顯示一致的文字。

字體是一組具有一致風格和設計的字元、符號和字形。 它代表文字的特定字體、大小、粗細和樣式(例如常規、粗體、斜體等)。 字體在排版中用於以視覺上吸引人且連貫的方式顯示文字。

IronPDF 提供了一種便捷的字體管理方式,提供了尋找字體、獲取字體、嵌入字體、取消嵌入字體和替換字體等功能。 無論您是建立新的 PDF編輯現有的文件,適當的字型管理都能確保您的 PDF 在所有平台和裝置上都能正確顯示。

快速入門:管理和嵌入 PDF 中的字體

立即使用 IronPDF 簡化 PDF 文件中的字型管理。 本指南說明如何在 PDF 中嵌入字型,以達到跨平台的視覺一致性。 只需幾行程式碼,您就可以增強文件的外觀並維持相容性。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronPDF

    PM > Install-Package IronPdf

  2. 複製並運行這段程式碼。

    var pdf = PdfDocument.FromHtml("<p style='font-family:MyCustomFont;'>Hello world!</p>");
    pdf.Fonts.Add("MyCustomFont", File.ReadAllBytes("MyCustomFont.ttf"))
      .Embed()
      .SaveAs("withCustomFont.pdf");
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronPDF,免費試用!
    arrow pointer

如何在 PDF 中尋找和擷取字型?

如何從 PDF 擷取所有字型?

存取 Fonts 屬性會返回包含所有文件字型的 PdfFontCollection 物件。 可透過遍歷 PdfFontCollection 物件直接存取 Fonts 屬性。 這在處理 IronPDF 表單或分析文件結構時尤其有用。

:path=/static-assets/pdf/content-code-examples/how-to/manage-font-retrieve-font.cs
using IronPdf;
using IronPdf.Fonts;
using System.Collections.Generic;

// Import PDF
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Retreive font
PdfFontCollection fonts = pdf.Fonts;
$vbLabelText   $csharpLabel

如何根據字型名稱找到特定字型?

使用 IronPDF 可以直接找到特定的字型。 使用 PdfFontCollection 物件,指定字型名稱以存取字型物件並檢查屬性。 當您需要重新取代 PDF 文件中的文字,同時保持字型一致時,此功能是不可或缺的。

:path=/static-assets/pdf/content-code-examples/how-to/manage-font-find-font.cs
using IronPdf;
using IronPdf.Fonts;
using System.Collections.Generic;
using System.Linq;

// Import PDF
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Find font
PdfFont font = pdf.Fonts["SpecialFontName"];
$vbLabelText   $csharpLabel

如何在 PDF 中加入字型?

使用 Add 方法將標準字型或字型檔案新增為 byte 資料。 接受字型名稱的方法只接受 14 種標準字型中的一種。 添加標準字型不會嵌入其中,因為這些字型在作業系統上保證可用。 當 將 HTML 轉換為 PDF 時,IronPDF 會自動處理 HTML 中的網頁字型。

:path=/static-assets/pdf/content-code-examples/how-to/manage-font-add-font.cs
using IronPdf;
using IronPdf.Fonts;

// Import PDF
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Add font
pdf.Fonts.Add("Helvetica");
$vbLabelText   $csharpLabel

對於進階的字型管理,包括 web 字型和圖示字型,IronPDF 提供全面的支援,滿足現代排版的需求。

為什麼要在 PDF 中嵌入字體?

嵌入字型包括 PDF 文件中字型的位元組流資料。 這可確保正確顯示,而不需要在檢視系統上安裝字型。 雖然這樣會增加檔案大小,但卻能保證視覺上的一致性。 這在建立 IronPDF/A 相容的文件或確保文件的可移植性時至關重要。

:path=/static-assets/pdf/content-code-examples/how-to/manage-font-embed-font.cs
using IronPdf;
using System.Linq;

// Import PDF
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Add the font
byte[] fontData = System.IO.File.ReadAllBytes("dir/to/font.ttf");

// Embed the font
pdf.Fonts.Last().Embed(fontData);
$vbLabelText   $csharpLabel

字型嵌入對於國際語言和 UTF-8 支援尤其重要,以確保字元在所有系統中都能正確顯示。

何時應該從 PDF 中解除嵌入字體?

Unembedding 可移除 PDF 中內嵌的字型位元組流資料,以縮小檔案大小。使用 Unembed 方法來實現。 此技術與 IronPDF 壓縮策略搭配使用,可將檔案大小降至最低。

:path=/static-assets/pdf/content-code-examples/how-to/manage-font-unembed-font.cs
using IronPdf;
using IronPdf.Fonts;

// Import PDF
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Get fonts
PdfFontCollection fonts = pdf.Fonts;

// Unembed a font
pdf.Fonts[0].Unembed();
$vbLabelText   $csharpLabel

如果不常用的字型在解除嵌入後缺乏回退功能,可能會在輸出的 PDF 中出現損壞。 檢查 Adobe 是否顯示相同的問題 - 如果是,這是預期的行為。 如果不符合要求,請聯絡支援部門進行調查。 損壞的字體顯示如下:

Adobe Acrobat 字型錯誤對話框,顯示遺失 AAAAAA+Impact 字型警告,並顯示亂碼文字

如何替換 PDF 文件中的字型?

字型替換保留原始字型資料結構,包括樣式和字元編碼,同時替換指定的字型。 確保新字型與原始字型一致。 此功能在 編輯 PDF 或標準化各文件的字型時非常有用。

在極少數情況下,視覺效果可能無法完全吻合。 這是字型替換方法目前的限制。

:path=/static-assets/pdf/content-code-examples/how-to/manage-font-replace-font.cs
using IronPdf;
using IronPdf.Fonts;
using System.Linq;

// Import PDF
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

byte[] fontData = System.IO.File.ReadAllBytes("dir/to/font.ttf");
// Get and replace Font
pdf.Fonts["Courier"].ReplaceWith(fontData);
$vbLabelText   $csharpLabel

什麼是 14 種標準 PDF 字型?

14 種標準字型(Base 14 Fonts 或 Standard Type 1 Fonts)在 PDF 檢視器中廣泛支援,且不需要嵌入。 PDF 標準保證這些字型在處理 PDF 文件時可用。 在 從各種來源建立 PDF 時,這些字型對於維持相容性是不可或缺的。

  • Courier
  • Courier-Bold
  • Courier-Oblique
  • Courier-BoldOblique
  • Helvetica
  • Helvetica-Bold
  • Helvetica-Oblique
  • Helvetica-BoldOblique
  • Times-Roman
  • Times-Bold
  • Times-Italic
  • Times-BoldItalic
  • Symbol
  • ZapfDingbats

哪些字型名稱可對應至標準字型?

為了方便起見,多個字串名稱指向相同的標準字型。 在使用不同的 PDF 工具以及 合併或分割 PDF 時,此對應系統可確保相容性。

地圖到快遞

  • StandardFont.Courier 標準字型
    • 導遊
    • 速遞新
    • 速遞新PSMT
    • 快遞標準

前往 Courier-Bold 的地圖

  • StandardFont.CourierBold- 導遊,大膽
    • 導遊-Bold
    • 導遊Bold
    • 速遞新,大膽
    • 速遞新-Bold
    • 速遞新Bold
    • 速遞新PS-BoldMT
    • 快遞標準-Bold

前往信差斜線的地圖

  • StandardFont.CourierOblique
    • 快遞員,斜體
    • 斜向信使
    • 導遊Italic
    • 速遞新,斜體
    • 速遞新-Italic
    • 速遞新Italic
    • 速遞新PS-ItalicMT
    • 快遞標準-Oblique

地圖到 Courier-BoldOblique

  • StandardFont.CourierBoldOblique 標準字型。
    • 導遊,粗斜體
    • 導遊-BoldOblique
    • 導遊BoldItalic
    • 速遞新,粗斜體
    • 速遞新-BoldItalic
    • 速遞新BoldItalic
    • 速遞新PS-BoldItalicMT
    • 快遞標準-BoldOblique

前往 Helvetica 的地圖

  • StandardFont.Helvetica 標準字體
    • Arial
    • ArialMT
    • Helvetica

映射到 Helvetica-Bold

  • StandardFont.HelveticaBold- Arial,粗體
    • Arial-粗體
    • Arial-粗體MT
    • Arial粗體
    • ArialMT,粗體
    • ArialRoundedMTBold
    • Helvetica,粗體
    • 黑體
    • Helvetica粗體

映射到 Helvetica-Oblique

  • StandardFont.HelveticaOblique- Arial,斜體
    • Arial-Italic
    • Arial-ItalicMT
    • ArialItalic
    • ArialMT,斜體
    • Helvetica,斜體
    • Helvetica-Italic
    • Helvetica-Oblique
    • HelveticaItalic

映射到 Helvetica-BoldOblique

  • StandardFont.HelveticaBoldOblique- Arial、粗斜體
    • Arial-粗斜體
    • Arial-粗斜體MT
    • Arial粗斜體
    • ArialMT,粗斜體
    • Helvetica,粗斜體
    • 黑體Italic
    • 黑體Oblique
    • Helvetica粗斜體

地圖轉 Times Roman 字體

  • StandardFont.Times
    • Times-Roman
    • TimesNewRoman
    • TimesNewRomanPS
    • TimesNewRomanPSMT

地圖至時代粗體

  • StandardFont.TimesBold
    • 時代粗體
    • TimesBold
    • TimesNewRoman,粗體
    • TimesNewRoman-粗體
    • TimesNewRoman粗體
    • TimesNewRomanPS-Bold
    • TimesNewRomanPS-BoldMT
    • TimesNewRomanPSMT,粗體

地圖到 Times-Italic

  • StandardFont.TimesOblique
    • 時代意大利語
    • TimesItalic Times New Roman,斜體 TimesNewRoman-Italic
    • TimesNewRoman 英語
    • TimesNewRomanPS-Italic
    • TimesNewRomanPS-ItalicMT
    • TimesNewRomanPSMT,斜體

地圖到 Times-粗斜體

  • StandardFont.TimesBoldOblique 標準字型。
    • Times-粗斜體
    • TimesBoldItalic
    • TimesNewRoman,粗斜體
    • TimesNewRoman-粗體Italic
    • TimesNewRoman粗體Italic
    • TimesNewRomanPS-粗斜體
    • TimesNewRomanPS-粗斜體MT
    • TimesNewRomanPSMT,粗斜體

映射到符號

  • StandardFont.符號- 象徵
    • 符號管理

前往 ZapfDingbats 的地圖

  • StandardFont.Dingbats- ZapfDingbats

常見問題解答

如何使用 C# 在 PDF 文件中嵌入自訂字型?

使用 IronPdf,您可以在 Fonts 集合上使用 Add 方法,然後再使用 Embed 方法來嵌入自訂字體。只需將您的字型檔案載入為一個位元組陣列,並將其加入 PDF 中:pdf.Fonts.Add("MyCustomFont", File.ReadAllBytes("MyCustomFont.ttf")).Embed().這可確保您的 PDF 在所有平台上都能正確顯示。

如何檢索現有 PDF 文件中的所有字型?

IronPDF 透過 Fonts 屬性提供對所有文件字型的存取,而 Fonts 屬性會回傳一個 PdfFontCollection 物件。您可以遍歷這個集合來擷取字型資訊,包括字型名稱、嵌入狀態和字型類型,讓您可以輕鬆分析文件結構和字型使用情況。

在 PDF 中根據名稱查找特定字型的最佳方法是什麼?

IronPDF 允許您使用 PdfFontCollection 物件來尋找特定的字型。您可以透過指定字型名稱來搜尋字型,這樣就可以存取字型物件及其屬性。當您需要替換或修改 PDF 文件中的特定字型時,此功能尤其有用。

我可以移除內嵌字型以縮小 PDF 檔案大小嗎?

是的,IronPDF 提供了 Unembed 方法,可讓您移除 PDF 文件中的內嵌字體。這可以在保持文件結構的同時大幅減少文件大小,不過這可能會影響 PDF 在未安裝所需字體的系統上的顯示效果。

如何替換現有 PDF 文件中的字型?

IronPDF 提供的 Replace 方法可讓字型更換變得簡單直接。您可以輕鬆地將 PDF 文件中的現有字體更換為新字體,這對於保持品牌一致性或使用現代字體更新舊文件非常有用。

Curtis Chau
技術撰稿人

Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。

準備好開始了嗎?
Nuget 下載 17,570,948 | 版本: 2026.2 剛剛發布