Vai al contenuto
Offerte

Office Open XML Viewer apre DOCX, XLSX e PPTX nel browser

In questo articolo Indice dei contenuti 2 sezioni

Aprire un file DOCX, XLSX e PPTX direttamente nel browser, senza installare Office e senza spedire nulla a un server remoto, è quello che promette Office Open XML Viewer, una libreria open source rilasciata con licenza MIT che interpreta i tre formati di casa Microsoft sfruttando un parser scritto in Rust, compilato in WebAssembly, e un motore grafico costruito sulle API Canvas 2D. La differenza rispetto ai vari visualizzatori online già esistenti sta tutta lì: niente caricamento, niente conversione lato server, il documento resta sul dispositivo di chi lo apre.

Google Drive, Microsoft 365 e decine di servizi web offrono da anni la stessa funzione, ma dietro l’interfaccia c’è quasi sempre una macchina remota che riceve il file, lo elabora e restituisce una versione in HTML, PDF o immagini. Qui il meccanismo cambia radicalmente. La demo ufficiale del progetto permette di selezionare un documento dal proprio computer e vederlo comparire a schermo mentre parsing e rendering avvengono in locale, senza che serva Microsoft Office o LibreOffice.

Dentro un file DOCX c’è solo un archivio pieno di XML

Per capire come sia possibile una cosa del genere conviene ricordare cosa sono davvero questi file. Appartengono alla famiglia Office Open XML, standardizzata attraverso ECMA 376 e ISO/IEC 29500, e un documento .docx non è affatto un blocco binario indecifrabile: rinominandolo in .zip si apre con un qualunque gestore di archivi compressi. Dentro compaiono cartelle come word, con document.xml e styles.xml, le sottodirectory theme e media, poi rels, docProps e il file dei tipi di contenuto. Stesso principio per Excel, che descrive in XML fogli, celle, stili, formule e grafici, e per PowerPoint, con slide, master, layout, relazioni, immagini, forme e temi.

Il punto è che la faccenda è meno lineare di quanto suggerisca la presenza di uno standard internazionale. Microsoft Office usa prevalentemente OOXML Transitional, la variante nata per non rompere la compatibilità con decenni di documenti precedenti, mentre OOXML Strict resta la versione più aderente alle specifiche ISO. The Document Foundation, l’organizzazione dietro LibreOffice, batte da tempo su questo tasto: il problema non è l’esistenza dello standard, ma il fatto che l’implementazione concreta di Microsoft porti con sé estensioni, comportamenti legacy e complessità che le suite concorrenti devono rincorrere. La stessa polemica è tornata nel confronto tra LibreOffice ed Euro Office sulla sovranità digitale europea, con TDF a contestare la scelta di OOXML come formato predefinito e a rilanciare ODF come formato pensato davvero per l’interoperabilità.

Rust legge il documento, Canvas lo disegna

Office Open XML Viewer utilizza parser Rust separati per i tre formati, compilati in moduli WebAssembly che il browser carica al bisogno. I renderer scritti in TypeScript ricevono poi il modello del documento e si occupano di rappresentarlo graficamente. Nessun tentativo di tradurre ogni elemento OOXML in una sequenza di tag HTML, scelta che avrebbe complicato parecchio le cose: HTML e CSS funzionano benissimo per le pagine web, molto meno per i modelli di impaginazione di Word e PowerPoint, fatti di posizionamento assoluto, forme sovrapposte, rotazioni, caselle di testo e layout ereditati. Con Canvas 2D il renderer controlla direttamente coordinate e operazioni di disegno.

Per chi sviluppa, la libreria si installa come pacchetto npm @silurus/ooxml ed espone visualizzatori distinti per i tre formati, con DocxViewer, XlsxViewer e PptxViewer, più le varianti a scorrimento continuo per documenti e presentazioni, simili a un lettore PDF. Chi preferisce costruirsi un’interfaccia su misura può usare i motori headless DocxDocument, XlsxWorkbook e PptxPresentation, interpretando il file una volta sola e disegnando poi pagine, fogli o slide nei propri Canvas. I moduli Wasm restano file .wasm separati, non stringhe gonfiate dentro il bundle JavaScript.

Resta chiaro il perimetro del progetto: gli autori escludono esplicitamente editing, modifica del modello e salvataggio. Tra gli obiettivi ci sono invece selezione, copia, ricerca e integrazione con strumenti esterni. Un motore di visualizzazione incorporabile, insomma, buono per l’anteprima di un contratto in un gestionale, per mostrare un foglio Excel dentro un sistema documentale senza passarlo a servizi esterni, o per proiettare una slide in una piattaforma educativa, con il file che non lascia mai il browser.

Condividi:
11 Condivisioni