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.

SchriftartSchriftobjekt
TTFAspose.Font.Ttf.TtfFont
Type1Aspose.Font.Type1.Type1Font
CFFAspose.Font.Cff.CffFont
OTFAspose.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:

  1. Laden Sie die CFF-Quellschriftart
1string fontPath = Path.Combine(DataDir, "CenturyGothic.cff");

Dadurch wird der korrekte Dateispeicherort unabhängig vom Betriebssystem sichergestellt.

1var fontFileDef = new FontFileDefinition("cff", new FileSystemStreamSource(fontPath));
1var fontDefinition = new FontDefinition(FontType.CFF, fontFileDef);
  1. Konvertieren Sie die Schriftart in TrueType
1Aspose.Font.Font convertedFont = font.Convert(FontType.TTF);
  1. Konvertieren Sie das Ergebnis in die konkrete TrueType-Klasse und benennen Sie es um. – – Konvertieren Sie die generische convertedFont sicher 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.

  1. 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.

  1. 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);
 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.

Have any questions about Aspose.Font?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.