Quando un software supera il decennio di vita e continua a vantare una base di utenti invidiabile non si può che parlare di un grande successo. Sumatra PDF è un visualizzatore di documenti PDF leggero e veloce che offre diversi vantaggi rispetto ad altri software simili. Nato a giugno 2006, ha ormai quasi raggiunto “la maggiore età” nel momento in cui scriviamo.
L’autore definisce Sumatra PDF come un “successo accidentale“: non avrebbe mai sviluppato un visualizzatore PDF per Windows se i suoi capi non gli avessero chiesto di realizzarne uno per un dispositivo come Palm Foleo.
Sumatra PDF: le principali caratteristiche
Sumatra PDF è un programma molto leggero che è e resterà tale, sulla base della strada ormai imboccata dal suo sviluppatore. Questo lo rende ideale per l’uso su computer più vecchi e meno potenti.
Progettato per essere veloce, Sumatra PDF apre i documenti PDF molto rapidamente: l’applicazione diventa quindi davvero utile per la visualizzazione di documenti di grandi dimensioni. L’interfaccia utente semplice e intuitiva rende il programma facile da usare per chiunque, anche per gli utenti meno esperti. Oltre ai PDF, Sumatra supporta gli eBook (ePub, Mobi), XPS, DjVu, CHM e Comic Book (CBZ e CBR).
Com’è nato Sumatra PDF
Palm è stata un’azienda specializzata nella produzione di computer palmari che ha cessato tutte le sue attività nel 2011: l’ideatore di Sumatra PDF lavorava proprio per questa società ed egli fu chiamato a realizzare un lettore di PDF per Foleo, un mini-laptop basato su architettura ARM e sistema operativo Linux. Foleo non vide mai la luce perché il progetto fu cancellato a distanza di poche settimane prima del lancio sul mercato per motivi mai chiariti.
Lo sviluppatore di Sumatra PDF, Krzysztof Kowalczyk, racconta che scrivere una libreria per il rendering dei documenti PDF avrebbe richiesto uno sforzo pluriennale. Poiché egli era l’unico chiamato a lavorare sul progetto e non aveva anni a disposizione, decise di usare la libreria open source Poppler. “Il PDF è un formato complesso e il rendering di alcuni documenti è lento. Volevo migliorare la velocità perché Jeff Bezos mi disse che la velocità è qualcosa che interessa sempre ai clienti“, ha dichiarato il programmatore.
Sumatra PDF nato da una costola di Poppler, grazie ai profiler per Windows
Sfortunatamente, l’inventore di Sumatra PDF non aveva gli strumenti giusti per sviluppare su una piattaforma ARM così giovane come quella scelta all’epoca da Palm. Così ebbe l’idea di usare profiler per Windows, strumenti che aiutano ad analizzare le prestazioni di un programma in esecuzione. Il profiler monitora il programma mentre viene eseguito e registra informazioni come il tempo di esecuzione delle varie parti del codice, le chiamate alle funzioni, le allocazioni di memoria e altri dati utili per comprendere come il programma sta utilizzando le risorse del sistema.
I profiler sono strumenti molto utili per gli sviluppatori che desiderano ottimizzare le prestazioni del loro software perché consentono di individuare le parti del codice che richiedono troppo tempo o risorse identificando eventuali problemi di memoria o di accesso ai dati. Esistevano già all’epoca diversi buoni profiler per Windows, tra cui quelli integrati in alcune suite di sviluppo software.
Utilizzando Poppler e aggiungendo la sua libreria in fase di compilazione, lo sviluppatore ha integrato anche una semplice interfaccia grafica pervenendo a un visualizzatore PDF compatto e funzionale per Windows.
Nel suo lungo post Kowalczyk racconta poi delle tante ottimizzazioni e migliorie del codice che hanno reso il software sempre più performante e abile anche nella gestione di documenti PDF pesanti e voluminosi.
Dalla piattaforma Palm al debutto in Windows
L’idea iniziale, come abbiamo visto, era quella di portare il lavoro svolto sulla piattaforma Palm ma alla fine l’ideatore di Sumatra PDF si è ritrovato tra le mani un progetto vincente per l’ambiente Windows. Il suo fiore all’occhiello? Il fatto che il visualizzatore PDF è disponibile anche in versione portabile che non necessita di installazione e che pesa appena 15 MB. Davvero un’inezia per gli standard odierni.
“Come posso mantenere SumatraPDF così piccolo? Evito inutili astrazioni. (…) Potrei usare componenti come Qt, wxWindows o Gtk. Sono più facili da usare ma aumentano le dimensioni del progetto in modo gigantesco“, spiega ancora Kowalczyk che chiarisce il suo approccio alla programmazione. “Non ho paura di scrivere la mia implementazione delle cose: ho ad esempio i miei parser JSON, HTML / XML che sono una frazione delle dimensioni delle librerie più popolari per tali attività“.
Sumatra PDF non è solo veloce, è ricco di funzionalità
Non si tratta di “reinventare la ruota”, si tratta di sfruttare in modo creativo le ricche funzionalità incluse in Windows. “Diciamo che devo fare una richiesta di rete. Potrei includere una libreria mostruosa come curl o potrei scrivere 300 righe di codice usando le API Win32. Ho scritto 300 righe di codice“, osserva Kowalczyk nella sua narrazione.
Che Sumatra PDF sia semplice e leggero non significa che le sue funzionalità siano ridotte all’osso. Il visualizzatore PDF, ad esempio, tiene traccia di tutti i documenti aperti nel corso del tempo per facilitarne la successiva apertura ed elaborazione; inoltre, con la combinazione di tasti “segreta” CTRL+K
è possibile accedere a tutte le funzioni di Sumatra PDF attraverso un’unica compatta lista.
La casella di ricerca che Sumatra PDF propone, inoltre, consente di individuare e richiamare rapidamente qualunque funzione integrata nel programma.
Sumatra PDF Reader 3.5 è l’ultima versione e la prima versione pubblica di Sumatra da giugno 2022. Una delle nuove funzionalità è il supporto per il tema scuro: è possibile scegliere tra due opzioni di visualizzazione, entrambe attivabili dalla finestra delle opzioni. Un tocco sul tasto “i” inverte i colori per adattarli allo sfondo e al colore del testo del documento PDF in corso di consultazione.
Lo sviluppatore fa notare che l’adeguamento automatico dei colori non funziona bene per le immagini. I PDF composti da solo testo, invece, ne traggono vantaggio poiché i colori dello sfondo e dei caratteri vengono ottimizzati per migliorare l’esperienza di lettura.
Adobe Reader, uno dei programmi più diffusi per la visualizzazione di file PDF, offre una serie di opzioni per aprire documenti in modi specifici. Queste opzioni includono la possibilità di specificare il percorso del file, il nome del file, le opzioni di visualizzazione e altro ancora all’interno di una singola stringa di comando. Sumatra PDF abbraccia questi comandi e si allinea al comportamento di Adobe Reader in fase di apertura di qualunque documento PDF.
Il visualizzatore PDF open source è adesso in grado di riconoscere l’orientamento delle immagini attingendo ai dati EXIF contenuti nelle immagini JPEG e PNG. Inoltre, offre il supporto per l’aperta e la gestione delle immagini in formato .AVIF.
I documenti PDF possono essere trascinati dalla finestra di Sumatra in una posizione esterna: in questo modo il programma mostra il contenuto del file in una nuova finestra. Le schede supportano adesso i menu contestuali.
C’è anche una nuova comoda scorciatoia con il mouse per utilizzare le modalità a schermo intero e di presentazione. Infine, le annotazioni hanno tre nuove opzioni di visualizzazione alle quali è possibile accedere tramite le impostazioni.
Sumatra PDF apre ai dispositivi basati su SoC ARM
Nell’articolo citato in apertura, Kowalczyk scriveva che Sumatra PDF sarebbe rimasto un lettore PDF per Windows. Il programmatore non aveva intenzione di aprire all’approccio multipiattaforma: “non ho le risorse per scrivere codice per 3 piattaforme. In secondo luogo, credo che un’app eccellente per una piattaforma possa essere più popolare di un’app mediocre per 3 piattaforme diverse“.
In realtà, complice il fermento che stiamo vivendo in ambito Windows on ARM, con diversi produttori che promettono lo sviluppo di SoC ARM destinati al mercato dei PC, Kowalczyk ha pubblicato anche la versione del suo software destinata ai sistemi ARM64. È anch’essa scaricabile dalla pagina di download del progetto.