FontInfoSubstitutionRule
Inhalt
[
Ausblenden
]
FontInfoSubstitutionRule class
Ersetzungsregel für Schriftinformationen.
public class FontInfoSubstitutionRule : FontSubstitutionRule
Eigenschaften
Name | Beschreibung |
---|---|
virtual Enabled { get; set; } | Gibt an, ob die Regel aktiviert ist oder nicht. |
Bemerkungen
Gemäß dieser Regel wertet Aspose.Words alle zugehörigen Felder ausFontInfo
(Panose, Sig usw.) for die fehlende Schriftart und findet die beste Übereinstimmung unter den verfügbaren Schriftartquellen. WennFontInfo
für die fehlende Schriftart nicht verfügbar ist, wird nichts unternommen.
Beispiele
Zeigt, wie die Eigenschaft festgelegt wird, um die beste Übereinstimmung für eine fehlende Schriftart aus den verfügbaren Schriftartquellen zu finden.
[Test]
public void EnableFontSubstitution()
{
// Öffnen Sie ein Dokument, das Text enthält, der mit einer Schriftart formatiert ist, die in keiner unserer Schriftartquellen vorhanden ist.
Document doc = new Document(MyDir + "Missing font.docx");
// Weisen Sie einen Rückruf für die Behandlung von Schriftartersetzungswarnungen zu.
HandleDocumentSubstitutionWarnings substitutionWarningHandler = new HandleDocumentSubstitutionWarnings();
doc.WarningCallback = substitutionWarningHandler;
// Legen Sie einen Standardschriftnamen fest und aktivieren Sie die Schriftartersetzung.
FontSettings fontSettings = new FontSettings();
fontSettings.SubstitutionSettings.DefaultFontSubstitution.DefaultFontName = "Arial";
;
fontSettings.SubstitutionSettings.FontInfoSubstitution.Enabled = true;
// Wir erhalten eine Schriftersetzungswarnung, wenn wir ein Dokument mit einer fehlenden Schrift speichern.
doc.FontSettings = fontSettings;
doc.Save(ArtifactsDir + "FontSettings.EnableFontSubstitution.pdf");
using (IEnumerator<WarningInfo> warnings = substitutionWarningHandler.FontWarnings.GetEnumerator())
while (warnings.MoveNext())
Console.WriteLine(warnings.Current.Description);
// Wir können auch Warnungen in der Sammlung überprüfen und löschen.
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>
/// Wird jedes Mal aufgerufen, wenn während des Ladens/Speicherns eine Warnung auftritt.
/// </summary>
public void Warning(WarningInfo info)
{
if (info.WarningType == WarningType.FontSubstitution)
FontWarnings.Warning(info);
}
public WarningInfoCollection FontWarnings = new WarningInfoCollection();
}
Siehe auch
- class FontSubstitutionRule
- namensraum Aspose.Words.Fonts
- Montage Aspose.Words