当使用Word转换到PDF功能时,Spire.Doc提供了三种方式嵌入字体,分别为嵌入已安装的字体,单独嵌入某种字体以及嵌入没有安装的字体。本文将对这三种方式做详细的区分和介绍。
1、嵌入已安装的字体。
ToPdfParameterList 提供了一个属性IsEmbeddedAllFonts,但是这个属性只适用于本机上有这个字体的情况。
C#
//加载文档
Document doc = new Document(false);
doc.LoadFromFile(@"input.docx");
ToPdfParameterList ppl = new ToPdfParameterList();
//设置嵌入文档中的所有字体
ppl.IsEmbeddedAllFonts = true;
//保存文档
doc.SaveToFile("output.pdf", ppl);
VB.NET
'加载文档
Dim doc As Document = New Document(false)
doc.LoadFromFile("input.docx")
Dim ppl As ToPdfParameterList = New ToPdfParameterList
'设置嵌入文档中的所有字体
ppl.IsEmbeddedAllFonts = true
'保存文档
doc.SaveToFile("output.pdf", ppl)
效果图:
2、单独嵌入某种字体
ToPdfParameterList提供了属性EmbeddedFontNameList传入需要嵌入字体的List集合。这种方式只适用于本机安装了此字体的情况。
C#
//加载文档
Document doc = new Document(false);
doc.LoadFromFile(@"input.docx");
ToPdfParameterList ppl = new ToPdfParameterList();
//List集合存储需要嵌入的字体
List part = new List();
part.Add("Lucida Sans Unicode");
ppl.EmbeddedFontNameList = part;
//保存文档
doc.SaveToFile("output.pdf", ppl);
VB.NET
'加载文档
Dim doc As Document = New Document(false)
doc.LoadFromFile("input.docx")
Dim ppl As ToPdfParameterList = New ToPdfParameterList
'List集合存储需要嵌入的字体
Dim part As List = New List
part.Add("Lucida Sans Unicode")
ppl.EmbeddedFontNameList = part
'保存文档
doc.SaveToFile("output.pdf", ppl)
效果图:
3、嵌入没有安装的字体
如果转换过程在其他环境上,此环境中没有安装某个字体,我们就需要通过加载字体文件的方式来嵌入这个字体。这种方式需要被嵌入的字体文件。
C#
//加载文档
Document doc = new Document(false);
doc.LoadFromFile(@"input.docx");
//嵌入未安装的字体.
ToPdfParameterList ppl = new ToPdfParameterList()
{
PrivateFontPaths = new List()
{
new PrivateFontPath("Lucida Sans Unicode", @"Lucida Sans Unicode.ttf")
}
};
//保存文档.
doc.SaveToFile("Sample.pdf", ppl);
VB.NET
'加载文档
Dim doc As New Document(false)
doc.LoadFromFile("input.docx")
'嵌入未安装的字体
Dim ppl As New ToPdfParameterList() With {
Key .PrivateFontPaths = New List() From {
New PrivateFontPath("Lucida Sans Unicode", "Lucida Sans Unicode.ttf")
}
}
'保存文档
doc.SaveToFile("Sample.pdf", ppl)
效果图: