如何管理 PDF 中的字体
字体是一组具有统一风格和设计的字符、符号和字形。它代表一种特定的字体、大小、重量和风格 (如普通、粗体、斜体等。) 的文字。字体在排版中的作用是以视觉上吸引人和连贯的方式显示文字。
IronPDF 提供了一种管理字体的便捷方法,具有查找字体、获取字体、嵌入字体、解除嵌入字体和替换字体等功能。
开始在您的项目中使用IronPDF,并立即获取免费试用。
查看 IronPDF 上 Nuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变PDF。
Install-Package IronPdf
考虑安装 IronPDF DLL 直接。下载并手动安装到您的项目或GAC表单中: IronPdf.zip
手动安装到你的项目中
下载DLL查找和检索字体
检索字体
访问字体属性将返回PdfFontCollection对象,该对象包含文档中所有字体的列表。通过遍历PdfFontCollection对象,可直接访问字体属性。
: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;
Imports IronPdf
Imports IronPdf.Fonts
Imports System.Collections.Generic
' Import PDF
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Retreive font
Private fonts As PdfFontCollection = pdf.Fonts
查找字体
使用 IronPdf 查找特定字体非常简单。使用 PdfFontCollection 对象,我们可以将字体名称指定为一个用方括号括起来的字符串。例如字体 ["特殊字体名称"].这将返回一个 PdfFont 对象,我们可以用它来检查属性和执行其他方法。
: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"];
Imports IronPdf
Imports IronPdf.Fonts
Imports System.Collections.Generic
Imports System.Linq
' Import PDF
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Find font
Private font As PdfFont = pdf.Fonts("SpecialFontName")
添加字体
使用 Add
方法将标准字体和字体文件添加为字节数据。接受字体名称的 Add
方法只接受其中一个 14 种标准字体.添加标准字体不会嵌入它,因为标准字体已经在操作系统中可用。
: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");
Imports IronPdf
Imports IronPdf.Fonts
' Import PDF
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Add font
pdf.Fonts.Add("Helvetica")
嵌入字体
嵌入字体是指在 PDF 文档中包含字体的字节流数据。这样,就不需要在系统中安装字体就能正常查看 PDF 文档了。虽然这通常会增加 PDF 文档的文件大小,但它有利于视觉上的一致性,而无需额外安装字体。
:path=/static-assets/pdf/content-code-examples/how-to/manage-font-embed-font.cs
using IronPdf;
using IronPdf.Fonts;
using System.Linq;
// Import PDF
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
// Select which font to embed
PdfFont targetFont = pdf.Fonts["MyCustomFont"];
// Add the font
byte[] fontData = System.IO.File.ReadAllBytes("dir/to/font.ttf");
pdf.Fonts.Add(fontData);
// Embed the font
pdf.Fonts.Last().Embed(fontData);
Imports IronPdf
Imports IronPdf.Fonts
Imports System.Linq
' Import PDF
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Select which font to embed
Private targetFont As PdfFont = pdf.Fonts("MyCustomFont")
' Add the font
Private fontData() As Byte = System.IO.File.ReadAllBytes("dir/to/font.ttf")
pdf.Fonts.Add(fontData)
' Embed the font
pdf.Fonts.Last().Embed(fontData)
Unembed 字体
解嵌入字体是指删除 PDF 文档中字体的嵌入字节流数据。其目的是减小 PDF 文档的文件大小。请使用 Unembed
方法来实现这一目标。
: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();
Imports IronPdf
Imports IronPdf.Fonts
' Import PDF
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Get fonts
Private fonts As PdfFontCollection = pdf.Fonts
' Unembed a font
pdf.Fonts(0).Unembed()
替换字体
字体替换操作将保留 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);
Imports IronPdf
Imports IronPdf.Fonts
Imports System.Linq
' Import PDF
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
Private fontData() As Byte = System.IO.File.ReadAllBytes("dir/to/font.ttf")
' Get and replace Font
pdf.Fonts("Courier").ReplaceWith(fontData)
标准字体
PDF 中的 14 种标准字体也称为 "Base 14 Fonts "或 "Standard Type 1 Fonts",它们组成了一组字体,在 PDF 阅读器中得到广泛支持,且无需嵌入到文档中。标准字体定义了 14 种字体,它们保证 (根据 PDF 文档标准) 在处理 PDF 文档时可用。
- 信使
- Courier-Bold
- Courier-Oblique
- Courier-BoldOblique
- Helvetica
- 黑体
- Helvetica-Oblique
- Helvetica-BoldOblique
- Times-Roman
- 泰晤士黑体
- Times-Italic
- Times-BoldItalic
- 符号
- ZapfDingbats
标准字体映射
为方便引用标准字体,多个字符串名称指向同一字体。
映射到 Courier
StandardFont.Courier
Courier
CourierNew
CourierNewPSMT
- CourierStd
Map to Courier-Bold
StandardFont.CourierBold
Courier,Bold
Courier-Bold
粗体
CourierNew,Bold
CourierNew-Bold
CourierNewBold
CourierNewPS-BoldMT
- CourierStd-Bold
Map to Courier-Oblique
StandardFont.CourierOblique
Courier, 斜体
Courier 斜体
Courier斜体
CourierNew,Italic
CourierNew-Italic
CourierNewItalic
CourierNewPS-ItalicMT
- CourierStd-Oblique
Map to Courier-BoldOblique
StandardFont.CourierBoldOblique
Courier 加粗斜体
Courier-BoldOblique
CourierBoldItalic
Courier New,粗斜体
CourierNew-BoldItalic
CourierNewBoldItalic
CourierNewPS-BoldItalicMT
- CourierStd-BoldOblique
Map to Helvetica
StandardFont.Helvetica
Arial
ArialMT
- Helvetica
Map to Helvetica-Bold
StandardFont.HelveticaBold
黑体
黑体
Arial-BoldMT
黑体
黑体 ArialMT
ArialRoundedMTBold
黑体
黑体
- 黑体
Map to Helvetica-Oblique
StandardFont.HelveticaOblique
Arial、斜体
Arial-斜体
Arial-ItalicMT
ArialItalic
ArialMT,斜体
斜体 Helvetica
Helvetica 意大利文
斜体
- HelveticaItalic
Map to Helvetica-BoldOblique
StandardFont.HelveticaBoldOblique
Arial,粗体斜体
Arial-BoldItalic
Arial-BoldItalicMT
ArialBoldItalic
ArialMT,粗体斜体
黑体 Helvetica
Helvetica-BoldItalic
Helvetica-BoldOblique
- HelveticaBoldItalic
Map to Times-Roman
StandardFont.Times
Times-Roman
TimesNewRoman
TimesNewRomanPS
- TimesNewRomanPSMT
映射到 Times-Bold
StandardFont.TimesBold
Times-Bold
TimesBold
黑体
黑体
TimesNewRoman 黑体
TimesNewRomanPS-Bold
TimesNewRomanPS-BoldMT
- TimesNewRomanPSMT,Bold
Map to Times-Italic
StandardFont.TimesOblique
Times-Italic
TimesItalic
斜体
泰晤士新罗马字体
TimesNewRomanItalic
TimesNewRomanPS-Italic
TimesNewRomanPS-ItalicMT
- 斜体 TimesNewRomanPSMT
映射到 Times-BoldItalic
StandardFont.TimesBoldOblique
Times-BoldItalic
TimesBoldItalic
Times NewRoman,粗体斜体
TimesNewRoman-BoldItalic
时代新罗马黑体
TimesNewRomanPS-BoldItalic
TimesNewRomanPS-BoldItalicMT
- TimesNewRomanPSMT 加粗斜体
映射到符号
StandardFont.Symbol
符号
- 符号MT
Map to ZapfDingbats
StandardFont.Dingbats
- ZapfDingbats