ResolveFontNames

HtmlSaveOptions.ResolveFontNames property

指定是否根据 解析和替换文档中使用的字体系列名称FontSettings当写入基于 HTML 的格式时。

public bool ResolveFontNames { get; set; }

评论

默认情况下,该选项设置为错误的字体系列名称将按照源文档中指定的 写入 HTML。那是,FontSettings被忽略,并且不执行字体系列名称的解析或替换 。

如果该选项设置为真的、Aspose.Words 使用FontSettings将源文档中指定的每个字体系列名称解析为可用字体系列的名称,并根据需要执行字体替换。

例子

演示如何在将所有字体名称写入 HTML 之前解析它们。

Document doc = new Document(MyDir + "Missing font.docx");

// 该文档包含命名我们没有的字体的文本。
Assert.NotNull(doc.FontInfos["28 Days Later"]);

// 如果我们无法获得这种字体,并且我们希望能够显示所有文本
// 在这个文档的输出 HTML 中,我们可以用另一种字体替换它。
FontSettings fontSettings = new FontSettings
{
    SubstitutionSettings =
    {
        DefaultFontSubstitution =
        {
            DefaultFontName = "Arial",
            Enabled = true
        }
    }
};

doc.FontSettings = fontSettings;

HtmlSaveOptions saveOptions = new HtmlSaveOptions(SaveFormat.Html)
{
    // 默认情况下,此选项设置为“False”,Aspose.Words 按照源文档中指定的方式写入字体名称
    ResolveFontNames = resolveFontNames
};

doc.Save(ArtifactsDir + "HtmlSaveOptions.ResolveFontNames.html", saveOptions);

string outDocContents = File.ReadAllText(ArtifactsDir + "HtmlSaveOptions.ResolveFontNames.html");

Assert.True(resolveFontNames
    ? Regex.Match(outDocContents, "<span style=\"font-family:Arial\">").Success
    : Regex.Match(outDocContents, "<span style=\"font-family:\'28 Days Later\'\">").Success);

也可以看看