Schriftartkonvertierung. Erweiterte Details | .NET
In manchen Fällen ist es sinnvoll, konvertierte Schriftartdaten zu lesen/zu ändern, bevor die Schriftart gespeichert wird.
Für solche Fälle wurde die Methode Aspose.Font.Font.Convert(FontType fontType) entwickelt. Diese Methode konvertiert eine Schriftart in den angegebenen Typ und Gibt das von der Klasse Aspose.Font.Font geerbte Objekt zurück, das dem Wert FontType entspricht, der an die Methode Convert() übergeben wird.
Die nächste Tabelle zeigt eine Karte der Kohärenz zwischen FontType-Werten und Objekten, geerbt von der Basisklasse Aspose.Font.Font.
| Schriftart | Schriftobjekt |
|---|---|
TTF | Aspose.Font.Ttf.TtfFont |
Type1 | Aspose.Font.Type1.Type1Font |
CFF | Aspose.Font.Cff.CffFont |
OTF | Aspose.Font.Ttf.TtfFont |
Verwenden Sie das resultierende Schriftartobjekt, um auf die Schriftarteigenschaften zuzugreifen bzw. diese zu ändern, bevor Sie die resultierende Schriftart speichern oder anstatt die resultierende Schriftart zu speichern.
Derzeit unterstützt die Methode Convert() nur die Konvertierung in das „TrueType“-Schriftartformat (FontType.TTF), sodass sie immer zurückkehrt das Objekt vom Typ TtfFont als Ergebnis der Konvertierung unabhängig von der verwendeten Quellschriftart.
Das nächste Code-Snippet lädt die „CFF“-Schriftart „CenturyGothic“ von der Festplatte, konvertiert sie in das „TrueType“-Format und ändert den Namen der konvertierten Schriftart in „CenturyGothic_Converted“.
Führen Sie die nächsten Aktionen aus:
- Laden Sie die CFF-Quellschriftart –
- Erstellen Sie den absoluten Pfad zur Quelldatei mithilfe der Datenverzeichniskonstante:
1string fontPath = Path.Combine(DataDir, "CenturyGothic.cff");Dadurch wird der korrekte Dateispeicherort unabhängig vom Betriebssystem sichergestellt.
- Erstellen Sie eine
FontFileDefinition, die Aspose.Font das physische Dateiformat ("cff") mitteilt und eine Streamquelle für die Datei bereitstellt:
1var fontFileDef = new FontFileDefinition("cff", new FileSystemStreamSource(fontPath));- Erstellen Sie eine
FontDefinition, die den gewünschten Schrifttyp (FontType.CFF) mit der zuvor erstelltenfontFileDefkombiniert:
1var fontDefinition = new FontDefinition(FontType.CFF, fontFileDef);- Öffnen Sie die Schriftart mit
Font.Open(fontDefinition). Die Methode gibt eine generischeFont-Instanz zurück, die die geladene CFF-Schriftart repräsentiert und für weitere Konvertierungsschritte verwendet werden kann.
- Konvertieren Sie die Schriftart in TrueType –
- Rufen Sie die Konvertierungsmethode für das zuvor geladene
Font-Objekt auf:
1Aspose.Font.Font convertedFont = font.Convert(FontType.TTF);- Die
Convert-Methode liest die CFF-Quelldaten, wendet den Konvertierungsalgorithmus an und gibt eine neueAspose.Font.Font-Instanz zurück, die intern eine TrueType-Schriftart (TtfFont) repräsentiert. - Diese generische
convertedFontkann weiter in den konkreten TypAspose.Font.Ttf.TtfFontumgewandelt werden, um auf TrueType-spezifische Eigenschaften zuzugreifen.
- Konvertieren Sie das Ergebnis in die konkrete TrueType-Klasse und benennen Sie es um. –
– Konvertieren Sie die generische
convertedFontsicher in die konkrete TrueType-Klasse:
1Aspose.Font.Ttf.TtfFont destFont = convertedFont as Aspose.Font.Ttf.TtfFont;– Überprüfen Sie, ob die Konvertierung erfolgreich war (destFont != null). Falls die Konvertierung fehlschlägt, behandeln Sie den Fehler entsprechend.
– Legen Sie einen neuen Namen für die konvertierte Schriftart fest:
1destFont.FontName = "CenturyGothic_Converted";– Dadurch werden die internen Metadaten des Schriftartnamens aktualisiert, die in der gespeicherten Datei berücksichtigt werden.
- Ausgabedateipfad vorbereiten –
– Wählen Sie den gewünschten Ausgabedateinamen, z. B.
CffToTtf_out.ttf. – Erstellen Sie den vollständigen Ausgabepfad mithilfe der Ausgabeverzeichniskonstante:
1string outPath = Path.Combine(OutputDir, „CffToTtf_out.ttf“);– Path.Combine stellt plattformübergreifend korrekte Pfadtrennzeichen sicher und verknüpft Verzeichnis- und Dateinamen sicher.
- Konvertierte TrueType-Schriftart speichern – – Speichern Sie die umbenannte TrueType-Schriftart auf der Festplatte:
1destFont.Save(outPath);– Nach dem Speichern können Sie optional überprüfen, ob die Datei erstellt wurde:
1bool exists = System.IO.File.Exists(outPath);- Das Protokollieren des
outPathoder der Existenzprüfung hilft, die erfolgreiche Konvertierung und Speicherung zu bestätigen.
1
2 // Open cff font
3 string fontPath = Path.Combine(DataDir, "CenturyGothic.cff");
4 FontDefinition fontDefinition = new FontDefinition(FontType.CFF, new FontFileDefinition("cff", new FileSystemStreamSource(fontPath)));
5 Font font = Font.Open(fontDefinition);
6
7 // Convert font into TrueType format and cast font returned to Aspose.Font.Ttf.TtfFont
8 Aspose.Font.Ttf.TtfFont destFont = font.Convert(FontType.TTF) as Aspose.Font.Ttf.TtfFont;
9
10 // Change name of converted font
11 destFont.FontName = "CenturyGothic_Converted";
12
13 // Ttf output settings
14 string outPath = Path.Combine(OutputDir, "CffToTtf_out.ttf");
15
16 // Save resultant font with font name changed
17 destFont.Save(outPath);The full range of examples for using Aspose.Font for.NET is placed in Aspose.Font.Examples.sln solution, in the net-examples folder of the Aspose.Font Documentation github repository.