Usare gli script Python in FontForge
Ripetere la stessa operazione per tutto l’alfabeto, maiuscolo e minuscolo, e per i segni di interpunzione ovviamente è un lavoro molto ripetitivo. Non può essere automatizzato? In realtà sì. FontForge ha un suo modulo per eseguire istruzioni in linguaggio Python.
Il terminale di Python dal quale si può accedere a questa funzione si chiama, in Windows, ffpython.exe e sta nella cartella FontForgeBuilds/bin.
La procedura di base è questa.
Prima di tutto bisogna importare la libreria con
import fontforge
Poi si crea un font vuoto con
font=fontforge.font()
Poi si prende un carattere, per esempio la A con
char=font.createMappedChar("a")
Si importa l’immagine con
char.importOutlines("C:\\Users\\...\\A.png")
ovviamente mettendo al posto dei puntini l’indirizzo in cui si trova il file con l’immagine che si vuole caricare.
Si avvia l’autotrace con
char.autoTrace()
(attenzione alle maiuscole).
Infine si può salvare l’intero progetto con
font.save(“C:\\Users\\...\\Nuovo_font.sfd”)
A leggere quelle poche briciole di tutorial che si trovano sul web, sarebbe facile inserire tutte queste istruzioni in un file e farlo partire. In realtà siccome il mio interprete Python non riconosce l’esistenza di FontForge, mi è toccato trovare un sistema alternativo per attivare lo script. In mancanza di istruzioni chiare, ho risolto così. Scrivo il codice normalmente usando Idle, in maniera tale che le varie parole sono colorate, ma poi lo eseguo da terminale, cioè inserisco a parte nel prompt dei comandi l’istruzione
ffpython nome_file.py
Ovviamente il sistema operativo deve riconoscere il comando ffpython, ossia bisogna inserire l’indirizzo della cartella nella variabile path che si trova tra le Proprietà di Questo Pc, in Impostazioni Di Sistema Avanzate, scheda Avanzate, pulsante Variabili D’Ambiente, riquadro Variabili Dell’Utente (se non c’è bisogna crearla nuova e poi aggiungere il valore, ossia l’indirizzo della cartella dell’ffpython di FontForge).
In questo modo posso controllare gli eventuali messaggi di errore che vengono fuori. In un secondo momento, finito il debug, posso anche trovare un sistema per eseguire lo script con un doppio click: ad esempio ci aggiungo una estensione fittizia (ad esempio .ffpy), ci clicco sopra, e quando il sistema operativo mi chiede con quale programma aprirlo vado a cercare ffpython nell’apposita cartella. Ovviamente aggiungo la spunta nella casella che chiede se usare sempre lo stesso programma per aprire il file, così non dovrò ripetere la trafila una seconda volta. Purtroppo questo sistema in caso di errore mi chiude la finestra al volo senza farmi leggere quale è il problema. Inoltre è difficilmente accessibile da Idle, che disattiva tutti i colori dalle parole, rendendo difficile la manutenzione.
Comunque, l’importante è che il sistema funzioni: a questo punto basta impostare un ciclo for, ad esempio, per ripetere la stessa operazione di autotracing per tutte le immagini contenute in una certa cartella e inserirle quindi come glifi nelle rispettive posizioni. Dopodiché lavoro a mano sui dettagli (ad esempio l’arrotondamento a intero, eccetera. Ma anche qui si potrebbe automatizzare).
Per chi non è pratico è un po’ laborioso, ma una volta capito come funziona, si possono digitalizzare quanti alfabeti si vuole in un attimo e senza nessuna fatica (beh, qui ho esagerato; diciamo che ho semplificato una parte del lavoro; non basta avere le forme delle lettere per ottenere un font funzionante; c’è da sistemare le metriche, il kerning, eccetera. Insomma è ancora parecchio lavoro).
Commenti
Posta un commento