La stampa non funziona più in un programma, e la colpa è del carattere
Ecco una faccenda strana che vale la pena conoscere, perché il sintomo punta nella direzione completamente sbagliata. Se un programma sul vostro PC si rifiuta di stampare da metà agosto, o va in errore quando gli chiedete di salvare un PDF, mentre la stampante funziona benissimo con tutto il resto, guardate il carattere.
Microsoft ha confermato un bug negli aggiornamenti .NET Framework di agosto. Alcuni programmi ora falliscono con un System.IO.FileFormatException nel momento in cui provano a stampare o esportare qualcosa scritto in Calibri. L'elenco completo è Calibri, Cambria, Constantia e Corbel, quindici pesi e corsivi in tutto. Tutti e quattro sono inclusi in Windows e Calibri è stato il carattere predefinito di Office per ben oltre un decennio, quindi un numero enorme di documenti ne usa uno.
La causa è una vecchia sciatteria dentro i file dei caratteri. Ognuno contiene una tabella di spaziatura che registra la propria lunghezza in un campo troppo piccolo per il numero vero, così il valore ricomincia da zero. La tabella di Calibri Bold pesa in realtà 160.164 byte; il file ne dichiara 29.088. Nessuno se n'era accorto, perché Windows normalmente ignora quella tabella. L'aggiornamento di agosto ha aggiunto un controllo dei limiti che chiude due falle di sicurezza reali, e quel controllo ora scarta l'intero carattere invece di saltare la singola tabella difettosa. Si tratta di KB5120708 su Windows 11 e KB5120709 su Windows 10, entrambi datati 11 agosto, più gli equivalenti per i sistemi più vecchi.
La soluzione ufficiale di Microsoft è una modifica di configurazione pensata per chi ha scritto il programma, e disattiva la nuova protezione di sicurezza, che non è uno scambio conveniente su un PC di casa. La correzione silenziosa è meglio: portate il documento, il report o il modello ad Arial o Segoe UI e stampate. E se davvero non sapete se il problema sia l'aggiornamento o l'hardware, la procedura guidata di riparazione stampante di Tendvane controlla lo spooler e la coda, il che almeno vi dice da quale lato guardare.