Sviluppatore

Alleggerire un font (subsetting): TTF, OTF, WOFF

Ispeziona un font, conserva i caratteri utili ed esporta TTF e WOFF.

  • Istantaneo
  • Gratis
  • Privato (elaborato localmente)
  • Senza registrazione

Trascina qui un font (TTF, OTF, WOFF, TTC) o scegli un file

Font dimostrativo generato nel browser: carica il tuo file per alleggerirlo.

Ispettore del font

Permessi di incorporamento (OS/2 fsType)

    Assi di variazione (fvar)

    Copertura Unicode

    Per blocco Unicode
    BloccoIntervalloCaratteri

    Lingue probabilmente supportate

      Funzionalità OpenType (GSUB e GPOS)

        Tabelle e dimensioni

        TabellaDimensioneQuota

        Mappa dei glifi

        Fai clic su un carattere per aggiungerlo al testo da conservare.

        Alleggerire: scegli i caratteri da conservare

        Set predefiniti

        Modalità di output

        La tabella DSIG (firma digitale) viene sempre rimossa: qualsiasi modifica la invaliderebbe.

          Il tuo font non lascia mai il dispositivo: lettura, analisi, subset e compressione WOFF avvengono nel browser, nulla viene caricato (importante per i font con licenza). Limiti: contorni CFF/OTF non ritagliati, WOFF2 non letto (Brotli), sostituzioni contestuali conservate in modo prudente, sequenze di variazione (cmap formato 14) scartate, file oltre 200 MB rifiutati.

          Alleggerire un font web con il subsetting, senza caricare nulla

          Un font completo contiene migliaia di glifi, mentre una pagina ne usa una frazione: alleggerire un font (il subsetting) significa conservare solo i caratteri necessari e comprimere il risultato in WOFF. Gli strumenti seri sono a riga di comando (pyftsubset di fontTools, glyphhanger) o richiedono di caricare il file su un server, un problema con un font su licenza.

          Questo strumento fa tutto nel browser: legge TTF, OTF, WOFF 1.0 e TTC, mostra un ispettore completo (nomi, licenza, permessi fsType, assi variabili, copertura Unicode per blocco, lingue coperte, funzionalità OpenType, peso di ogni tabella), crea un subset TrueType con chiusura di componenti e legature, scrive TTF e WOFF, verifica che il font prodotto si carichi e genera il CSS @font-face con unicode-range.

          1. Scegli un font

            Trascina un file TTF, OTF, WOFF o TTC oppure fai clic su «Scegli un font». Per una collezione TTC, seleziona il font da estrarre. Un WOFF2 (firma wOF2) viene riconosciuto e rifiutato con una spiegazione.

          2. Leggi l’ispettore

            Controlla famiglia, versione, licenza (name ID 13) e permessi di incorporamento fsType, gli assi fvar, la copertura Unicode per blocco, le lingue probabilmente supportate e le funzionalità GSUB/GPOS. La mappa dei glifi e la ricerca rispondono a «questo font ha la ẞ o il simbolo €?».

          3. Scegli i caratteri da conservare

            Incolla il testo in «Testo da conservare», spunta i set predefiniti (Latino di base, Latino-1, Greco, Cirillico…) o inserisci intervalli Unicode. Il contatore indica i caratteri presenti, quelli assenti e i glifi conservati dopo la chiusura.

          4. Imposta la modalità di output

            «Conserva le funzionalità OpenType» mantiene crenatura, legature e assi variabili; «File più piccolo» rinumera i glifi ed elimina le tabelle di layout. Decidi se rimuovere l’hinting e usare la tabella name minima.

          5. Crea il subset

            Fai clic su «Crea il subset»: lo strumento mostra la dimensione prima e dopo, il dettaglio per tabella, l’autoverifica della resa, i pulsanti «Scarica .ttf» e «Scarica .woff» e lo snippet CSS da copiare.

          Come viene costruito il subset

          Lo strumento legge la directory sfnt descritta dalla specifica OpenType, poi la tabella cmap (formati 4 e 12 in primo luogo) per collegare i caratteri ai glifi. Calcola quindi la chiusura: i componenti dei glifi compositi (una «é» che riusa «e» e l’accento), poi, se le funzionalità sono conservate, le sostituzioni GSUB di tipo da 1 a 4 (forme singole, multiple, alternative e legature come fi, fl, ffi) iterate fino alla stabilità, i sub-lookup delle sostituzioni contestuali (tipi 5, 6 e 8, estensioni di tipo 7 risolte) in modo prudente, le varianti della tabella MATH e i livelli di colore della tabella COLR.

          • Modalità «conserva le funzionalità»: gli identificatori dei glifi non cambiano; i contorni inutilizzati vengono svuotati (voci loca di lunghezza zero), la cmap viene ricostruita, GSUB, GPOS, GDEF, kern e fvar restano intatte e quindi valide, e gvar perde solo i dati dei glifi rimossi.
          • Modalità «file più piccolo»: i glifi vengono rinumerati in modo compatto, i componenti rimappati, hmtx, loca, glyf, cmap, maxp, hhea e post ricostruite, le tabelle di layout e di variazione eliminate.
          • Rimozione dell’hinting: fpgm, prep, cvt, hdmx, VDMX e LTSH spariscono, le istruzioni vengono tolte dai glifi semplici e compositi, maxp e gasp vengono adattate come fa pyftsubset.
          • Scrittura: directory ordinata, tabelle allineate a 4 byte, checksum e checkSumAdjustment di head ricalcolati, loca corto o lungo secondo la dimensione, poi WOFF 1.0 con zlib per tabella (una tabella resta grezza quando la compressione non aiuta).
          • Autoverifica: il font prodotto viene caricato con l’API FontFace e il testo di anteprima viene reso con l’originale e il subset affiancati, confrontando i pixel.

          Quanto pesa ogni tabella e cosa ne fa lo strumento

          TabelleRuoloTrattamento
          glyf, locaContorni TrueType e indice dei glifi: la maggior parte del pesoContorni inutilizzati svuotati (modalità conserva) o rimossi e rinumerati (modalità minima)
          cmapCorrispondenza carattere Unicode → glifoRicostruita: formato 4 per il BMP, formato 12 aggiunto per i caratteri fuori dal BMP
          hmtx, hheaLarghezze di avanzamento e margini sinistriConservate così come sono (identificatori stabili) o ricostruite con numberOfHMetrics ottimizzato
          GSUB, GPOS, GDEF, kernLegature, sostituzioni, crenatura, posizionamento dei diacriticiIntatte in modalità conserva, eliminate in modalità minima (con avviso)
          fpgm, prep, cvt, hdmx, VDMX, LTSHHinting TrueType e metriche di dispositivoEliminate con «Rimuovi l’hinting», istruzioni dei glifi tolte
          name, post, DSIGNomi e licenza, nomi dei glifi, firma digitalename completa o minima (ID da 0 a 6, 13, 14, 16, 17, più i nomi di assi e istanze di un font variabile), post in formato 3, DSIG sempre rimossa

          Comportamento per i font con contorni TrueType (glyf). I font CFF/OTF vengono ispezionati, convertiti in WOFF e alleggeriti delle tabelle, ma i loro contorni non vengono ritagliati.

          Quando alleggerire un font

          • Sito vetrina o blog: servire solo latino di base, Latino-1 e punteggiatura tipografica per accelerare la prima visualizzazione del testo.
          • Titolo o logo in un font display: conservare solo le lettere dello slogan, pochi kilobyte invece di centinaia.
          • Font CJK (TrueType): incollare il testo reale della pagina per passare da diversi megabyte a qualche decina di kilobyte (IPA Gothic: da 6,2 MB a circa 55 KB in WOFF con un paragrafo di 154 caratteri distinti, 22 KB in modalità «File più piccolo»); i font CJK in OTF/CFF non vengono ritagliati.
          • Verifica prima dell’acquisto o dell’incorporamento: controllare la copertura delle lingue, le funzionalità OpenType (tnum, smcp, ss01…) e i permessi fsType senza installare il font.
          • Conversione da TTF a WOFF: ottenere un WOFF 1.0 valido e il relativo snippet @font-face senza inviare un file su licenza a un server.

          Problemi frequenti e soluzioni

          • Alcuni caratteri compaiono con un altro font: non sono nel subset; il contatore e l’autoverifica segnalano quelli assenti, aggiungili al testo da conservare.
          • Legature o crenatura scomparse: hai scelto «File più piccolo»; torna a «Conserva le funzionalità OpenType».
          • Il WOFF non è piccolo come previsto: in modalità conserva, hmtx e loca mantengono la dimensione originale; il WOFF comprime molto bene queste aree e la modalità minima le riduce davvero.
          • Font WOFF2 rifiutato: convertilo prima in TTF o WOFF con un altro strumento (lo strumento non include un decodificatore Brotli/WOFF2).
          • Font OTF non ritagliato: i suoi contorni sono CFF; convertilo in TTF prima di alleggerirlo, oppure limitati a ispezione e conversione WOFF.

          Privacy: il font viene letto, analizzato e riscritto dal tuo browser; nessun file viene caricato o conservato, cosa importante per un font su licenza. Limiti: i contorni CFF/OTF non vengono ritagliati, il WOFF2 non viene letto né scritto, le sostituzioni contestuali sono conservate in modo prudente (il subset può contenere qualche glifo in più del necessario), le sequenze di variazione (cmap formato 14) vengono scartate, le tabelle bitmap e colore vengono eliminate in modalità minima, i file oltre 200 MB vengono rifiutati. Verifica la licenza prima di pubblicare un font alleggerito.

          Domande frequenti

          Che cos’è il subsetting di un font e quanto fa risparmiare?

          Il subsetting mantiene nel file solo i glifi che servono alle tue pagine, per esempio il latino di base e qualche accento invece delle migliaia di caratteri di un font completo. Il risparmio dipende soprattutto da cosa contiene il font: in un font grande con molte scritture, un subset latino pesa spesso appena il 5-10 % dell’originale, mentre un font già limitato al latino perde molto meno. La compressione WOFF toglie poi ancora da un quarto alla metà. Misurato con questo strumento: DejaVu Sans (6.253 glifi, 742 KB) ridotto al latino di base e al Latino-1 pesa circa 50 KB in WOFF con le funzionalità OpenType conservate, e 14 KB in modalità «File più piccolo». Lo strumento mostra la dimensione prima e dopo, tabella per tabella.

          Posso alleggerire un font che ho acquistato?

          Dipende dalla licenza. Le licenze libere come OFL o Apache consentono le modifiche (la OFL però considera un subset una versione modificata: se il font ha un Reserved Font Name, il file alleggerito va rinominato); molte licenze web commerciali permettono il subsetting per l’incorporamento, altre lo vietano espressamente. Lo strumento mostra il testo della licenza salvato nel font (name ID 13) e decodifica il campo fsType: se contiene il bit «no subsetting» (0x0100), la licenza chiede di non ritagliare il font. Verifica sempre il contratto prima di pubblicare il file.

          Perché il WOFF2 non è supportato?

          Il WOFF2 si basa sulla compressione Brotli e su una trasformazione specifica delle tabelle glyf e loca, mentre l’API Compression Streams dei browser offre ovunque solo gzip e deflate (Chrome non decodifica ancora Brotli in modo nativo). Leggere o produrre WOFF2 richiederebbe una libreria Brotli e quel decodificatore, che questo strumento 100 % locale non include. Converti il tuo WOFF2 in TTF o WOFF con un altro strumento, alleggeriscilo qui e torna al WOFF2 se vuoi: il WOFF2 pesa di solito dal 15 al 30 % in meno del WOFF 1.0 (guadagno mediano di circa il 25 % sui font TrueType secondo il rapporto di valutazione del W3C).

          Che differenza c’è tra «conserva le funzionalità OpenType» e «file più piccolo»?

          La prima modalità mantiene gli identificatori dei glifi e svuota solo i contorni inutilizzati: le tabelle GSUB, GPOS, GDEF e kern restano valide, quindi legature, crenatura e assi di un font variabile continuano a funzionare. La seconda rinumera i glifi ed elimina quelle tabelle: il file è minimo, ma senza crenatura né legature, e un font variabile diventa la sua istanza predefinita. Per un sito la prima modalità è quasi sempre la scelta giusta.

          Rimuovere l’hinting cambia la resa?

          L’hinting TrueType (tabelle fpgm, prep e cvt più le istruzioni dei glifi) conta soprattutto per la resa ClearType di Windows alle piccole dimensioni. macOS, iOS, Android e quasi tutti i browser Linux lo ignorano. Rimuoverlo riduce spesso un font molto «hintato» del 20-50 %, al prezzo di una resa leggermente diversa su Windows nei corpi piccoli. L’opzione è attiva per impostazione predefinita; disattivala se il tuo pubblico usa soprattutto Windows con testo piccolo.

          Come uso unicode-range nel CSS generato?

          Il descrittore unicode-range elenca i caratteri contenuti nel subset nella forma più breve (intervalli uniti, caratteri jolly quando l’intervallo è allineato). Il browser scarica il file solo se la pagina usa almeno uno di quei caratteri, il che permette di dividere un font in più file (latino, cirillico, greco) caricati su richiesta. Incolla lo snippet @font-face nel foglio di stile e metti i file nel percorso indicato in src.