Conversione del carattere. Dettagli avanzati | .NET
In alcuni casi, ha la sensazione di leggere/modificare i dati del carattere convertiti prima di salvare il carattere.
Metodo aspose.font.font.convert (fontttype fontttype) è stato progettato per tali casi. Questo metodo converte un carattere nel tipo specificato e Restituisce l’oggetto ereditato dalla classe Aspose.Font.Font che corrisponde al valore FontType, passato nel metodo Convert().
La tabella successiva mostra una mappa di coerenza tra FontType valori e oggetti, ereditata dalla classe di base Aspose.Font.Font.
| Tipo di carattere | Oggetto carattere |
|---|---|
TTF | Aspose.Font.Ttf.TtfFont |
Type1 | Aspose.Font.Type1.Type1Font |
CFF | Aspose.Font.Cff.CffFont |
OTF | Aspose.Font.Ttf.TtfFont |
Utilizzare l’oggetto di carattere risultante per accedere/modificare le proprietà del carattere prima di salvare il carattere risultante o invece di salvare il carattere risultante.
Al metodo del momento corrente
Convert() supporta la conversione solo in formato font trueType (fontType.ttf), quindi restituisce sempre
L’oggetto di tipo
ttffont come risultato della conversione indipendentemente dal carattere di origine utilizzato.
Il frammento di codice successivo carica il font CFF CenturyGothic dal disco, lo converte nel formato TrueType e cambia il nome del font convertito in “CenturyGothic_Converted”.
Soddisfare le azioni successive:
- Carica il font CFF sorgente –
- Crea il percorso assoluto al file sorgente utilizzando la costante della directory dati:
1string fontPath = Path.Combine(DataDir, "CenturyGothic.cff");Questo garantisce la posizione corretta del file indipendentemente dal sistema operativo.
- Crea una
FontFileDefinitionche indica ad Aspose.Font il formato fisico del file ("cff") e fornisce un flusso sorgente per il file:
1var fontFileDef = new FontFileDefinition("cff", new FileSystemStreamSource(fontPath));- Crea una
FontDefinitionche combina il tipo di font desiderato (FontType.CFF) con lafontFileDefcreata in precedenza:
1var fontDefinition = new FontDefinition(FontType.CFF, fontFileDef);- Aprire il font utilizzando
Font.Open(fontDefinition). Il metodo restituisce un’istanza generica diFontche rappresenta il font CFF caricato e può essere utilizzata per ulteriori passaggi di conversione.
- Convertire il font in TrueType –
- Invocare il metodo di conversione sull’oggetto
Fontcaricato in precedenza:
1Aspose.Font.Font convertedFont = font.Convert(FontType.TTF);- Il metodo
Convertlegge i dati CFF di origine, applica l’algoritmo di conversione e restituisce una nuova istanza diAspose.Font.Fontche rappresenta internamente un font TrueType (TtfFont). - Questo
convertedFontgenerico può essere ulteriormente convertito nel tipo concretoAspose.Font.Ttf.TtfFontper accedere alle proprietà specifiche di TrueType.
- Esegui il cast del risultato nella classe TrueType concreta e rinomina –
- Esegui il cast sicuro del generico
convertedFontnella classe TrueType concreta:
1Aspose.Font.Ttf.TtfFont destFont = convertedFont as Aspose.Font.Ttf.TtfFont;- Verifica che il cast sia riuscito (
destFont != null). Se il cast fallisce, gestisci l’errore di conseguenza. - Imposta un nuovo nome per il font convertito:
1destFont.FontName = "CenturyGothic_Converted";- In questo modo vengono aggiornati i metadati interni del nome del font, che verranno riportati nel file salvato.
- Prepara il percorso del file di output –
- Scegli il nome del file di output desiderato, ad esempio
"CffToTtf_out.ttf". - Crea il percorso di output completo utilizzando la costante della directory di output:
1string outPath = Path.Combine(OutputDir, "CffToTtf_out.ttf");Path.Combinegarantisce la corretta separazione dei percorsi su tutte le piattaforme e concatena la directory e il nome del file in modo sicuro.
- Salva il font TrueType convertito –
- Salva il font TrueType rinominato su disco:
1destFont.Save(outPath);- Dopo il salvataggio, puoi verificare facoltativamente che il file sia stato creato:
1bool exists = System.IO.File.Exists(outPath);- La registrazione di
outPatho del controllo di esistenza aiuta a confermare la corretta conversione e il salvataggio.
1
2 // Apri carattere CFF
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);L’intervallo completo di esempi per l’utilizzo di Aspose.Font for.net è inserito nella soluzione aspose.font.examples.sln, nella cartella net-examples della documentazione Aspose.Font Repository github.