FontInfoSubstitutionRule
Содержание
[
Скрывать
]FontInfoSubstitutionRule class
Правило замены информации о шрифте.
Чтобы узнать больше, посетитеРабота со шрифтами статья документации.
public class FontInfoSubstitutionRule : FontSubstitutionRule
Характеристики
Имя | Описание |
---|---|
virtual Enabled { get; set; } | Указывает, включено правило или нет. |
Примечания
Согласно этому правилу Aspose.Words оценивает все связанные поля вFontInfo
(Panose, Sig и т. д.) for недостающий шрифт и находит наиболее близкое совпадение среди доступных источников шрифтов. ЕслиFontInfo
отсутствует для отсутствующего шрифта, то ничего не будет сделано.
Примеры
Показывает, как настроить свойство для поиска ближайшего соответствия отсутствующему шрифту из доступных источников шрифтов.
public void EnableFontSubstitution()
{
// Откройте документ, содержащий текст, отформатированный шрифтом, которого нет ни в одном из наших источников шрифтов.
Document doc = new Document(MyDir + "Missing font.docx");
// Назначаем обратный вызов для обработки предупреждений о замене шрифта.
HandleDocumentSubstitutionWarnings substitutionWarningHandler = new HandleDocumentSubstitutionWarnings();
doc.WarningCallback = substitutionWarningHandler;
// Установить имя шрифта по умолчанию и включить подстановку шрифтов.
FontSettings fontSettings = new FontSettings();
fontSettings.SubstitutionSettings.DefaultFontSubstitution.DefaultFontName = "Arial";
;
fontSettings.SubstitutionSettings.FontInfoSubstitution.Enabled = true;
// После замены шрифта следует использовать оригинальные метрики шрифта.
doc.LayoutOptions.KeepOriginalFontMetrics = true;
// Мы получим предупреждение о замене шрифта, если сохраним документ с отсутствующим шрифтом.
doc.FontSettings = fontSettings;
doc.Save(ArtifactsDir + "FontSettings.EnableFontSubstitution.pdf");
using (IEnumerator<WarningInfo> warnings = substitutionWarningHandler.FontWarnings.GetEnumerator())
while (warnings.MoveNext())
Console.WriteLine(warnings.Current.Description);
// Мы также можем проверить предупреждения в коллекции и очистить их.
Assert.AreEqual(WarningSource.Layout, substitutionWarningHandler.FontWarnings[0].Source);
Assert.AreEqual(
"Font '28 Days Later' has not been found. Using 'Calibri' font instead. Reason: alternative name from document.",
substitutionWarningHandler.FontWarnings[0].Description);
substitutionWarningHandler.FontWarnings.Clear();
Assert.That(substitutionWarningHandler.FontWarnings, Is.Empty);
}
public class HandleDocumentSubstitutionWarnings : IWarningCallback
{
/// <summary>
/// Вызывается каждый раз, когда во время загрузки/сохранения возникает предупреждение.
/// </summary>
public void Warning(WarningInfo info)
{
if (info.WarningType == WarningType.FontSubstitution)
FontWarnings.Warning(info);
}
public WarningInfoCollection FontWarnings = new WarningInfoCollection();
}
Смотрите также
- class FontSubstitutionRule
- пространство имен Aspose.Words.Fonts
- сборка Aspose.Words