PowerPoint-Schriftarten in .NET anpassen
Aspose Slides ermöglicht das Laden dieser Schriftarten mit der Methode FontsLoader.LoadExternalFonts :
Benutzerdefinierte Schriftarten laden
Aspose.Slides ermöglicht das Laden von Schriftarten, die in Präsentationen gerendert werden, ohne dass diese Schriftarten installiert werden müssen. Die Schriftarten werden aus einem benutzerdefinierten Verzeichnis geladen.
- Erstellen Sie eine Instanz der Klasse FontsLoader und rufen Sie die Methode LoadExternalFonts auf.
- Laden Sie die Präsentation, die gerendert werden soll.
- Leeren Sie den Cache in der Klasse FontsLoader.
Dieser C#‑Code demonstriert den Schriftarten‑Ladevorgang:
// Der Pfad zum Dokumentenverzeichnis
string dataDir = "C:\\";
// Ordner, in denen nach Schriften gesucht wird
String[] folders = new String[] { dataDir };
// Lädt die Schriften aus dem benutzerdefinierten Schriftverzeichnis
FontsLoader.LoadExternalFonts(folders);
// Führt einige Arbeiten aus und rendert die Präsentation/Folie
using (Presentation presentation = new Presentation(dataDir + "DefaultFonts.pptx"))
presentation.Save(dataDir + "NewFonts_out.pptx", SaveFormat.Pptx);
// Löscht den Schrift-Cache
FontsLoader.ClearCache();
Benutzerdefinierte Schriftordner abrufen
Aspose.Slides stellt die Methode GetFontFolders zur Verfügung, mit der Sie Schriftordner finden können. Diese Methode gibt Ordner zurück, die über die Methode LoadExternalFonts hinzugefügt wurden, sowie Systemschriftordner.
Dieser C#‑Code zeigt, wie Sie GetFontFolders verwenden:
// Diese Zeile gibt die Ordner aus, die auf Schriftdateien überprüft werden.
// Dabei handelt es sich um Ordner, die über die Methode LoadExternalFonts hinzugefügt wurden, sowie Systemschriftordner.
string[] fontFolders = FontsLoader.GetFontFolders();
Benutzerdefinierte Schriftarten für eine Präsentation angeben
Aspose.Slides stellt die Eigenschaft DocumentLevelFontSources bereit, mit der Sie externe Schriftarten angeben können, die mit der Präsentation verwendet werden.
Dieser C#‑Code zeigt, wie Sie die Eigenschaft DocumentLevelFontSources verwenden:
byte[] memoryFont1 = File.ReadAllBytes("customfonts\\CustomFont1.ttf");
byte[] memoryFont2 = File.ReadAllBytes("customfonts\\CustomFont2.ttf");
LoadOptions loadOptions = new LoadOptions();
loadOptions.DocumentLevelFontSources.FontFolders = new string[] { "assets\\fonts", "global\\fonts" };
loadOptions.DocumentLevelFontSources.MemoryFonts = new byte[][] { memoryFont1, memoryFont2 };
using (IPresentation presentation = new Presentation("MyPresentation.pptx", loadOptions))
{
// Arbeiten Sie mit der Präsentation
// CustomFont1, CustomFont2 und Schriftarten aus den Ordnern assets\fonts & global\fonts sowie deren Unterordnern stehen der Präsentation zur Verfügung
}
Schriftarten extern verwalten
Aspose.Slides stellt die Methode LoadExternalFont(byte[] data) zur Verfügung, mit der Sie externe Schriftarten aus binären Daten laden können.
Dieser C#‑Code demonstriert das Laden von Schriftarten aus einem Byte‑Array:
FontsLoader.LoadExternalFont(File.ReadAllBytes("ARIALN.TTF"));
FontsLoader.LoadExternalFont(File.ReadAllBytes("ARIALNBI.TTF"));
FontsLoader.LoadExternalFont(File.ReadAllBytes("ARIALNI.TTF"));
try
{
using (Presentation pres = new Presentation(""))
{
// Externe Schriftart, die während der Lebensdauer der Präsentation geladen wird
}
}
finally
{
FontsLoader.ClearCache();
}
FAQ
Wirken sich benutzerdefinierte Schriftarten auf den Export in alle Formate (PDF, PNG, SVG, HTML) aus?
Ja. Verbundene Schriftarten werden vom Renderer in allen Exportformaten verwendet.
Werden benutzerdefinierte Schriftarten automatisch in die resultierende PPTX eingebettet?
Nein. Das Registrieren einer Schriftart zum Rendern ist nicht dasselbe wie das Einbetten in eine PPTX. Wenn Sie die Schriftart in der Präsentationsdatei benötigen, müssen Sie die expliziten Einbettungsfunktionen verwenden.
Kann ich das Fallback‑Verhalten steuern, wenn einer benutzerdefinierten Schriftart bestimmte Glyphen fehlen?
Ja. Konfigurieren Sie font substitution, replacement rules und fallback sets, um genau festzulegen, welche Schriftart verwendet wird, wenn die angeforderte Glyphe fehlt.
Kann ich Schriftarten in Linux/Docker‑Containern verwenden, ohne sie systemweit zu installieren?
Ja. Verweisen Sie auf Ihre eigenen Schriftordner oder laden Sie Schriftarten aus Byte‑Arrays. Dadurch wird jede Abhängigkeit von Systemschriftverzeichnissen im Container‑Image entfernt.
Wie sieht es mit der Lizenzierung aus – kann ich beliebige benutzerdefinierte Schriftarten ohne Einschränkungen einbetten?
Sie sind für die Einhaltung der Schriftlizenz verantwortlich. Die Bedingungen variieren; einige Lizenzen verbieten das Einbetten oder die kommerzielle Nutzung. Überprüfen Sie stets die EULA der Schriftart, bevor Sie Ausgaben verbreiten.