当使用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集合存储需要嵌入的字体 Listpart = 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)
效果图: